nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 20 Aug 2017 19:09



Reply to topic  [ 44 posts ]  Go to page 1, 2, 3  Next
Операционная система ShaOS 
Author Message
God
User avatar

Joined: 29 Dec 2003 04:00
Posts: 1115
Location: Москва
Reply with quote
Посмотрел я описание твоей ШаОСи, ты серьезно собираешся заниматься или это пока так, мечты?


18 Aug 2004 04:22
Profile ICQ WWW
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15434
Location: New York
Reply with quote
CHRV wrote:
Посмотрел я описание твоей ШаОСи, ты серьезно собираешся заниматься или это пока так, мечты?


Функции которые описаны на вебе (т.е. там где не только названия) уже полностью реализованы мной в 1996-1998 годах (написано более 3000 строк кода на ассемблере 8080). Так что это по большому счету реализованная мечта :)

P.S. В июне 2016 добавил линки на старые архивы, прибитые при переезде на вики в 2012-2014:
http://www.nedopc.org/nedopc/shaos/s004_v0.zip (20K) - оригинальные исходники для RASM (1998)
http://www.nedopc.org/nedopc/shaos/s004_v0_.zip (13K) - перетранслированные в 2006 году исходники для ZMAC плюс TAP-файл:


Image

_________________
:eugeek: https://twitter.com/Shaos1973


18 Aug 2004 09:23
Profile WWW
God
User avatar

Joined: 29 Dec 2003 04:00
Posts: 1115
Location: Москва
Reply with quote
Shaos wrote:
Функции которые описаны на вебе (т.е. там где не только названия) уже полностью реализованы мной в 1996-1998 годах (написано более 3000 строк кода на ассемблере 8080). Так что это по большому счету реализованная мечта :)

Это очень хорошо! Просто я давно ищу хоть какое то подобие оси, которую можно модернизировать и довести, как говориться, до ума... Все таки ТР-ДОС и прочее уже както несерьезно использовать на современном оборудовании.


18 Aug 2004 09:46
Profile ICQ WWW
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15434
Location: New York
Reply with quote
CHRV wrote:
Shaos wrote:
Функции которые описаны на вебе (т.е. там где не только названия) уже полностью реализованы мной в 1996-1998 годах (написано более 3000 строк кода на ассемблере 8080). Так что это по большому счету реализованная мечта :)

Это очень хорошо! Просто я давно ищу хоть какое то подобие оси, которую можно модернизировать и довести, как говориться, до ума... Все таки ТР-ДОС и прочее уже както несерьезно использовать на современном оборудовании.


Для ZX-Spectrum существует одна очень хорошая разработка (чем-то перекликающаяся с моей недоделанной ShaOS) - это X-DOS. Очень приятное впечатление осталось от знакомства - удобный API, симпатичные программки, полная документация:

http://vtrdos.ru/sbor/XDOS.ZIP

_________________
:eugeek: https://twitter.com/Shaos1973


18 Aug 2004 10:28
Profile WWW
God
User avatar

Joined: 29 Dec 2003 04:00
Posts: 1115
Location: Москва
Reply with quote
Shaos wrote:
Для ZX-Spectrum существует одна очень хорошая разработка (чем-то перекликающаяся с моей недоделанной ShaOS) - это X-DOS. Очень приятное впечатление осталось от знакомства - удобный API, симпатичные программки, полная документация

Надо посмотреть.
Еще есть такие факторы:
- исходники;
- модульность ОС (простота доработки);
- и наверно самый важный фактор - вменяемость и желание сотрудничать автора ОС :-)

Вот у Shaos такие факторы присутствуют ;-)

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


19 Aug 2004 03:24
Profile ICQ WWW
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15434
Location: New York
Reply with quote
CHRV wrote:
Вот у Shaos такие факторы присутствуют ;-)


Ну спасибо на добром слове, вот только исходники я еще не выкладывал - надо над ними поработать ;)

_________________
:eugeek: https://twitter.com/Shaos1973


21 Aug 2004 17:31
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15434
Location: New York
Reply with quote
Post 
Вот неопубликованная статья, которую я писал по просьбе Шушкова в 2002 году - недавно я на нее наткнулся в архивах:

