Челендж был в том, чтобы использовать минимум "железа" для реализации самодостаточной системы (под автономностью я понимал не мобильность, а именно самодостаточность).
80 х 25, конечно, очень распространен, но для многих программ хватает и меньшего числа столбцов.
Вы просто отсекаете кучу софта, который работает с экраном 80х25. Ладно саму CP/M можно модифицировать для вывода под другой экран, но прикладной софт зачастую рассчитан только на стандартный терминал и не имеет настроек. А так конечно, можно хоть на LCD 1602 выводить, не говоря уже о 2004.)
Для самой CP/M 2-й версии разрешение экрана не играет практически никакой роли. Но прикладные программы, конечно, имеют свои требования и многие, как Вы совершенно верно заметили, ожидают 80x25.
Для начала я сделал блокировку прокрутки - если вывод заполняет весь экран (непрерывно, без ввода пользователя), то вывод останавливается, ожидая нажатия клавиши.
В дальнейшем можно замутить и окно в виртуальном экране (как было сделано в Osborne 1).
P.S. Для наглядности:
P.P.S. Добавил переключение с помощью перемычки источника входного потока данных - между клавиатурой и последовательным портом (для загрузки с компьютера по протоколу XMODEM).
1984 однако.) У нас первые ПК в 1988 начали возить и стоили они дороже автомобиля.) Кстати, попадались ПК с процессором NEC V20. Это 8088, но у него была и аппаратная поддержка 8080. Как бы не 16мгц, но работал очень шустренько.)
1984 однако.) У нас первые ПК в 1988 начали возить и стоили они дороже автомобиля.) Кстати, попадались ПК с процессором NEC V20. Это 8088, но у него была и аппаратная поддержка 8080. Как бы не 16мгц, но работал очень шустренько.)
В Ключах-1 некоторые одноклассники ходили на импровизированный "кружок" (к ракетчикам-программистам) - они изучали PL/(I или M), не помню, причем, что самое интересное, утверждали, что их учили писать игры.
В Лебедине можно было полюбоваться на гордо стоящий в одиночестве "Агат", впрочем, в другом магазине был гораздо более доступный аппарат - "Корвет" или "Вектор" (забыл), и я чуть было не стал его обладателям, но не успел (он был только один). Но потом я все-таки вдоволь успел побаловаться со Спектрумом в его брестской реинкарнации. Но CP/M на нем запустить было никак нельзя, поэтому много лет спустя и появился этот проект "нанокомпьютера".
Жаль, что Гарри Килдалл легкомысленно отнесся к визиту людей из IBM. Как я читал, они ждали, пока он носился над ними на реактивном самолете. В итоге они обратились к Билли. А так, возможно, многое могло быть по-другому...
Жаль, что Гарри Килдалл легкомысленно отнесся к визиту людей из IBM. Как я читал, они ждали, пока он носился над ними на реактивном самолете. В итоге они обратились к Билли. А так, возможно, многое могло быть по-другому...
Жаль, что Гарри Килдалл легкомысленно отнесся к визиту людей из IBM. Как я читал, они ждали, пока он носился над ними на реактивном самолете. В итоге они обратились к Билли. А так, возможно, многое могло быть по-другому...
Интересное чтиво!
Одна опечатка:
"Но в конце 1990-х, когда Microsoft отвлеклась на Windows, а очередная версия MS DOS 4 оказалась не слишком удачной, Гари Килдалл выпустил весьма «продвинутую» версию своей операционки, получившей к тому времени название DR-DOS, с поддержкой расширенной памяти и процессора 80386. Она даже на короткое время смогла стать лидером продаж, но тут вышла Windows, которая с DR-DOS была плохо совместима, а также куда более совершенная MS DOS 5, и продукт Килдалла опять оказался в тени."
Добавил возможность включения "турбо"-режима "на лету" с помощью перемычки - отключается прорисовка пикселей в ТВ-кадре, аналог FAST MODE в ZX81. Время выполнения бейсик-теста уменьшается в этом режиме со 120 до 70 секунд.
Я видел статью на хабре об этом - так как адреса в памяти для этой ОС, скорее всего, можно менять, то возможно смогут добиться запуска на обычном Спектруме.
Так как там target - Z80, то на своем "нанокомпьютере" я ее не запущу. Хотя, в будущем, возможно - у них в дорожной карте есть 8080.
Видеовывод там пока не реализован, только последовательный канал (по крайней мере в дорожной карте, и я не совсем представляю как они сделают его универсальным, в Сеге они то использовали ее средства для этого).
Конечно, эмулируется.
Но не в рамках моего проекта - я могу эмулировать, например, LDIR или другие некоторые популярные команды, но на полную эмуляцию всех дополнительных команд флэша 328-й не хватит.
Добавление read-ahead/write-through кэша инструкций (однолинейный, 16 байт) между ядром эмуляции и I2C-памятью ускорило работу CP/M, например, время полной отработки DIR на дискете с системными файлами и тестами уменьшилось в полтора раза.
У меня есть такой чип на 32 Кбайта, но я хочу его для видеопамяти применить - там есть чудесный режим Sequential mode, в котором тактовые импульсы просто последовательно прогоняют на пин SO биты содержимого памяти.
Схема PS/2-UART преобразователя для подключения PS/2-клавиатуры:
Дополнительные опции -
страничный режим (блокировка прокрутки) — управление клавишей Scroll Lock с индикацией светодиодом;
ввод русских букв в кодировке КОИ-8 — переключение языка комбинацией клавиш Alt-Shift с индикацией светодиодом;
аппаратная перезагрузка сочетанием клавиш Ctrl-Alt-Del
Я преодолел ограничение физического разрешения видеовыхода моего "нанокомпьютера" (45 колонок) в стиле портативного микрокомпьютера Osborne 1 - используя два виртуальных экрана.
Содержимое текущего виртуального экрана хранится в видеопамяти (ОЗУ микроконтроллера), а содержимое другого виртуального экрана - в основной памяти (I2C-чипах).
Экраны расположены горизонтально, разрешение виртуального экрана - 40 колонок и 19 строк + 1 строка статуса:
Таким образом, виртуальные экраны эмулируют физический экран с 80 колонками (Osborne эмулировал физический экран со 128 колонками посредством перекрывающихся виртуальных экранов шириной 56 колонок).
Переключение режимов (физический экран/виртуальные экраны) осуществляется из программы-монитора.
Переключение между виртуальными экранами осуществляется комбинацией клавиш CTRL-O.
Пример:
левый виртуальный экран
Ну а кому этот Форт сейчас может быть интересен? Если только любителям, как того же Brain Funk! Ну ладно, раньше ещё понимаю ограниченность ресурсов и т.п., сейчас то для чего? Если только чисто для мозговой тренировки. Так бестолку же.(
Ну а кому этот Форт сейчас может быть интересен? Если только любителям, как того же Brain Funk! Ну ладно, раньше ещё понимаю ограниченность ресурсов и т.п., сейчас то для чего? Если только чисто для мозговой тренировки. Так бестолку же.(
Спасибо за ваш ответ!
А, Вы уверены , что Форт исчерпал свои возможности?
Если есть Форт, то можно запустить какой нибудь тетрис для консоли из Форта. :)
Можно будет попытаться.
Но прямо сейчас проходит шахматный "батл" :-) между «нанокомпьютером», запустившим Microchess, (играет белыми) и «большим» компьютером с шахматным движком Sunfish (написан на Питоне, автор — Thomas Dybdahl Ahle).
Уже сыграны 22 хода:
Как оказалось, дебют - испанская партия, затем черные применили Берлинскую защиту, а белые - анти-Берлин.
Картинки и некоторые комментарии здесь - https://blog.foxylab.com/shahmatnyj-battl/
Игра продолжается :-)
Да! Вижу. Белые должны взять коня конём, говорит, что у белых преимущество, большое, чёрные отстали в развитии, лишились рокировки, у белых очень сильная ладья, говорит, чёрные у меня бы уже не слезли )))
Говорит, было бы интересно посмотреть как бы сыграли Львовский гамбит
Да, говорит партия должна быть не более 40 ходов, при такой позиции дольше не играют
Да! Вижу. Белые должны взять коня конём, говорит, что у белых преимущество, большое, чёрные отстали в развитии, лишились рокировки, у белых очень сильная ладья, говорит, чёрные у меня бы уже не слезли )))
Говорит, было бы интересно посмотреть как бы сыграли Львовский гамбит
Да, говорит партия должна быть не более 40 ходов, при такой позиции дольше не играют
Excellent!
Я, конечно, субъективно болею за "белых" ("нанокомпьютер" с Microchess), но Sunfish тоже дока писал.
Завтра - новая сводка.
да где ж его счас взять-то, 25х80?
у меня есть, я правда его лет 25 не включал )))
да где ж его счас взять-то, 25х80?
у меня есть, я правда его лет 25 не включал )))
ну этта ты такой запасливый, а я свою зеленую "MERA" в 1998-м на памойку отнёс, щас волосы на опе рву. Правда, коту. :)
Челендж был в том, чтобы использовать минимум "железа" для реализации самодостаточной системы (под автономностью я понимал не мобильность, а именно самодостаточность).
80 х 25, конечно, очень распространен, но для многих программ хватает и меньшего числа столбцов.
Вы просто отсекаете кучу софта, который работает с экраном 80х25. Ладно саму CP/M можно модифицировать для вывода под другой экран, но прикладной софт зачастую рассчитан только на стандартный терминал и не имеет настроек. А так конечно, можно хоть на LCD 1602 выводить, не говоря уже о 2004.)
Для самой CP/M 2-й версии разрешение экрана не играет практически никакой роли. Но прикладные программы, конечно, имеют свои требования и многие, как Вы совершенно верно заметили, ожидают 80x25.
Для начала я сделал блокировку прокрутки - если вывод заполняет весь экран (непрерывно, без ввода пользователя), то вывод останавливается, ожидая нажатия клавиши.
В дальнейшем можно замутить и окно в виртуальном экране (как было сделано в Osborne 1).
P.S. Для наглядности:
P.P.S. Добавил переключение с помощью перемычки источника входного потока данных - между клавиатурой и последовательным портом (для загрузки с компьютера по протоколу XMODEM).
Для самой CP/M 2-й версии разрешение экрана не играет практически никакой роли.
А как же DIR? При 45-символах в строке, по моему, будет неаккуратненько, если не править CCP.)
Верно подмечено это нарушение общей концепции, но как-то же разработчикам надо было сделать перенос (в идеале, конечно, нужно было выводить одно имя на каждой строке :-) Сейчас в моем "нанокомпьютере" происходит автоматический перенос остатка файловых имен на другую строку "in distracting fashion", как сказано https://books.google.by/books?id=gy4EAAAAMBAJ&lpg=PA80&ots=7BxUMzdg3b&dq=%D0%A1P%2FM%20dir%2080%20cols&pg=PA80#v=onepage&q&f=false о занятном CP/M-аппарате Xerox 1810:
1984 однако.) У нас первые ПК в 1988 начали возить и стоили они дороже автомобиля.) Кстати, попадались ПК с процессором NEC V20. Это 8088, но у него была и аппаратная поддержка 8080. Как бы не 16мгц, но работал очень шустренько.)
1984 однако.) У нас первые ПК в 1988 начали возить и стоили они дороже автомобиля.) Кстати, попадались ПК с процессором NEC V20. Это 8088, но у него была и аппаратная поддержка 8080. Как бы не 16мгц, но работал очень шустренько.)
В Ключах-1 некоторые одноклассники ходили на импровизированный "кружок" (к ракетчикам-программистам) - они изучали PL/(I или M), не помню, причем, что самое интересное, утверждали, что их учили писать игры.
В Лебедине можно было полюбоваться на гордо стоящий в одиночестве "Агат", впрочем, в другом магазине был гораздо более доступный аппарат - "Корвет" или "Вектор" (забыл), и я чуть было не стал его обладателям, но не успел (он был только один). Но потом я все-таки вдоволь успел побаловаться со Спектрумом в его брестской реинкарнации. Но CP/M на нем запустить было никак нельзя, поэтому много лет спустя и появился этот проект "нанокомпьютера".
мне довелось попробовать только CP/M 86, на ЕС-1841, а остановился на Альфа-ДОС
Картонный домик для "нанокомпьютера":
(мастерить коробки оказалось ужасно увлекательным делом :-)))))
... CP/M 86 ... Альфа-ДОС
Жаль, что Гарри Килдалл легкомысленно отнесся к визиту людей из IBM. Как я читал, они ждали, пока он носился над ними на реактивном самолете. В итоге они обратились к Билли. А так, возможно, многое могло быть по-другому...
... CP/M 86 ... Альфа-ДОС
Жаль, что Гарри Килдалл легкомысленно отнесся к визиту людей из IBM. Как я читал, они ждали, пока он носился над ними на реактивном самолете. В итоге они обратились к Билли. А так, возможно, многое могло быть по-другому...
... CP/M 86 ... Альфа-ДОС
Жаль, что Гарри Килдалл легкомысленно отнесся к визиту людей из IBM. Как я читал, они ждали, пока он носился над ними на реактивном самолете. В итоге они обратились к Билли. А так, возможно, многое могло быть по-другому...
Интересное чтиво!
Одна опечатка:
"Но в конце 1990-х, когда Microsoft отвлеклась на Windows, а очередная версия MS DOS 4 оказалась не слишком удачной, Гари Килдалл выпустил весьма «продвинутую» версию своей операционки, получившей к тому времени название DR-DOS, с поддержкой расширенной памяти и процессора 80386. Она даже на короткое время смогла стать лидером продаж, но тут вышла Windows, которая с DR-DOS была плохо совместима, а также куда более совершенная MS DOS 5, и продукт Килдалла опять оказался в тени."
Должно быть 1980-х
Добавил возможность включения "турбо"-режима "на лету" с помощью перемычки - отключается прорисовка пикселей в ТВ-кадре, аналог FAST MODE в ZX81. Время выполнения бейсик-теста уменьшается в этом режиме со 120 до 70 секунд.
А вот люди чем страдают: https://collapseos.org/
А вот люди чем страдают: https://collapseos.org/
Я видел статью на хабре об этом - так как адреса в памяти для этой ОС, скорее всего, можно менять, то возможно смогут добиться запуска на обычном Спектруме.
Так как там target - Z80, то на своем "нанокомпьютере" я ее не запущу. Хотя, в будущем, возможно - у них в дорожной карте есть 8080.
Видеовывод там пока не реализован, только последовательный канал (по крайней мере в дорожной карте, и я не совсем представляю как они сделают его универсальным, в Сеге они то использовали ее средства для этого).
Так Z80 ведь тоже эмулируется.)
А для CP/M люди вон какие командеры понаделали.
Так Z80 ведь тоже эмулируется.)
Конечно, эмулируется.
Но не в рамках моего проекта - я могу эмулировать, например, LDIR или другие некоторые популярные команды, но на полную эмуляцию всех дополнительных команд флэша 328-й не хватит.
P.S.
"Привет, мир!" на FORTH-83:
c CP/M была команда PING?
c CP/M была команда PING?
Там еще есть занятные файлы, например, сервисные программы вот для такого устройства:
https://www.fussylogic.co.uk/~interak/www.interak.co.uk/micro_drive.htm
Добавление read-ahead/write-through кэша инструкций (однолинейный, 16 байт) между ядром эмуляции и I2C-памятью ускорило работу CP/M, например, время полной отработки DIR на дискете с системными файлами и тестами уменьшилось в полтора раза.
А I2C RAM на какой частоте работает? Может SPI RAM следовало использовать?
А I2C RAM на какой частоте работает?
400 кГц.
Может SPI RAM следовало использовать?
У меня есть такой чип на 32 Кбайта, но я хочу его для видеопамяти применить - там есть чудесный режим Sequential mode, в котором тактовые импульсы просто последовательно прогоняют на пин SO биты содержимого памяти.
Ну 400 кгц можно и поднять. Только не думаю что это сильно повлияет, ибо в интерпретацию в основном всё упирается.
Ну 400 кгц можно и поднять. Только не думаю что это сильно повлияет, ибо в интерпретацию в основном всё упирается.
Нет, это не так.
Длительность прогона 32768 команд:
NOP
без выборки из памяти - 0,6 сек
с выборкой из памяти - 2,1 сек
MOV A,A
без выборки из памяти - 0,7 сек
с выборкой из памяти - 2,2 сек
DAA
без выборки из памяти - 0,8 сек
с выборкой из памяти - 2,3 сек
И это еще и с включенным кэшированием. Без кэша прогон NOP требует больше 6 секунд.
Так это подтверждается и простой арифметикой -
на выборку однобайтовой команды требуется ~ 10/400 кГц = 1/40 кГц - а это 400 машинных тактов.
Актуальное видео работы «нанокомпьютера»:
https://youtu.be/Yuq1yEH-WZ8
Набор символов шрифта:
на экране LCD-телевизора:
на экране ЭЛТ-телевизора:
Игра в реверси против «нанокомпьютера», успешно скомпилировавшего для этого программу на C:
Винтаж - StarTrek на кинескопном ТВ:
Схема PS/2-UART преобразователя для подключения PS/2-клавиатуры:
Дополнительные опции -
страничный режим (блокировка прокрутки) — управление клавишей Scroll Lock с индикацией светодиодом;
ввод русских букв в кодировке КОИ-8 — переключение языка комбинацией клавиш Alt-Shift с индикацией светодиодом;
аппаратная перезагрузка сочетанием клавиш Ctrl-Alt-Del
У клавиатуры ведь свои индикаторы имеются.)
Я преодолел ограничение физического разрешения видеовыхода моего "нанокомпьютера" (45 колонок) в стиле портативного микрокомпьютера Osborne 1 - используя два виртуальных экрана.
Содержимое текущего виртуального экрана хранится в видеопамяти (ОЗУ микроконтроллера), а содержимое другого виртуального экрана - в основной памяти (I2C-чипах).
Экраны расположены горизонтально, разрешение виртуального экрана - 40 колонок и 19 строк + 1 строка статуса:
Таким образом, виртуальные экраны эмулируют физический экран с 80 колонками (Osborne эмулировал физический экран со 128 колонками посредством перекрывающихся виртуальных экранов шириной 56 колонок).
Переключение режимов (физический экран/виртуальные экраны) осуществляется из программы-монитора.
Переключение между виртуальными экранами осуществляется комбинацией клавиш CTRL-O.
Пример:
левый виртуальный экран
правый виртуальный экран
Ну так это ж порнография.) Уж лучше тогда сдвигать влево, допустим, на 8 колонок за одно нажатие.
Запустил на "нанокомпьютере" интерпретатор LISP/80 версии 1.1:
Вот заметка об этом интерпретаторе в журнале BYTE:
Мой "нанокомпьютер" успешно запустил BASIC (8 килобайт, версия 4.0) для микрокомпьютера Altair:
Мой "нанокомпьютер" успешно запустил BASIC (8 килобайт, версия 4.0) для микрокомпьютера Altair:
Класс!!!
Рапира будет?
P.S.
"Привет, мир!" на FORTH-83:
Если есть Форт, то можно запустить какой нибудь тетрис для консоли из Форта. :)
http://rosettacode.org/wiki/Tetris/Ansi94_Forth
P.S. на Z80 был и Форт-компьютер https://ru.wikipedia.org/wiki/Jupiter_ACE
https://sites.google.com/site/libby8dev/fignition FIGnition (AVR)
С тематикой использования Форт (Forth) много разных проектов в сети и на Github, Sourceforge ...
http://turboforth.net/you_tube.html
...
Forth для STM8 на Github https://github.com/TG9541/stm8ef
...
Ну а кому этот Форт сейчас может быть интересен? Если только любителям, как того же Brain Funk! Ну ладно, раньше ещё понимаю ограниченность ресурсов и т.п., сейчас то для чего? Если только чисто для мозговой тренировки. Так бестолку же.(
Ну а кому этот Форт сейчас может быть интересен? Если только любителям, как того же Brain Funk! Ну ладно, раньше ещё понимаю ограниченность ресурсов и т.п., сейчас то для чего? Если только чисто для мозговой тренировки. Так бестолку же.(
Спасибо за ваш ответ!
А, Вы уверены , что Форт исчерпал свои возможности?
Смотрели Вы на проекты языков типа https://factorcode.org/ ?
P.S. Я, понимаю, что на свалку истории можно выбросить многие идеи предыдущих поколений IT разработчиков
https://archive.org/details/Broudie2. Интереснo ли для Вас прочтение наполнения данной книги?
Класс!!!
Рапира будет?
Если есть Форт, то можно запустить какой нибудь тетрис для консоли из Форта. :)
Можно будет попытаться.
Но прямо сейчас проходит шахматный "батл" :-) между «нанокомпьютером», запустившим Microchess, (играет белыми) и «большим» компьютером с шахматным движком Sunfish (написан на Питоне, автор — Thomas Dybdahl Ahle).
Уже сыграны 22 хода:
1. e2 - e4
2. e7 - e5
3. g1 - f3
4. b8 - c6
5. f1 - b5
6. g8 - f6
7. 0 - 0
8. f6 - e4
9. d2 - d4
10. e5 - d4
11. f1 - e1
12. d7 - d5
13. d1 - d4
14. d8 - d7
15. d4 - c3
16. f8 - d6
17. c3 - g7
18. h8 - f8
19. h2 - h4
20. f7 - f5
21. g7 - h6
22. e8 - d8
Как оказалось, дебют - испанская партия, затем черные применили Берлинскую защиту, а белые - анти-Берлин.
Картинки и некоторые комментарии здесь - https://blog.foxylab.com/shahmatnyj-battl/
Игра продолжается :-)
дам посмотреть одному забегающему шахматисту на предмет каковы шансы...
Это было бы занятно.
Сам то я играю на уровне Остапа Бендера :-( :-)
Это было бы занятно.
Сам то я играю на уровне Остапа Бендера :-( :-)
пока не публикуй результат, забежит - отпишу
Хорошо, но матч еще продолжается!
Да! Вижу. Белые должны взять коня конём, говорит, что у белых преимущество, большое, чёрные отстали в развитии, лишились рокировки, у белых очень сильная ладья, говорит, чёрные у меня бы уже не слезли )))
Говорит, было бы интересно посмотреть как бы сыграли Львовский гамбит
Да, говорит партия должна быть не более 40 ходов, при такой позиции дольше не играют
Да! Вижу. Белые должны взять коня конём, говорит, что у белых преимущество, большое, чёрные отстали в развитии, лишились рокировки, у белых очень сильная ладья, говорит, чёрные у меня бы уже не слезли )))
Говорит, было бы интересно посмотреть как бы сыграли Львовский гамбит
Да, говорит партия должна быть не более 40 ходов, при такой позиции дольше не играют
Excellent!
Я, конечно, субъективно болею за "белых" ("нанокомпьютер" с Microchess), но Sunfish тоже дока писал.
Завтра - новая сводка.
ждём до завтра! сколько времени тратится на обдумывание ходов?
надо было конём )))
37 ход за белых - лошадью надо ходить, лошадью... )))
ждём до завтра! сколько времени тратится на обдумывание ходов?
Первые ходы Microchess делал относительно быстро - минуты две-три, но затем стал думать час-два.
надо было конём )))
37 ход за белых - лошадью надо ходить, лошадью... )))
:-))))
Означенная лошадь оказалась весьма резвой.
Ситуация после 40 хода (белые неплохо прижали черных - было уже два шаха):
23. e1 e2
24. a7 a6
25. b5 d3
26. c6 b4
27. c1 g5
28. e4 g5
29. h6 g5
30. d6 e7
31. g5 g7
32. b4 d3
33. c2 d3
34. f8 e8
35. h4 h5
36. c7 c5
37. f3 e5
38. d7 a4
39. e5 f7
40. d8 c7
P.S.
41. g7 e5
42. c7 c6
43. b1 c3
44. a4 d4
45. f7 d8
46. c6 d7
47. e5 f5
48. d7 d8
49. f5 f7
50. d4 d3
51. e2 e5
52. d3 c2
Продолжение по техническим причинам отложено на неделю.
Окрнчание пошло в стиле Пола Морфи )))