nedoPC.org

Community of electronics hobbyists established in 2002

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



Reply to topic  [ 19 posts ]  Go to page 1, 2  Next
nedoPC SDK 
Author Message
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15434
Location: New York
Reply with quote
Sprinter SDK by NedoPC team предлагаю переименовать в nedoPC SDK и выпустить с поддержкой всех процессоров и компьютеров, которые сейчас поддерживает RW1P2 (Спринтер, Спектрум, Орион, Радио, Специалист).

В дальнейшем предполагается добавлять в список поддерживаемых все новые nedoPC устройства...

P.S. Выяснилось, что арифметика 16-битных целых чисел со знаком для процессора 8080 позаимствована мной из компилятора сей Small-C, первая версия которого была зарелизена в 1980 году (сейчас он "public domain")...

P.P.S. Немного истории (добавлено 19 ноября 2014 года):

28.04.2001 RW1P2 v1.0 (орион, спектрум)
15.05.2001 RW1P2 v1.1 (орион, спектрум)
16.01.2002 RW1P2 v1.2 (орион, спектрум, рк86)
18.01.2002 RW1P2 v1.2.1 (орион, спектрум, рк86)
20.01.2002 RW1P2 v1.3 (орион, спектрум, рк86, специалист)
12.06.2002 RW1P2 v1.4 (орион, спектрум, рк86, специалист + z80 спектрум и z80 спринтер + Linux порт)
26.04.2003 RW1P2 v1.5 beta aka Sprinter SDK (только z80 спринтер, только под Windows)
23.01.2006 RW1P2 v1.5 beta 2 (версия никогда не релизилась, от 1.4 отличается попиксельным графическим режимом в z80 спектруме, использованном для построения хаотичных 3D гор, а также наличием nedoPC шрифта)

P.P.P.S. UPDATE 2016: Предлагается выпустить "nedoPC SDK v2.0" с языком высокого уровня Robby (это переименованный RW1), а потом, если всё получится, "nedoPC SDK v3.0" с опциональной поддержкой языка Си в лице компилятора nedoC...

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


Last edited by Shaos on 20 Nov 2014 01:29, edited 18 times in total.



27 Aug 2004 16:29
Profile WWW
God
User avatar

Joined: 03 Feb 2003 16:53
Posts: 1095
Reply with quote
Post 
Одобряю


28 Aug 2004 10:46
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


27 Nov 2004 02:27
Profile WWW
God
User avatar

Joined: 03 Feb 2003 16:53
Posts: 1095
Reply with quote
Post 
Shaos wrote:
cr0acker wrote:
Одобряю


Ну тогда мне понадобится некоторая помощь товарищей - надо кое-что разработать и доработать.

Что?


27 Nov 2004 10:15
Profile
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15434
Location: New York
Reply with quote
Post 
cr0acker wrote:
Shaos wrote:
cr0acker wrote:
Одобряю


Ну тогда мне понадобится некоторая помощь товарищей - надо кое-что разработать и доработать.

Что?


Основная задача ВСЁ переписать на RW1 и добавит пару новых программ. Помнишь настройщик конфигурации, что ты писал? ;)

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


28 Nov 2004 23:47
Profile WWW
God
User avatar

Joined: 03 Feb 2003 16:53
Posts: 1095
Reply with quote
Post 
Shaos wrote:
cr0acker wrote:
Shaos wrote:
cr0acker wrote:
Одобряю


Ну тогда мне понадобится некоторая помощь товарищей - надо кое-что разработать и доработать.

Что?


Основная задача ВСЁ переписать на RW1 и добавит пару новых программ. Помнишь настройщик конфигурации, что ты писал? ;)

Угумс:) Правла он тока у мну и работал. Могу что нить подобное опять написать на сях теперь:)


29 Nov 2004 04:12
Profile
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15434
Location: New York
Reply with quote
Post 
Shaos wrote:
Основная задача ВСЁ переписать на RW1 и добавит пару новых программ


Что-то решил вернутся к старой теме (в связи с перелопачиванием сайта nedoPC да и просто так - время пришло) - в качестве первого шага к созданию nedoPC SDK предлагаю первым делом все переписать на чистый Си (щас часть исходников на Си++) чтобы к примеру оно собиралось с помощью Pacific C for MS-DOS v7.51. А уже потом из C в RW1 переписывать потихоньку. В связи с этим также планирую добавить поддержку 8086 процессора в RW1P2 (который будет основой для nedoPC SDK) - чтобы была возможность получать COM-файлы для доса, работающие с VGA 320x200 (быстрая графика 256 цветов) или EGA 640x350 (медленная графика 16 цветов).

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


Last edited by Shaos on 21 Jan 2012 22:33, edited 2 times in total.



26 Nov 2005 15:07
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15434
Location: New York
Reply with quote
Post 
Shaos wrote:
Основная задача ВСЁ переписать на RW1 ...


Некоторые утилиты уже сейчас можно переписать на RW1 и их интерпретацией займется интерпретатор байткода под названием ROBERTA, который придёт на смену скрипту SHJOB

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


22 Apr 2006 23:01
Profile WWW
Senior

Joined: 28 Feb 2005 05:31
Posts: 160
Location: Krasnodar, Russia
Reply with quote
Post 
ох, помнится мне, что несколько лет назад, при знакомстве с Shaos'ом я порывался на амигу портировать RW... а вот теперь думаю мож на аврку свою забацать? =)