Quote:
Чтобы внести свой вклад в дело спектрумистского
операционносистемостроения я решил рассказать о той работе,
которая была мной сделана много лет тому назад, а именно об
операционной системе ShaOS, которая была названа, как нетрудно
догадаться взглянув на мою фамилию, в честь меня самого :)
а я, соответственно, сделал себе ник в честь своей операционной
системы...

Итак, все началось десять лет назад - в 1992 году. Я стал делать
наброски операционной системы для гипотетического микрокомпьютера
на микропроцессоре К580ВМ80А (никакого микрокомпьютера у меня тогда
не было, но я изучил ассемблер i8080 и хотел применить свои знания
в жизнь - все наброски делались исключительно на бумаге).
Изначально я хотел просто сделать примитивную квазидисковую
операционную систему с командной строкой наподобие MS-DOS. В
качестве квазидисков должна была использоваться плата с
несколькими ПЗУ К573РФ2. Вначале я назвал свое творение ROS
(Radio Operation System), так как хотел в перспективе
реализовать ОС на Радио-86РК, который начал собирать. Но тут у
меня появился ZX-Spectrum (под названием Урал-48К) и мои
предпочтения поколебались. Не сумев полностью выбросить из головы
Радио-86РК (а так же Орион-128 - компьютер моей мечты, которого у
меня никогда не было, и, наверное, никогда не будет), я решил
подружить Радио со Спектрумом - сделать ОС, приложения которой
будут работать на обеих машинах! Речь идет лишь о системном
софте и разного рода утилитах, компилерах и т.д. - ни о каких
графических изысках я тогда и не думал. На первый взгляд задача
невыполнима, однако я ее решил, создав к 1996 году спецификацию
ОС, приложения которой могли бы работать на любой i8080 или z80
системе, реализующей несколько простых аппаратных вещей.
Во-первых, в области памяти #C800-#CFFF должно быть ОЗУ размером
2К для векторов переходов, системных переменных и стека, а в
области #D000-#DFFF должно быть ПЗУ размером 4К с самим ОСом (в
Спектруме это реализуемо путем простого помещения кода в данную
область памяти, а в Радио надо было делать небольшую доработку
схемы). Во-вторых, к системе определенным образом должен был
подключаться квазидиск. Интерфейс доступа к данным квазидиска
был 16-битным (8 бит данных и 8 бит управления) и реализовывался
через порты B и C микросхемы К580ВВ55 (к порту A был подключен
джойстик). Дополнительные управляющие контакты выводились в
разъем принтера, что давало возможность втыкать в разъем и
принтер, и плату расширения, в которую и вставлялся квазидиск.

В спецификацию были включены функции работы с квазидисками
(а также всеми внешними устройствами, подключенными по этому
интерфейсу), командной строкой, переменными окружения, памятью.
Имелись разнообразные функции для работы со строками, функции
преобразования и печати десятичных и шестнадцатиричных чисел.
Была продумана идеология цепочки драйверов файловых устройств.
Подразумевалась загрузка и исполнение BAS (бейсик) и BAT
(пакетных) файлов. Для перемещения кода предполагалось
использовать подход с таблицей перекодировки, хранимой в
EXE файле приложения. Исполняемые файлы COM были неперемещаемыми.

На более серьезный уровень разработки я вышел в январе 1997 года.
К тому времени я уже имел ПЦ, и, назвав ОС просто ShaOS, я стал
кодить. С нуля был написан кросс-ассемблер для i8080 под ПЦ,
эмулятор ShaOS-совместимого компьютера под ПЦ ("ShaOS-совместимый"
подразумевает микропроцессор i8080, обращение к образам квазидисков
в файлах на ПЦ, перехват вызовов для работы с клавиатурой и экраном
ПЦ). Кроме того было создано примерно 3500 строк ассемблерного кода
(4К в бинарном виде), который работал вполне адекватно на эмуляторе
ShaOS, эмуляторе ZX-Spectrum (тогда это был Z80.EXE), а потом и
на реале (Урал-48К с загрузкой через звуковую карточку ПЦ).
Было реализовано 75% спецификации, что позволяло писать простые
приложения, использующие клавиатуру, экран, командную строку,
квазидиски. В виде отдельных приложений были реализованы утилиты
CD и DIR. 13 июня 1998 года была написана и отлажена последняя
строка в коде ShaOS - все остановилось, потому что я устроился на
работу ПЦ-программером в серьезную фирму (до сих пор там работаю
и программирую очень дорогие и серьезные вещи).

