ОС Collapse on Z80

Использование и разработка софта (преимущественно на ПЦ)

Moderator: Shaos

User avatar
barsik
Doomed
Posts: 585
Joined: 19 Feb 2017 03:46
Location: Санкт-Петербург, Россия, третья планета от Солнца, галактика Млечный Путь

Post by barsik »

Если не считать доказанным, что в постапокалиптическом мире легче всего будет раздобыть процессор Z80, то DOS и все прикладные программы разумно писать на ЯВУ и заранее их странслировать под все ходовые типы процессоров и микроконтроллеров и поместить их во все китайские библиотеки в виде дампов. Но сама идея, что после катаклизма будут востребованы в первую очередь простые процессоры верна.

После масштабного катаклизма населения в мире останется немного. Потому, если правительства не позаботились заложить в надёжные хранилища оборудование необходимое для быстрого восстановления уровня технологии, то в новом мире поднять уровень развития электроники с нуля до выпуска многоядерных гигагерцовых процессоров, в зависимости от количества выживших, получится в лучшем случае лишь лет за 50, а скорее за 100 (и это при условии, что все научные знания сохранятся, а процент рождения слабоумных мутантов останется небольшим). У выживших людей приоритетными будут совсем другие задачи.

Для возрождения производства нужны будут в первую очередь промышленные контроллеры, а не высокопроизводительные процессоры для скоростных серверов и мультимедия на личных компах. Потому, очевидно, что из процессоров первым делом восстановят производство самых простых микропроцессоров, а если удастся, то и микроконтроллеров.

Оставшаяся высокоинтегральная электроника будет дохнуть от времени пропорционально её степени интеграции. Об этом можно судить по сохранности ОЗУ. 4116 выпуска 1979 года и спустя 40 лет работают без дохлоты, а 565 РУ7 выпуска начала 90-тых почти все сдохли от времени. Так что 8-ми разрядные ретро процессоры прослужат дольше, чем современные многоядерные. Когда через 20 лет после ядерных ударов радиация заметно спадёт и выжившие китайцы вылезут из убежищ, они смогут исправными откопать под руинами лишь Z80 и TTL-микросхемы. Всё высокоинтегральное сдохнет, если не от повышенной радиации, так от времени.

Раз уж постулируется*, что в пост-апокалиптическом мире будут популярны новодельные компьютеры на Z80, то автор этой ОС должен был бы сразу предлагать и компилятор ЯВУ. Ведь без программ какая польза от компьютера? Автор должен предлагать в составе ОС хотя транслятор ассемблера (+ отладчик), - не в машинных же кодах он предлагает писать программы. Если автор не предлагает версии высоко-эффективного компилятора какого-ли ЯВУ, адаптированного под его пост-апокалиптическую ОС, то такая ОС не нужна и даром и на (построенных из электронного хлама откопанного в руинах городов) новодельных компьютерах с Z80 лучше использовать CP/M, т.к под эту ДОС есть самый эффективный для Z80 компилятор - Турбо-Паскаль 3.0. Кстати, современные кросс-компиляторы Си под Z80 может и дают лучший код, чем TP (хотя и это ещё не доказано), но для них необходим IBM PC.

[* постулировать означает - высказывать что-либо в качестве постулата, принимать в качестве исходного положения без доказательств]
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re:

Post by Lavr »

barsik wrote:Автор должен предлагать в составе ОС хотя транслятор ассемблера (+ отладчик), - не в машинных же кодах он предлагает писать программы.
Прежде чем писать такую ерунду, следовало хотя бы минимально ознакомиться, что предлагает автор: :-?

https://collapseos.org/
iLavr
SAA
Senior
Posts: 136
Joined: 12 Jul 2016 21:30

Re:

Post by SAA »

barsik wrote:Раз уж постулируется*, что в пост-апокалиптическом мире будут популярны новодельные компьютеры на Z80, то автор этой ОС должен был бы сразу предлагать и компилятор ЯВУ.
Перечитал ветку автора на reddit-е. Когда он выдвигал это тезис то говорил о том что вот уж 40лет из 8-биток производится только Z80. Пока ему не рассказали о 65C02/65C816. Тогда он написал что не знал что не только z80 но и то же 6502 до сих пор производится. Хотя на вопрос что как правило Z80 уже производится в планарных вариантах он так и не ответил. Были и вопросы относительно того что без пайки это все не выдрать, тоже не отвеченные. Видел как довольно свободно использовали контроллер из клавиатуры, но вероятно AT-шной. Это я к тому что скорее всего по распространенности клавиатуры даже AT-шные точно превзойдут имеющийся хлам с Z80. Для меня вопрос откуда в постапокалиптическом обществе будут драть Z80 или 65C02 открытый :)

