Тишина... Все в Кинга залипли что ли? :)
Вид для печати
Тишина... Все в Кинга залипли что ли? :)
Добрый день.
У ЮТ-88 свободно до #E000, далее идет
#E000-#E7FF - видео-ОЗУ (2КБ),
#F400-#F7FF - ОЗУ монитора-F (1КБ),
#F800-#FFFF - ПЗУ монитор-F.
Спасибо.
игра king в том архиве. Текстовая стратегия типа "президента", ну чуть попроще. Моего производства, на ТрубоПаскале, на базе исходника сокурсника со всякими доделками. К сожалению, исходники king утеряны (как и много другого что было вынесено на дискетах в сарай в конце 90х и спасено оттуда уже много позднее на волне интереса от данного сайта). Ladder из архива (текстовый Lode Runner) тоже работает. Еще попробовал Турбо-Паскаль (работает) и оригинальный MBаsic - Microsoft Basic (тоже работает, брал последнюю версию от 81 года).
Оригинальный MBаsic лучше того "со встроенным эмулятором" что я ранее тут размещал (как и любой оригинальный бинарник) тем, что отдельный эмулятор садится под самый верх ОЗУ процесса и CP/M-приложению остается максимум ОЗУ (TPA=56к как в лучших образцах Орионовских CP/M), это дает возможность выполнять программы максимального объема. А в "гибридных" 47к-шных версиях TPA лишь 45кб.
- - - Добавлено - - -
К сожалению не получится внедрить. Тут фишка в чем: в коде выполняемого приложения не должно быть вызовов выше (условно) 0E000h, т.к. там уже код эмулятора и самого Юзикс. Т.е. все приложения напрямую лезущие в вызовы Монитора расположенного к примеру на F800 (как во многих советских ПК) будут выполнять криминальный код - все эти Мониторы нереентабельны, и/или не учитывают включенные прерывания, и/или нетолерантны к многостраничному коду (как в случае с Орионом где большинство подпрограмм можно вызывать только из страницы 0). Поэтому вызовы этого исполняемого кода должны попадать в эмулятор (который должен садиться по адресу тамошнего ROM-BIOS или RAM-BIOS т.е. ниже E800), который транслирует их в аналогичные вызовы ядра Unix. Или менять код программ подставляя туда вызовы BIOS на другие (эмулируемые) адреса, что делать категорически не хочется (ибо сложно).
Небольшой апдейт.
Добавлена возможность выходить из UZIX обратно в CP/M. Для этого поправлено ядро (UZIX.COM) и сделана команда halt (ее надо положить в /bin). Еще в ядре модифицирована обработка кода ctrl+D и теперь в sed.com (да и прочих в эмуле CPM) работает кнопка "вправо". Также что-то еще правил в эмуляторе CP/M emu.com, поэтому еще прикладываю и его (хотя возможно работает и вчерашний).
Также сегодня нарыл случайно такое: quatris.com - символьный тетрис. :) Аж 1989 года - новьё! В CP/M уже работает (я его настроил для VT-52 - ручками, предложенная автором утилита не умеет), в UZIX поначалу тоже работал, но потом я что-то сделал (то ли в UZIX, то ли в quatris.com, то ли в emu.com) и оно в UZIX работать перестало (вроде?), хотя в CP/M по-прежнему работает. Там код на Турбопаскале, а он зараза еще проверяет контрольную сумму той области где коды терминала (который я правил). Так что ХЗ, надо проверять. На всякий прикладываю исходный архив quatris.lbr (где изначально настроено под какой-то мутный терминал) и утилиту для распаковки LBR-архивов lt31.com.
UPD. Новая вводная по тетрису. В Юзикс с эмулятором CPM y QUATRIS.COM почему-то сваливается подгрузка файла таблицы рекордов (QUATRIS.SCO), достаточно выполнить его удаление (rm quatris.sco) и тетрис в UZIX снова начинает запускаться. Кстати, аналогично не работает подгрузка состояния и в KING.COM. А сохранение и там и там работает нормально. Обе программы на Турбопаскале написаны. А другие проги (sed.com, mbasic.com) загружают файлы нормально, и сохраняют нормально. Где-то недосмотр в эмуляторе, надо разбираться.
Скомпилировал расширенную версию команды ls - чтобы было плюс-минус как на современных Юниксах, плюс оно теперь собирается из исходников (они были, но были некомпилируемые, плюс я кое-что добавил/поправил по мелочи для удобства в функционировании). Список ключей выводится по "ls -h", они примерно такие же как на моем AIX (сравнил выборочно).
Добавлено на git
PS. в шелле sash (дефолтном в том образе Юзикса) есть свой встроенный примитивный ls (hardcoded), чтобы вызывать навороченный внешний ls надо вызвать его явно (/bin/ls) или переименовать.
Error404, Завтра думаю сесть за сырцы, как закончу с платкой. Может что перетяну ещё из современных *NIX.
Безотносительно ZIFI, запилить UZIX или FUZIX можно на любые разновидности ATM, в т.ч. и на TS-Conf. Или на другие клоны с Z80 где есть MMU, позволяющий переключение страницами более 32к (в страницах 16к как мы уже тут в соседней теме по FUZIX убедились не хватает места). В своё TODO я уже занес доработку по вынесению всей аппаратно-зависимой части (в основном это управление страницами и многостраничное выполнение кода, плюс также п.п. работы с носителем и консолью) в отдельный модуль на АСМ (он получится порядка 4-5кб), а С-ядро сделать полностью аппаратно независимым, работающим с ASM-модулем через стандартизированную керналь. От платформы к платформе будет меняться только этот ASM-модуль, а само ядро Юзикса и все его бинарники будут бинарно совместимые от платформы к платформе (как например в моей реализации работают почти все бинарники от Юзикса MSX без какой-либо перекомпиляции). Но это очень муторные работы, связанные с перепиливанием большого количества кода без моментального видимого эффекта, поэтому за них браться пока что лень. Поэтому я пока делаю что попроще и побыстрее, пока "прёт". :)
Что до поддержки сети, то например в FUZIX внедряют uIP, который у меня уже есть поправленный под HiTech C и скомпилированный под CP/M, его можно было подумать как прикрутить, но он функционально неудобен, там нет BSD-сокетов (пока не вникал решили ли это как-то в FUZIX) и поэтому для него очень мало приложений (на него трудно портировать). И это не для ZIFI в чистом виде, а для простого сетевого адаптера вида "послал пакет - принял пакет" (в ZIFI такого функционала нет AFAIK {пилят в соседней теме но пока увы} - там нечто свое особенное более высокоуровневое и от того менее способное к прикручиванию в "куда угодно").
Вообще, FUZIX более мейнстримовая ветка, но там все сильно усложнено (у меня вызвало отторжение, т.к. есть с чем сравнивать - я еще с исходниками Брауна начинал {UZI}, на порядок более понятно организованными), и для сборки обязательно нужен РС. А я планирую в итоге чтобы Юзикс сам собирал Юзикс на Z80. :)
- - - Добавлено - - -
будут вопросы или косяки выплывут (например что-то не собирается) - пиши. Совместными усилиями победим.
Error404, Есть исходники компилятора и среды CP/M для ПК? А то в репах только виндовая бинарь =/
- - - Добавлено - - -
Или хотя бы компилятора исходники - а то всё приходится через Wine запускать :)