В настоящее время мучаюсь от носталигии и собираю музей
спектрумов всех видов и мастей. Вспомнил про ShaOS и решил
совершить подвиг - потихоньку дописать ее, прикрутив к спектрумам
с расширенной памятью и дисковым интерфейсом. Сразу же увидел
неприспособленность спецификации к таким машинам - ОС
располагается в области памяти с #C800 по #DFFF и не
подразумевает переключения страниц, а именно область над #C000
и должна переключаться по стандарту Spectrum-128. Выход, который
видится - помещать ядро ОС в более уютное место, например
#6800-#7FFF, а при загрузке приложения менять адреса вызова
системных подпрограмм (этот адрес всегда лежит в области
#CC00-#CCFF по старой спецификации и может быть отдетектирован
в коде по байтам CD ?? CC, конечно если мы договоримся
использовать лишь безусловный вызов системных подпрограмм),
а системные переменные напрямую никогда приложениями не
используются и их реальное местоположение может знать лишь
ядро ОС. В таком случае мы можем расположить код системы где
угодно в памяти, модифицируя код приложений под это расположение
при загрузке на исполнение. Расширенную память можно использовать
через дополнительный драйвер файлового устройства в цепочке
файловых драйверов, юзая лишнюю память как рамдиск. Также
полезно было бы оптимизировать исходный код путем использования
инструкций Z80. Кроме того можно поразмышлять и над
многозадачностью, если конечно это кого-нибудь интересует.
Ну так что, господа спектрумисты, нужна такая ОС или как? :)

_________________
:eugeek: https://twitter.com/Shaos1973


06 Sep 2004 23:43
Profile WWW
God
User avatar

Joined: 03 Feb 2003 16:53
Posts: 1095
Reply with quote
Post 
А мы это статьюб в никроне:)


07 Sep 2004 10:12
Profile
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15434
Location: New York
Reply with quote
Post 
cr0acker wrote:
А мы это статьюб в никроне:)


Ненадо - она устарела :)

_________________
:eugeek: https://twitter.com/Shaos1973


07 Sep 2004 19:14
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15434
Location: New York
Reply with quote
Post 
Shaos wrote:
Интерфейс доступа к данным квазидиска
был 16-битным (8 бит данных и 8 бит управления) и реализовывался
через порты B и C микросхемы К580ВВ55 (к порту A был подключен
джойстик). Дополнительные управляющие контакты выводились в
разъем принтера, что давало возможность втыкать в разъем и
принтер, и плату расширения, в которую и вставлялся квазидиск.


Итак вот она - упомянутая плата расширения:

Image

Девайс H003, позволявший подключать к моему ZX Урал-48К (и теоретически к чему угодно, имеющему свободных 8 вых.пинов и 8 вх.-вых. пинов) адресуемые устройства в адресном пространстве до 4 Гб! Был основой для квазидисковой операционной системы ShaOS.

_________________
:eugeek: https://twitter.com/Shaos1973


26 Oct 2004 23:27
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15434
Location: New York
Reply with quote
Post 
Кратко о ShaOS:

Shaos wrote:
Вкраце о ShaOS (Shabarshin OS : )

Это моя старая (1997) и недоделанная разработка
Объем ассемблерного кода - 3500 строк.
Многое перекочевало в библиотеки языка RW1P2
http://shaos.ru/pub/rw1p2.rar

Все команды, которые имеют словестное описание - реализованы.
http://www.nedopc.org/nedopc/shaos/shaos_r.shtml
Создавалась для натягивания интерфейса командной строки
типа MS-DOS на микроэвм с памятью до 64К (без переключеиня страниц).
Рассчитывалась поддержка специального ROM-диска, подключающегося
через ВВ55 (в случае спектрума - я приделывал к микросхеме,
к порту А которой был подключен кемпстон джойстик,
а порты B и C были свободны - интерфейс не конфликтует с
принтером). Предполагалось поддерживать
цепочки подсоединяемых драйверов для новых типов накопителей.