По поводу ЯВУ, Барсик, застрельщик проекта упирает на то что его ОС может быть оттранслирована (и видимо сконфигурирована) на любой другой Z80-совместимый компьютер, тем мол и ценна. Как мне кажется это означает что исходники ОС находятся в том же ПЗУ/ОЗУ, другие носители не рассматриваются, по крайней мере флеш и IDE-диски. Если хранить исходники в ассемблере Z80 то вероятней всего набежит прилично килобайт, никакие ЯВУ уже не полезут. Ассемблер, как мне кажется, имеет малую "ликсическо-синтаксическую плотность". Боюсь ошибиться но самая высокая плотность в этом случае у стековых языков, и автору уже неоднократно успели заметить о том что Forth был бы предпочтительней.
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: ОС Collapse on Z80

Post by Lavr »

Несмотря на то, что я сам на старте этого топика кивнул в сторону CP/M, надо сказать, что CP/M - это
в общем-то даже не MS-DOS, и ожидать от неё многого с современных позиций чревато разочарованием.

Я неоднократно писал на этом форуме, что у меня с моим другом была купленная СР/М с компилятором
BASIC. Может быть были и другие компиляторы в купленном нами пакете, но я тогда ничего другого
не умел. Собственно, и купили мы СР/М в основном из-за компилятора BASIC.

И вот тут нас разочарование и подстерегло! СР/М - система текстовая, буквы в ней были только
латинские заглавные, BASIC её никакого представления о графических операторах не имел. :osad:

Для "Специалиста" с графическим экраном и практически любыми шрифтами это выглядело очень и
очень убого. :-?

Возможно, автор Collapse OS с современых позиций сделал кое-что и получше. Не смог я скачать
его исходники с github...
iLavr
SAA
Senior
Posts: 136
Joined: 12 Jul 2016 21:30

Re: ОС Collapse on Z80

Post by SAA »

Lavr wrote:Возможно, автор Collapse OS с современых позиций сделал кое-что и получше. Не смог я скачать
его исходники с github...
Могу забросить на e-mail, нужно?
User avatar
barsik
Doomed
Posts: 585
Joined: 19 Feb 2017 03:46
Location: Санкт-Петербург, Россия, третья планета от Солнца, галактика Млечный Путь

Post by barsik »

Lavr wrote:
barsik wrote:Автор должен предлагать в составе ОС хотя бы транслятор ассемблера
Прежде чем писать такую ерунду, следовало хотя бы минимально ознакомиться, что предлагает автор
Да это моё предложение, если воспринимать буквально, ошибочно.

Но из контекста ясно, что я не имел в виду примитивный ассемблер, что автор использует для "генерации системы". Кстати, правильнее - "регенерация системы", т.е на уже рабочей машине имеющей установленную ОС, работающие строчный редактор и ассемблер мы редактируем и перетранслируем их же исходники под какое-то иное железо.

А я имел в виду то, что и без меня справедливо указали на иностранных форумах, что на новодельной ЭВМ нужна не одна лишь ОС, а вся "экосистема". Т.е хотя бы один компилятор ЯВУ и полноценный линкующий макро-ассемблер. Иначе умирающие от голода или лучевой болезни случайно уцелевшие знатоки программирования должны будут написать на примитивном строчном редакторе нормальные текстов редактор, затем на нём нормальный макро-ассемблер, отладчик и компилятор Паскаля или Си?

А смогут ли они это сделать? Даже сейчас это смогут единицы и за многие тысячи человеко-часов. И вообще примитивная ОС пишется за 3 дня, а ОС уровня CP/M максимум за месяц. Ценность представляют именно компиляторы, а вовсе не ОС, тем более примитивная. Потому на пост-апокалипсис следует прятать в убежища исходники компиляторов ЯВУ, а не исходник примитивной ОС. А в качестве ОС, естественно, нужна такая DOS для которой есть компиляторы.

Автор мотивирует отказ от CP/M тем, что у неё не та лицензия (не open source). Но кого будет волновать правовая сторона, когда фирмы правообладатели, суды и юристы исчезли, а по городам бродят голодные людоеды. А сама ОС представляет собой SHELL, который может работать с блочным устройством для ввода и вывода. Файл это группа смежных блоков, дефрагментации нет, последовательной и прямой записи нет, даже уменьшить/увеличить размер файла нельзя. Хорошо хоть повторное использование блоков после удаления есть. ОС имеет всего 3 процедуры: позиционирование на N блока, LOAD и SAVE. Т.е это функциональный аналог примитивной двух килобайтовой DOS для Львова (точнее даже примитивнее). Не все "повёрнуты" на Linux и Си, большинству людей удобнее не SHELL, а обычный command.com или CCP с простыми командами.

