Solid C - компилятор Си для Спринтера

Компьютер "Спринтер" http://sprinter.nedopc.org

Moderator: Shaos

User avatar
Vasil Ivanov
Doomed
Posts: 413
Joined: 11 Dec 2003 14:34

Re: Solid C

Post by Vasil Ivanov »

Shiru Otaku wrote:
Интересует, насколько реально юзание сабжа. Есть вопросы. Скажем, что
и как там с банками памяти?
В сишную библиотеку (clib.irl) данные функции пока не добавлял (на тот
момент устал от портирования целого пакета, да составления док). Пока есть
только стандартные си-шные функции sbrk, malloc, calloc. Вобщем память
выделяется из кучи т.е. пространства между стеком и концом программы.
Программа может быть больше 16к (64к)?
Карта распределения памяти си-программ такая:

#4100 - "ORG" программы
#C000 - вершина стека программы

Обрати внимание, после запуска программы, #4000 может быть использован
под буферы некоторых функций сишной библы. С 3-ей банкой можешь делать
что угодно. А вообще, линкер может собрать бинарник макс. 64 кило.
Как с asm-вставками?
Только прилинковкой отдельными rel-файлами (и/или процедуры своей
библиотеки). Хотя слово "asm" зарезервировано (но не юзается).
Как с прерываниями?
В сишной библе (clib.irl) есть enable(), disable().
Что либо иное - через асм-вставки.
Версии кросс-компилятора на PC нет, как я понимаю?
А откуда ей взяться - авторских сорцев нет.
А в SPRINT`е компилер будет работать?
Не проверял, влом было ставить Sprint SDK.
Мне для программы нужно:
чтение входных параметров exe-файла;
работа с файлами на диске (чтение и запись);
Под "входными параметрами exe-файла" что подразумеваешь ?.
Чтение/Запись файлов - без проблем.
вывод в консоль (printf, как я понимаю, уже есть?);
Правильно понимаешь. Лучше юзать cprintf, поскольку он быстрее.
Для разнообразия загляни в папку "EXAMPLES" пакета.
асм-вставки с возможным юзанием дополнительного обработчика IM2
(чтобы с портом через прерывание работать).
Пиши свою процедуру и прилинковывай к программе.
Vasil Ivanov
vasil-i@yandex.ru
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Vasil Ivanov wrote:
Shaos wrote:Напомни какие файлы надо переводить на английский в первую очередь?
readme.rus - первое, что надо перевести. Здесь особенности
пакета, портированного на Спринтер.

bugs.! - он совсем маленький ;)

cc.rus - дока по си-компилятору.

devel-1.rus - некоторая инфа по сборке проги из нескольких
исходников.

devel-2.rus - создание своих библиотек (irl-формата),
для юзания с линкером ld.exe.

ld.rus - дока линкера.

ol.rus - дока библиотекаря.

whatsnew.rus - история версий программ пакета.

Очень не помешала бы дока по си-функциям (clib.rus) данного
пакета, потому, что в некоторых функциях встречаются отличия
от стандартных (PC-шных), например функции перемещения
указателя в файле. Но она объемистая.
Да я фактически все доки и перечислил ;). По .rel/.irl
форматам и по асму, уже есть англицкий вариант.
Вобщем все доки, кроме cc.rus и clib.rus ты переведешь за
час, а может и быстрей ;).
Сделал черновой перевод:
ld.rus - дока линкера,
ol.rus - дока библиотекаря,
whatsnew.rus - история версий программ пакета.
Все положил в форум "Sprinter (ENG)".

Осталось перевести 2 оставшихся текста - cc.rus и devel-2.rus
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Solid C

Post by Shaos »

cr0acker wrote:Вася сделал это! Правда я ничего скомпилировать им не могу:( Линкер виснет:(
Всем качать!:

Solid C
Сегодня линк перенаправлен на nedopc.org
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Завёл Спринтер - компилю солидом примеры ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Vasil Ivanov
Doomed
Posts: 413
Joined: 11 Dec 2003 14:34

Post by Vasil Ivanov »

Shaos wrote:Завёл Спринтер - компилю солидом примеры ;)
Чего это ты вдруг ?. Ностальгируешь по прошедшим временам ? ;)
Я уже давным давно Спринтер не включал и нет пока в планах.
Как писал один классик - "дела давно минувших дней, преданье старины глубокой".
Vasil Ivanov
vasil-i@yandex.ru
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Vasil Ivanov wrote:
Shaos wrote:Завёл Спринтер - компилю солидом примеры ;)
Чего это ты вдруг ?. Ностальгируешь по прошедшим временам ? ;)
Я уже давным давно Спринтер не включал и нет пока в планах.
Как писал один классик - "дела давно минувших дней, преданье старины глубокой".
Ну а чего бы не включить? ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Vasil Ivanov
Doomed
Posts: 413
Joined: 11 Dec 2003 14:34

Post by Vasil Ivanov »

Shaos wrote:
Vasil Ivanov wrote:
Shaos wrote:Завёл Спринтер - компилю солидом примеры ;)
Чего это ты вдруг ?. Ностальгируешь по прошедшим временам ? ;)
Я уже давным давно Спринтер не включал и нет пока в планах.
Как писал один классик - "дела давно минувших дней, преданье старины глубокой".
Ну а чего бы не включить? ;)
А смысл ?. Если бы проект был доступен (не закрытый), то был бы какой-то смысл.
Vasil Ivanov
vasil-i@yandex.ru
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Vasil Ivanov wrote:
Shaos wrote:
Vasil Ivanov wrote:
Shaos wrote:Завёл Спринтер - компилю солидом примеры ;)
Чего это ты вдруг ?. Ностальгируешь по прошедшим временам ? ;)
Я уже давным давно Спринтер не включал и нет пока в планах.
Как писал один классик - "дела давно минувших дней, преданье старины глубокой".
Ну а чего бы не включить? ;)
А смысл ?. Если бы проект был доступен (не закрытый), то был бы какой-то смысл.
Ну я всё ещё надеюсь построить некий минимально-функциональный аналог Спринтера с совместимым биосом и акселератором...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Vasil Ivanov
Doomed
Posts: 413
Joined: 11 Dec 2003 14:34

Post by Vasil Ivanov »

Shaos wrote:
Vasil Ivanov wrote:
Shaos wrote:
Vasil Ivanov wrote:
Shaos wrote:Завёл Спринтер - компилю солидом примеры ;)
Чего это ты вдруг ?. Ностальгируешь по прошедшим временам ? ;)
Я уже давным давно Спринтер не включал и нет пока в планах.
Как писал один классик - "дела давно минувших дней, преданье старины глубокой".
Ну а чего бы не включить? ;)
А смысл ?. Если бы проект был доступен (не закрытый), то был бы какой-то смысл.
Ну я всё ещё надеюсь построить некий минимально-функциональный аналог Спринтера с совместимым биосом и акселератором...
Т.е. на отдельной мат. плате ?. Что-то мне подсказывает, что это будет не скоро ;)
Vasil Ivanov
vasil-i@yandex.ru
Sayman
Maniac
Posts: 223
Joined: 05 Oct 2009 19:44
Location: 212.164.105.5

Post by Sayman »

я так и не понял, под какой страндарт си этот компилятор расчитан. пример кода:

Code: Select all

#include <stdio.h>

void panic0(s)
char *s;
{
    printf("\nError: ");
    printf(s);
    printf("\n");
}

main(argc,argv)
int argc;
char *argv[];
{
     if(argc<2) panic0("Need some arguments.");
}
всё. у компилятора рвёт крышу. выдаёт неразумные ошибки об отсутствии скобок, о том что есть недекларированные переменные и вапще с десяток ошибок. однако в компиляторе HiTechC и на пц в VC всё прекрасно собирается. пример простой, но...
Sayman
Maniac
Posts: 223
Joined: 05 Oct 2009 19:44
Location: 212.164.105.5

Post by Sayman »

вобщем и целом - вариант с солидом не годится совершенно.
вижу только один рациональный путь - переписать библиотеки хайтеха под спринтер. сам компилятор потом использовать с эмулятором под фрибсд, на крайняк в z80mu под досом (или досБокс)...
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

если просто нужен кросс-компилятор си для спринтера - бери z88dk - там спринтер был поддержан в своё время

ну или мой Sprinter SDK бери - не си, но близко ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Vasil Ivanov
Doomed
Posts: 413
Joined: 11 Dec 2003 14:34

Post by Vasil Ivanov »

Sayman wrote:я так и не понял, под какой страндарт си этот компилятор расчитан. пример кода:

Code: Select all

#include <stdio.h>

void panic0(s)
char *s;
{
    printf("\nError: ");
    printf(s);
    printf("\n");
}

main(argc,argv)
int argc;
char *argv[];
{
     if(argc<2) panic0("Need some arguments.");
}
всё. у компилятора рвёт крышу. выдаёт неразумные ошибки об отсутствии скобок, о том что есть недекларированные
переменные и вапще с десяток ошибок. однако в компиляторе HiTechC и на пц в VC всё прекрасно собирается.
пример простой, но...
Гонишь. Это корректный вариант. Только что проверил на Спринтере - все Ok, нет никаких ошибок.

А вариант Шаоса Солид не понимает, выдаст кучу ошибок. В папке примеров компилятора есть си-сорцы. Ах да, я забыл,
это не твоя метода, знакомиться с инструментами, которыми пользуешься. Видимо ты привык так - взял сторонние сишные сорцы,
например юниксов, и без усилия (вообще всякого) собрал их... на 8-ми битке, а иначе, если не собирается - ф топку :)
Любителям подобной халявы лучше сменить тематику интересов.
Кста, я тебе подскажу (и не обращай внимания, что об этом в доке написано, ее же читать придется), для "чужих" си-сорцев (написанных не для Солида)
есть опция "-k" для cc1.exe. В каких-то случаях может выручить.

Пример Шаоса:

Code: Select all

#include <stdio.h>

void panic0(char *s)
{
    printf("\nError: ");
    printf(s);
    printf("\n");
}

main(int argc, char **argv)
{
     if(argc<2) panic0("Need some arguments.");
}

P.S. Еще не надоело похваляться "своим" Хайтек-Си, который "все прекрасно собирает" ?. Уже на зубах навязло твое пустое словоблудие,
потому как к Спринтеру-то какое отношение он имеет ?. Солид, в плане генерации кода, на ступеньку выше будет всех сишных компиляторов,
имеющихся на данное время на 8-ми битках. Сравни асм-листинги после твоего Хайтек-Си и от Солида. Вот и тебе "пример простой, но..."


P.S.S
Может кто погонять компилятор си по ссылке ниже?
в цпм он был слегка известен как microgenSF 5.17. это его кросс версия, вроде современная (автор прислал).
раньше я его не видел, даже цпмную версию.
https://www.dropbox.com/s/6f3v8g5l3pwj7 ... e.zip?dl=0
А чего, сам не можешь оценить выдаваемые асм-листинги ? Вот и узнаешь качество компилятора.
Vasil Ivanov
vasil-i@yandex.ru
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Печально, что солид это K&R...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Vasil Ivanov wrote:Солид, в плане генерации кода, на ступеньку выше будет всех сишных компиляторов,
имеющихся на данное время на 8-ми битках. Сравни асм-листинги после твоего Хайтек-Си и от Солида. Вот и тебе "пример простой, но..."
а солид умеет юзать регистры проца как часто используемые переменные?

и вообще какой-нибудь компилятор сей для z80 это умеет делать?
Я тут за главного - если что шлите мыло на me собака shaos точка net