Адреса векторов и кода системы выбирались таким образом, чтобы
все могло работать на ZX-Spectrum и слегка модифицированном
Радио-86РК (надо добавить 2К статической памяти и 2(4)К пзу).
Кроме того система может работать из ПЗУ (нет самомодифицирующихся
частей, все системные переменные сидят в специальной области ОЗУ),
собственно все создавалось для запуска i8080-бинарников на любой
i8080(z80) системе, поддерживающей интерфейс ShaOS.

Расположение векторов системы несколько противоречит
существующей модели переключения страниц в Spectrum-128
(все находится в четвертой странице, которая собственно и
может переключаться). В-принципе, в железяках, в которых можно
переключать любые сраницы (0,1,2), можно сделать поддержку
переключающихся страниц в ShaOS.

_________________
:eugeek: https://twitter.com/Shaos1973


29 Jun 2005 22:11
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15434
Location: New York
Reply with quote
Post 
Кстати мой недо-девайс NedoPC-85-A сделанный в июне 2004 года

Image

должен быть совместим с ShaOS - все нужные блоки памяти у него сидят в нужных местах :)

_________________
:eugeek: https://twitter.com/Shaos1973


09 Mar 2006 23:38
Profile WWW
God

Joined: 02 Jan 2006 05:28
Posts: 1297
Location: Abakan
Reply with quote
Post 
Достаточно простая спецификация.
Интересно, какая функциональность доступна в текущем виде?
И есть ли какие-нибудь прикладные программы?


10 Mar 2006 10:22
Profile
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15434
Location: New York
Reply with quote
Post 
jdigreze wrote:
Достаточно простая спецификация.
Интересно, какая функциональность доступна в текущем виде?
И есть ли какие-нибудь прикладные программы?


Как я уже говорил - доступно 70% функциональности (это те функции в описании, у которых описаны входы и выходы)

Из программ написанных под эту ось есть только CD и DIR - на остальное времени не было :)

А вообще под нее писать должно быть очень просто - на то и расчет был, чтобы упростить жизнь недо-программиста ;)

_________________
:eugeek: https://twitter.com/Shaos1973


10 Mar 2006 10:28
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15434
Location: New York
Reply with quote
Post 
Shaos wrote:
jdigreze wrote:
Достаточно простая спецификация.
Интересно, какая функциональность доступна в текущем виде?
И есть ли какие-нибудь прикладные программы?


Как я уже говорил - доступно 70% функциональности (это те функции в описании, у которых описаны входы и выходы)

Из программ написанных под эту ось есть только CD и DIR - на остальное времени не было :)


А вот собственно и они - CD.A:
Code:
\ УТИЛИТА "CD"   ОС    S004.0
\ SHABARSHIN A.A.  25.06.1997
\ SHABARSHIN A.A.  21.01.1998

+INCLUDE\S004

        ORG     #E800

CD:     LHLD    @ACMD
        CALL    @CON
        CPI     2
        JNZ     CD_ERR
CD_1:   MVI_A,  1
        CALL    @COG
        XRA_A
        LXI_H,  CD_STR
        CALL    @CPY
CD_2:   MVI_A,  #11
        CALL    @FOP
        JNC     CD_ERR
        CALL    @FPD
        MOV_A,C
        RLC
        RLC
        RLC
        RLC
        MOV_B,A
        LDA     @HDEXT
        ORA_A
        JZ      CD_3
        LXI_H,  CD_STR
        JMP     CD_2
CD_3:   LXI_H,  CD_STR
        LXI_D,  CD_STR1
        MVI_A,  0
        CALL    @CAT
        LHLD    @HDCRC
        CALL    @HLL
        LDA     @HLH
        ORA_B
        XCHG
        LXI_H,  @CPTR
        MOV_M,E
        INX_H
        MOV_M,D
        INX_H
        MOV_M,A
        LDA     CD_STR
        CPI     #2E
        JZ      CD_DOT
        MVI_A,  0
        LXI_H,  @CDIR
        LXI_D,  CD_STR
        CALL    @CAT
        JMP     CD_END