Вот как в этой "ОС" делается трансляция файла:

Code: Select all

> fnew 1 dest           ; create destination file
> fopn 0 hello.asm      ; open source file in handle 0
> fopn 1 dest           ; open dest binary in handle 1
> zasm 1 2              ; assemble source file into binary file
> dest                  ; call newly compiled file
>
[нет ошибки в номерах дескрипторов?]

Разработчик привык к юниксОидным ОС, похоже, даже не имел дела ни с MSDOS, ни тем более с CP/M (он сам признаётся, что мало знает о других ОС). В примитивном ассемблере он применил соглашения из Си, исходники не в виде одного файла, что нужно для трансляции ZASM-ом, а в виде кучи файлов (к тому же в виде HTML), в общем всё печально. Ещё непонятно зачем для настройки DOS на иное железо нужно перетранслировать весь её исходник. Автор считает самым ценным то, что DOS имеет исходник и потому её удобно настраивать под имеющееся железо.

Мне непонятно почему не лучше стандартизовать I/O-входы (как стандартизовали входы F800 в Микро-80 и последующих советских ЭВМ или CP/M-BIOS), тогда достаточно набивать лишь готовые дампы. Транслировать программы из трёхтысяче-строчных исходников будет не надо. Бейсик Билла Гейтса из 1975 года имел лишь ввод с последовательного интерфейса и вывод на него. Но это позволило без перетрансляции применять его на любых машинах с 8080, заменив в коде лишь несколько байтов.

Разве не удобнее было бы стандартизовать точку входа в I/O подпрограммы (например RST 8 ), тогда пользователь сам напишет I/O процедуры (чтение/запись блока в 256 байт и посимвольный ввод/вывод) под своё железо. Чем может отличаться иное железо на Z80? Только объёмом ОЗУ, ПЗУ, их размещением в адресном пространстве и адресами портов для В/У. Но такую же задачу решала и CP/M и в ней не потребовался исходник DOS и её перетрансляция для адаптации.

Пока у меня сложилось мнение, что это вообще не DOS для реального практического использования, а просто самая простая возможность хранить файлы на microSD. Опираясь на что, уже дальше планируется написать нормальную ОС и кучу компиляторов ЯВУ к ней. Т.е это не полноценная DOS призванная заменить CP/M, а просто "система начальной раскрутки", позволяющая начать что-то писать на ассемблере используя примитивный строчный редактор, хранить написанный исходник на устройстве с флэш-памятью и потом транслировать примитивным ассемблером. Ну и попутно размножать саму эту систему, т.е адаптировать её под другое железо.

PS. Сама ОС не особо интересна (лишь п/п-мы нижнего уровня для microSD), а вот бездисководный Z80-ассемблер размером всего в 5 кб может пригодиться для прошивки в основное ПЗУ или внешний ROM-диск бездисководной самоделки (где винта/дисковода ещё нет, а его заменяет эл.диск, закачиваемый по линии из PC).
User avatar
Shaos
Admin
Posts: 24088
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: ОС Collapse on Z80

Post by Shaos »

SAA wrote:
Lavr wrote:Возможно, автор Collapse OS с современых позиций сделал кое-что и получше. Не смог я скачать
его исходники с github...
Могу забросить на e-mail, нужно?
Дык поди можно прямо тут прицепить, не?
Я тут за главного - если что шлите мыло на me собака shaos точка net
SAA
Senior
Posts: 136
Joined: 12 Jul 2016 21:30

Re: ОС Collapse on Z80

Post by SAA »

Shaos wrote:Дык поди можно прямо тут прицепить, не?

А что так было можно? :D
You do not have the required permissions to view the files attached to this post.
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: ОС Collapse on Z80

Post by Lavr »

SAA wrote:
Lavr wrote:Возможно, автор Collapse OS с современых позиций сделал кое-что и получше. Не смог я скачать
его исходники с github...
Могу забросить на e-mail, нужно?
Если вам не трудно - помогите, e-mail отправлю в личку. Раньше там была опция "скачать ZIP",
сейчас этой опции не нашел. :-?
Ну и по тому что я оттуда смог прочитать с работы по файлам README - автор склоняет это тестировать
в эмуляторе, что несколько странно, но исходники хотелось бы почитать.
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re:

Post by Lavr »

barsik wrote:
Lavr wrote:
barsik wrote:Автор должен предлагать в составе ОС хотя бы транслятор ассемблера
Прежде чем писать такую ерунду, следовало хотя бы минимально ознакомиться, что предлагает автор
Да это моё предложение, если воспринимать буквально, ошибочно.

