nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 30 May 2024 11:25



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

Joined: 08 Jan 2003 23:22
Posts: 22808
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)
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...

P.P.P.P.S. 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 
Одобряю


28 Aug 2004 07:46
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22808
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: 22808
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: 22808
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: 22808
Location: Silicon Valley
Reply with quote
Post 
Shaos wrote:
Основная задача ВСЁ переписать на RW1 ...


Некоторые утилиты уже сейчас можно переписать на RW1 и их интерпретацией займется интерпретатор байткода под названием ROBERTA, который придёт на смену скрипту 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: 22808
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: 22808
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: 22808
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: 22808
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: 22808
Location: Silicon Valley
Reply with quote
Post 
Shaos wrote:
Вопрос возник - нужно добавить в RW1P2 файловые операции. Я за эти годы несколько подходов окучил - пока ни один не понравился (каналы, спец-команды, ассемблерные вставки). Вобщем думается сделать на нижнем уровне передачу файлов блоками по 256 байт (как на CP/M-80), а на строки или на байты уже будет делить библиотека, написанная на RW1.


Weberta-интерпретатор байткода RW0 имеет следующую реализацию файловых операций:
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: 22808
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   [ 48 posts ]  Go to page 1, 2, 3, 4  Next

Who is online

Users browsing this forum: No registered users and 10 guests


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.