23 Apr 2006 06:40
Profile
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15434
Location: New York
Reply with quote
Post 
Что-то мне думается, что надо NedoPC SDK в виде существующих эмуляторов-компиляторов на http://sourceforge.net поселять - там CVS есть ;)

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


31 Oct 2006 00:53
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15434
Location: New York
Reply with quote
Post 
Shaos wrote:
Что-то мне думается, что надо NedoPC SDK в виде существующих эмуляторов-компиляторов на http://sourceforge.net поселять - там CVS есть ;)


Процесс поселения буду отражать в соседнем топике

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


31 Oct 2006 23:01
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15434
Location: New York
Reply with quote
Post 
Вот список платформ под которые будет реализовываться nedoPC SDK:
1) DOS 16-bit (обычный MS-DOS или FreeDOS на 8086/8088 машинах)
2) DOS 32-bit (PMODE/W 32-битный расширитель доса - требуется как минимум 80386)
3) Windows 32-bit (Win9X и выше)
4) Linux x86 (обычный линукс на обычном пц)
5) Linux PPC (на маках с поверпц процессором)
6) MacOS X (на маках с поверпц процессором)
7) MacOS 9 ?
8) Amiga ?
9) Sprinter ?

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


06 May 2007 21:08
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15434
Location: New York
Reply with quote
Post 
Вопрос возник - нужно добавить в RW1P2 файловые операции. Я за эти годы несколько подходов окучил - пока ни один не понравился (каналы, спец-команды, ассемблерные вставки). Вобщем думается сделать на нижнем уровне передачу файлов блоками по 256 байт (как на CP/M-80), а на строки или на байты уже будет делить библиотека, написанная на RW1.

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


03 Jul 2011 20:11
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15434
Location: New York
Reply with quote
Post 
Shaos wrote:
Вопрос возник - нужно добавить в RW1P2 файловые операции. Я за эти годы несколько подходов окучил - пока ни один не понравился (каналы, спец-команды, ассемблерные вставки). Вобщем думается сделать на нижнем уровне передачу файлов блоками по 256 байт (как на CP/M-80), а на строки или на байты уже будет делить библиотека, написанная на RW1.


Weberta-интерпретатор байткода RW0 имеет следующую реализацию файловых операций:
Shaos wrote:
Файлы читаются так - получателю -4 (@filesystem) посылается пакет с именем файла (одна буква на ячейку), далее ждём евента от @filesystem - в нём будет размер прочитанного файла, далее обращаемся (через указатели A/B/C) в отрицательную область памяти переменных (ячейки с адресами от -32K до -1) за телом файла.

Аналогичным образом можно сделать запись - добавив к имени файла какой-то суффикс, например !, что будет обозначать запись из отрицательной области памяти переменных в файл с указанным именем (длину записи можно указать следом за !)...

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


18 Nov 2014 23:46
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15434
Location: New York
Reply with quote
Post 
Ещё одна проблема с RW1P2 была в том, что все переменные и операции 2-байтовые, даже если надо хранить и оперировать однобайтовыми величинами. Есть мысль как это победить (т.е. не кодогенерить лишнего кода если работа идёт с однобайтовыми величинами) - для начала заведём макросы для работы с половинками слов:
Code:
@lobyte(1)=((@1) & #00FF)
@hibyte(1)=(((@1)>>8) & #00FF)
@setlobyte(2)=@1=(@1 & #FF00)|((@2) & #00FF )
@sethibyte(2)=@1=(@1 & #00FF)|((@2) << 8)

lobyte и hibyte будут вытаскивать соответствующий байт из слова, а setlobyte и sethibyte будут устанавливать соответствующий байт слова - тогда при интерпретации оно будет работать как написано, а при кодогенерации можно детектировать соответствующие последовательности байткодов и заменять на более простой код целевой платформы:

// lobyte(var)
#F5 PUSH
#??
#??
#F3 LOAD
#F5 PUSH 255
#FF
#00
#C0 &
// прочитать байт по адресу ????

// hibyte(var)
#F5 PUSH
#??
#??
#F3 LOAD
#F5 PUSH 8
#08
#00
#D0 >>
#F5 PUSH 255
#FF
#00
#C0 &
// прочитать байт по адресу ????+1

// setlobyte(var,expression)
#F5 PUSH
#??
#??
#F5 PUSH
#??
#??
#F3 LOAD
#F5 PUSH #FF00
#00
#FF
#C0 &
.......
#F5 PUSH #00FF
#FF
#00
#C0 &
#C1 |
#F4 SAVE
// произвести вычисления и сохранить однобайтный результат по адресу ????

// sethibyte(var,expression)
#F5 PUSH
#??
#??
#F5 PUSH
#??
#??
#F3 LOAD
#F5 PUSH #00FF
#FF
#00
#C0 &
.......
#F5 PUSH 8
#08
#00
#D1 <<
#C1 |
#F4 SAVE
// произвести вычисления и сохранить однобайтный результат по адресу ????+1

P.S. Причём вычисления внутри setlobyte/sethibyte можно делать однобайтовыми (и беззнаковыми?) - как минимум сложение, вычитание и логические операции...

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


19 Nov 2014 00:55
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 19 posts ]  Go to page 1, 2  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.