nedoPC.org

Community for electronics hobbyists, established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 07 Nov 2024 21:36



Reply to topic  [ 120 posts ]  Go to page 1, 2, 3, 4, 5 ... 8  Next
[SDK] Старая тема про nedoPC SDK (август 2004) 
Author Message
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23394
Location: Silicon Valley
Reply with quote
Sprinter SDK by NedoPC team предлагаю переименовать в nedoPC SDK и выпустить с поддержкой всех процессоров и компьютеров, которые сейчас поддерживает RW1P2 (Спринтер, Спектрум, Орион, Радио, Специалист). В дальнейшем предполагается добавлять в список поддерживаемых все новые nedoPC устройства...

P.S. Выяснилось, что арифметика 16-битных целых чисел со знаком для процессора 8080 позаимствована мной из компилятора сей Small-C для CP/M:
SMALL C v2.1 by Jim Hedrix ( http://www.cpm.z80.de/small_c/smallc21.zip ) - точнее из текстового файла CLIB.ARC, у которого был свой собственный копирайт:
Small-C Library: Copyright 1984 J. E. Hendrix, L. E. Payne

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, причём с интегрированным редактором исходных текстов и эмулятором Спринтера):
Attachment:
sdk.gif
sdk.gif [ 10.77 KiB | Viewed 1223 times ]
Дальнейшие модификации вплоть до января 2006 года никогда не релизились, от 1.4 они отличаются попиксельным графическим режимом в z80/speccy, использованном для построения хаотичных 3D гор, а также наличием nedoPC шрифта)

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


UPDATE 2018: Все исходники SDK теперь живут на гитлабе: https://gitlab.com/nedopc/sdk

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


Last edited by Shaos on 19 Nov 2014 22:29, edited 18 times in total.



27 Aug 2004 13:29
Profile WWW
God
User avatar

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

Shaos: Вот как выглядела разработка софта с помощью линуксовой версии RW1P2 v1.4 в 2002 году (это cr0acker сделал скриншот для лора):


https://www.linux.org.ru/gallery/screenshots/244277

cr0acker wrote:
rw1p2 лучшее средство для создания программ для микрокомпутеров!

Типа это еще один скриншот из серии, линух лучшая ОС для межплатформеной разработки! Типа слево на право: 1)Терминал rxvt, с октрытым вимом, в нём файл с описанием тайлов(спрайтов). 2)Terminal rxvt, с открытым вимом, а в нём сам текст программы 3)Терминал в котором происходит компиляция, 4)Терминал с миднайтом, бин2трд, который идёт вместе с рв1п2, создает неправильный пермишн в трдшнике, а миднайте я его аккуратненько правлю! На переднем плане емулятор Спекутрма-глюкалка(Да уж,давно новых версий не было:(). В емуляторе вобственно и запущенна программа, качалки там работаю, бак наполняется, еще и есть геологи, но они не попали на экран! Внизу экрана мы видим страницу проекта NedoPC(http://www.shaos.ru/nedopc), пакет рв1п2, является частью этого проекта! Оконный манагер АфтерСтеп! После ВМ, впечатления просто рулезные! Единственное, что есть грабля! Русские заголовки не кажет! Я блин уже и темы ручками подпровлял! А он всё равно не кажет! Вот РУЛЕЗ!

>>> Просмотр (1280x960, 191 Kb)

cr0acker ★
02.11.2002 07:49:55 -08:00
Проверено: maxcom


28 Aug 2004 07:46
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23394
Location: Silicon Valley
Reply with quote
Post 
cr0acker wrote:
Одобряю


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

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


26 Nov 2004 23:27
Profile WWW
God
User avatar

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


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

Что?


27 Nov 2004 07:15
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23394
Location: Silicon Valley
Reply with quote
Post 
cr0acker wrote:
Shaos wrote:
cr0acker wrote:
Одобряю


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

Что?


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

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


28 Nov 2004 20:47
Profile WWW
God
User avatar

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


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

Что?


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

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


29 Nov 2004 01:12
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23394
Location: Silicon Valley
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 цветов).

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


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



26 Nov 2005 12:07
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23394
Location: Silicon Valley
Reply with quote
Post 
Shaos wrote:
Основная задача ВСЁ переписать на RW1 ...


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

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


22 Apr 2006 20:01
Profile WWW
Senior

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


23 Apr 2006 03:40
Profile
Admin
User avatar

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

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


30 Oct 2006 21:53
Profile WWW
Admin
User avatar

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


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

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


31 Oct 2006 20:01
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23394
Location: Silicon Valley
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 ?

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


06 May 2007 18:08
Profile WWW
Admin
User avatar

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

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


03 Jul 2011 17:11
Profile WWW
Admin
User avatar

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

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

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

P.S. На самом деле ячейки с адресами от -32768 до -257 (т.е. 32512 слов или 65024 байта) потому что от -256 и выше почти до нуля идут коды "регистров"

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


18 Nov 2014 20:46
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23394
Location: Silicon Valley
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 можно делать однобайтовыми (и беззнаковыми?) - как минимум сложение, вычитание и логические операции...

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


18 Nov 2014 21:55
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 120 posts ]  Go to page 1, 2, 3, 4, 5 ... 8  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:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.