http://p112.sourceforge.net/index.php?uzi180
осталось чуть чуть, найти силы выгнать голдящий дивичий табор из дома на пару дней и допилить, платки для 180)
http://p112.sourceforge.net/index.php?uzi180
осталось чуть чуть, найти силы выгнать голдящий дивичий табор из дома на пару дней и допилить, платки для 180)
Ты слыхал как грузится Flyshark ?! нет, совсем не тот, что на дискете...а Flyshark, тот самый блин Flyshark...тот ,что был когда то на кассете...
zx spectrum 48 issuse 6a, Ленинград-1, zx spectum 128 +2 grey,Пентагон-128, ZXM-Phoenix 5.02 ( assembly)
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Последний раз редактировалось Error404; 09.01.2015 в 23:32.
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
этим железякам сто лет в обед, как и uzi180, у меня просто камней 6 штук
180 на 33Mгц и пара на 8, я озадачился их применением.тихонько железку свою ваяю на 180. Осталось вытравить и спаять. Подумываю чего по запускать.
Почитываю профильные темы.
а тема у тебя действительно интересная.
UZI
таймеров 2, но полноценно можно использовать только 1.Task switching consists of saving the current process status in the User
stack and data area, block moving the user data area and stacks to the
respective process area in the reserved top 4k (via DMA), restoring the
new task's data into common memory (also via DMA), changing the Bank Base
Register in the Z180 MMU to bring the new task in context, resetting the
new process' stack pointer, restoring processor status and continuing as
before. This results in relatively rapid response since the bulk of time
required is due to two 768-byte DMA transfers which consume 1536 * 6 T-
states or 9216 / 18,432,000 = .0005 Sec = 500 microseconds on a 18.432 MHz
P112 or YASBEC upgraded with the Z8S180, and double this time, or 1000
microseconds (1 millisecond) on a standard 9.216 MHz YASBEC. This ignores
any additional time due to insertion of memory wait states and the
relatively insignificant overhead associated with housekeeping.
Ты слыхал как грузится Flyshark ?! нет, совсем не тот, что на дискете...а Flyshark, тот самый блин Flyshark...тот ,что был когда то на кассете...
zx spectrum 48 issuse 6a, Ленинград-1, zx spectum 128 +2 grey,Пентагон-128, ZXM-Phoenix 5.02 ( assembly)
Многозадачная версия ядра как-то заработала.
Не без вопросов конечно (какие-то моменты надо прояснять коллективным разумом - есть желающие? напишу где у меня затыки), но уже что-то.
Даже подогнал структуры чтобы бинарные MSX-ные ps, top заработали, чего сначала делать не собирался, но поскольку LIBC пока не готов (чтобы пересобрать своё), то пришлось выкручиваться так.
Ошибки попутно чищу, но думаю их там пока еще богато, плюс кое-что тупо надо доделать (редкоиспользуемое - типа прямого блочного чтения устройств: там к примеру пока заглушка PANIC, т.к. тут еще и IDEBDOS надо чуть допилить), а оптимизировать даже не начинал.
Вопрос такой - промежуточные работоспособные версии выкладывать? Кому-нить интересно их пробовать? А однозадачную недельной давности пробовали уже? А то я имею печальный опыт, когда в эмуляторе (где и отлаживаюсь) моё программирование на С работало, а на платке Орионе-2010 не работало.
Если выкладывать то исходники или имидж диска, или и то и то?
У кого-нить есть готовый libc.lib от Uzix 1.0? М.б. у sayman?
Как запускать много процессов в юзиксовом шелле sash? Максимум чего я пока добился это 3-4 процесса:
3 когда init+sh+process (просто команда под sash)
и 4 когда init+sh+process+piped_process (типа команды cat file | more ).
И кстати у кого есть бинарный sash в полной функциональности (он комплилируется на дефайнах в 3 варианта полноты)? Тот, что в моем образе, имеет только полдюжины встроенных команд: явно не самый полный. А памяти то вагон: 58 с гаком килобайт, не то что 32k на MSX, на Орионе можно было бы и пожирнее шелл пользовать.
Последний раз редактировалось Error404; 17.01.2015 в 02:30.
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
Запуск фоновых процессов делается двумя способами:
1. При запуске жмем ^Z (Ctrl+Z) и приложению будет отправлен сигнал остановки с терминала, попутно оболочка выведет номер задания, под которым находится остановленный процесс. Далее берем этот номер и делаем команду bg <номер> процесс уйдет в фон. Но это для линуксов/фрях и другиг взрослых юниксов
2. После имени команды поставить амперсанд:
# long_running_task &
long_running_task заменить на свою команду соответственно
Но это опять же во возрослых юниксах
А в нашем случае скорее всего ни как, т.к README к sash говорит нам
https://github.com/menelkir/uzix/blo.../Source/README* UZIX doesn't have the concept of background/foreground applications
controlled by user;
Весьма куцая многозадачность получается, если сильно хочется -- придется пилить систему самому, чтобы в нее это добавить.
2:5083/89
Да, это понятно. Тут беда как sash заюзать. Наверное проще всего nohup спортировать.
Вот за ссылку на github спасибо, покопаюсь - может найду чего-то что нет у меня (я в 2007-2008г.г. собрал все что тогда смог найти в инторнетах, но не факт что это все что было). LIBC там только исходники вроде (надо собирать), бинаря библиотеки вроде нет?
Кстати, в реадме пишут:
"The number of processes is limited only by the swap space
available, with a maximum of 31 processes (total of 1024k memory). As
mentioned, UZIX implements UNIX well enough to run the Bourne Shell in its
full functionality."
Про 31 процесс врут конечно (по крайней мере в Uzix 1.0 на MSХ их в максимуме 8 штук - это размер таблицы процессов), и дело не только в свапе, а еще и в том что ядро урезано в т.ч. и по массивам - чтобы влезать в верхние 32к (по факту, из-за МСХ-биос еще и меньше).
И кто бы портанул Bourne Shell - вот в нем то точно нормально все сделано.
---------- Post added at 15:27 ---------- Previous post was at 14:51 ----------
В ps и top тупенько сделано: размер процесса взяли константой в 32к. Типа сложно было с адреса 0009 (8: jp unix) взять высоту (адрес начала) ядра и посчитать сколько там ниже его для процесса. Поэтому несмотря на то, что я им из ядра возвращаю правльное количество общей памяти, они неправильно считают %% использования памяти процессами (у меня ж страницы процессов больше чем 32к). Так бы я их поправил и пересобрал, а тут еще наперво надо LIBC делать (что нифига не интересно).
Последний раз редактировалось Error404; 17.01.2015 в 15:30.
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)