CD_DOT: LXI_H,  @CDIR
CD_4:   MOV_A,M
        ORA_A
        JZ      CD_5
        INX_H
        JMP     CD_4
CD_5:   MOV_A,M
        DCX_H
        CPI     '\'
        JZ      CD_6
        JMP     CD_5
CD_6:   LDA     CD_STR1
        SUI     '\'
        STA     CD_STR1
        JNZ     CD_7
        \ ПРОВЕРКА НА КОРЕНЬ
        MOV_A,M
        CPI     #3A
        JNZ     CD_5
CD_7:   INX_H
        INX_H
        MVI_M,  0
CD_END: MVI_A,  1
        RET

CD_ERR: MVI_A,  7
        CALL    @ERR
        RET

CD_STR1 DB      '\',0
CD_STR  DB      0


и DIR.A:
Code:
\ УТИЛИТА "DIR"   ОС   S004.0
\ SHABARSHIN A.A.  25.06.1997
\ SHABARSHIN A.A.  21.01.1998

+INCLUDE\S004

        ORG     #E800

DIR:    LXI_H,  DIR_S1
        CALL    @NLN
        CALL    @WST
        LXI_H,  @CDIR
        CALL    @WST
        CALL    @NLN
        CALL    @NLN
        LXI_H,  DIR_SH
DIR_1:  MVI_A,  #11
DIR_11: CALL    @FOP
        JNC     DIR_2
        LDA     @FAT
        ORA_A
        JNZ     DIR_2
        LXI_D,  @HDBUF
        LXI_H,  DIR_S1
        PUSH_H
        MVI_A,  0
        CALL    @CPY
        LXI_D,  #0008
        DAD_D
        MVI_M,  0
        POP_H
        CALL    @WST
        CALL    @GCR
        MVI_B,  9
        CALL    @SCR
        LDA     @HDEXT
        LXI_H,  DIR_S1
        CALL    @GUX
        CALL    @WST
        ORA_A
        JNZ     DIR_3
        MVI_A,  #20
        CALL    @WRI
        LXI_H,  DIR_DI
        CALL    @WST
        JMP     DIR_4
DIR_3:  LXI_H,  DIR_N
        MOV_A,M
        INR_A
        MOV_M,A
DIR_4:  CALL    @GCR
        MVI_B,  18
        CALL    @SCR
        LHLD    @HDLEN
        CALL    @HLL
        PUSH_H
        POP_B
        LXI_H,  DIR_S1
        CALL    @D2S
        CALL    @WST
        LDA     @HDEXT
        ORA_A
        JZ      DIR_5
        MVI_A,  #20
        CALL    @WRI
        CALL    @WRI
        LHLD    @HDADR
        CALL    @WHL
DIR_5:  CALL    @NLN
        XRA_A
        JMP     DIR_11
DIR_2:  CALL    @NLN
        CALL    @GCR
        MVI_B,  7
        CALL    @SCR
        LHLD    DIR_0
        MOV_B,L
        MOV_C,H
        LXI_H,  DIR_S1
        CALL    @D2S
        CALL    @WST
        LXI_H,  DIR_FI
        CALL    @WST
        CALL    @NLN
        CALL    @NLN
        MVI_A,  1
        RET

DIR_SH  DB      "*",0
DIR_S1  DB      " DIR OF ",0
DIR_DI  DB      "<DIR>",0
DIR_FI  DB      " FILES"
DIR_0   DB      0
DIR_N   DB      0


Работа этих программ выглядела вот так:

Image

P.S. Откопал в своих старых бумагах, что название ShaOS я придумал 25 января 1998 года, а до этого (примерно с апреля 1996) система имела кодовое наименование S004, а ещё раньше (конец 1992) - SH-DOS или ROS (Radio Operating System)...

_________________
:eugeek: https://twitter.com/Shaos1973


28 Jun 2011 01:07
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 44 posts ]  Go to page 1, 2, 3  Next

Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.