Но из контекста ясно, что я не имел в виду примитивный ассемблер, что автор использует для "генерации системы". Кстати, правильнее - "регенерация системы", т.е на уже рабочей машине имеющей установленную ОС, работающие строчный редактор и ассемблер мы редактируем и перетранслируем их же исходники под какое-то иное железо.

А я имел в виду ...
А надо писать так, чтобы никто не гадал, что вы имели в виду. Телепаты, тут, может быть, и есть,
то тематика этого форума иная, форум технический, здесь интересны четкие достоверные факты,
а также однозначность изложенного материала.
Кто сказал, что "примитивный ассемблер, что автор использует"? В чем его примитивность?
Похожие ассемблеры по ссылкам автора используют и некоторые коммерческие проекты, и никто не
жалуется на примитивность. Я посмотрел описание и компилируемый код - примитивности не заметил.

 ПРИМЕР АССЕМБЛЕРНОЙ ПРОГРАММЫ

Code: Select all

; The RAM module is selected on A15, so it has the range 0x8000-0xffff
.equ    RAMSTART	0x8000
.equ    RAMEND		0xffff
.equ    ACIA_CTL	0x80	; Control and status. RS off.
.equ    ACIA_IO		0x81	; Transmit. RS on.

    jr init

; interrupt hook
.fill	0x38-$
    jp aciaInt

init:
    di
    ; setup stack
    ld hl, RAMEND
    ld sp, hl
    im 1
    call aciaInit
    xor	a
    ld	de, BLOCKDEV_SEL
    call	blkSel
    call	stdioInit
    call    shellInit
    ei
    jp      shellLoop

#include "core.asm"
.equ    ACIA_RAMSTART	RAMSTART
#include "acia.asm"
.equ	BLOCKDEV_RAMSTART	ACIA_RAMEND
.equ	BLOCKDEV_COUNT		1
#include "blockdev.asm"
; List of devices
.dw	aciaGetC, aciaPutC, 0, 0

.equ	STDIO_RAMSTART	BLOCKDEV_RAMEND
#include "stdio.asm"

.equ    SHELL_RAMSTART	STDIO_RAMEND
.equ    SHELL_EXTRA_CMD_COUNT 0
#include "shell.asm"

В чем тут примитивность? Примитвность "#include " не предполагает.

Так что свой ассемблер автор предлагает и ассемблер не самый примитивный. В комплект к ассемблеру
имеется текстовый редактор и отладчик.

В дальнейшем, barsik, делая такие неоднозначные высказывания сопровождайте их лучше фразами
типа "по моему мнению", "я считаю", "мне кажется". Это гораздо лучше, чем потом
многострочно оправдываться, что вас ошибочно поняли, и что вы не то имели в виду.
Вы не зарубежный посетитель форума, который может кивать на неточность гугл-транслятора.

И помните классика: текст "как монету, чекань. Строго, отчетливо, честно, Правилу следуй
упорно: Чтобы словам было тесно, Мыслям — просторно."
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: ОС Collapse on Z80

Post by Lavr »

Shaos wrote:Дык поди можно прямо тут прицепить, не?
Ну помог бы? Только мне кажется, там не всё надо, эмулятор, мне кажется здесь не нужен.
Что-то Гитхаб (или Гитлаб) совсем обнаглел. Ну ладно дома у меня Опера 9.64 - он её устаревшей
считает - соглашусь.
Но с работы захожу из-под Файрфокса - он его тоже ругает устаревшим.
Приходится очень убого ковырять файлики через сторонний примитивный браузер Dplus. :-?
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: ОС Collapse on Z80

Post by Lavr »

SAA wrote:
Shaos wrote:Дык поди можно прямо тут прицепить, не?

А что так было можно? :D
Спасибо! Извините - сразу не заметил, что приаттачено вложение! :D
iLavr
SAA
Senior
Posts: 136
Joined: 12 Jul 2016 21:30

Re: ОС Collapse on Z80

Post by SAA »

Lavr wrote:...не заметил, что приаттачено вложение! :D
Рад что Вам это пригодится, Лавр!
SAA
Senior
Posts: 136
Joined: 12 Jul 2016 21:30

Re: ОС Collapse on Z80

Post by SAA »

Lavr wrote:автор склоняет это тестировать в эмуляторе, ....
Кусочек из roadmap https://collapseos.org/roadmap.html
Run on minimal and improvised machines.

Run on well known z80 machines.
RC2014 Classic
Sega Master System
Эти два пункта в ней зачеркнуты, да и на reddit он не уставал повторять что ему очень нравится RC2014 поэтому начал он с него.
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: ОС Collapse on Z80

Post by Lavr »

А не подскажете, что за тип файлов .md у автора?
Может, Dplus у меня кривой браузер, но сохраняет он мне их практически как .htm.
Я их просто их переименовываю потом, к примеру как readme.md.htm .
iLavr