Вот примерил - в ширину влезает 80 букв W, 106.5 букв o и 320 букв iShaos wrote:Ну дык пропорциональный шрифт ведь - если всё написать буковками i то влезет дофига, а если W, то не оченьRomanRom2 wrote:я так и не понял, какое разрешение в знакоместах то?Shaos wrote:Шрифт тут пропорциональный по горизонтали (точно такой же как в FN), а по высоте - на картинке строка 8 пикселов т.е. 32 строки
32 строки, ок. а символов в строке сколько?
Solid C - компилятор Си для Спринтера
Moderator: Shaos
-
Shaos
- Admin
- Posts: 24381
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Solid C - компилятор Си для Спринтера
You do not have the required permissions to view the files attached to this post.
-
Alekcandr
- Doomed
- Posts: 665
- Joined: 01 Oct 2007 10:30
- Location: Ukraine
Re: Solid C - компилятор Си для Спринтера
Фигаси себе. Шрифт пропорциональный. Вот уж некуда 20МГц девать 
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
http://www.orion-ext.narod.ru
-
Shaos
- Admin
- Posts: 24381
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Solid C - компилятор Си для Спринтера
Ну он с помощью акселератора выводится, поэтому нормAlekcandr wrote:Фигаси себе. Шрифт пропорциональный. Вот уж некуда 20МГц девать
-
Alekcandr
- Doomed
- Posts: 665
- Joined: 01 Oct 2007 10:30
- Location: Ukraine
Re: Solid C - компилятор Си для Спринтера
читерыShaos wrote:Ну он с помощью акселератора выводится, поэтому нормAlekcandr wrote:Фигаси себе. Шрифт пропорциональный. Вот уж некуда 20МГц девать
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
http://www.orion-ext.narod.ru
-
Vasil Ivanov
- Doomed
- Posts: 413
- Joined: 11 Dec 2003 14:34
Re: Solid C - компилятор Си для Спринтера
Смотрю планы на солид у тебя грандиозные. А тебе случайно "ASCII-C11 (MSX-C compiler v1.1, почти совместим с cpm)" не нужен ?Shaos wrote:У меня лично планы такие на Солид:
1) написать пре-препроцессор (можно взять за основу CPPPP из архива, что Василий в телегу скинул), который бы преобразовывал ANSI C в K&R, а также комменты преобразовывал из C++ в С стиль (уже есть в cpppp), если надо UNIX окончания переводил в DOS, если есть русский UTF8 переводил бы в альтернативную кодировку доса, может какие-то простые C++ вещи бы мог превращать в понятный для солида вид;
2) починить LD.EXE чтобы мог работать с длинными путями;
3) сделать утилиту MAKE для Спринтера;
4) сделать собиралку CLIB.IRL на Спринтере (используя MAKE, сделанный в предыдущем пункте, а также написанием собственной утилиты MX, которая режет исходники на модули);
5) написать оптимизатор (по типу как для некоторых других 8-битных компилей были), который бы шёл по асмовскому тексту и преобразовывал бы некоторые вещи для скорости, хотя я смотрю там вроде и так всё более менее оптимально - например OPTD1.COM (из того же архива от Василия) нашёл в результате компилирования LZH3.C размером 2.5 тыщи строк только несущественные мелочи:
. . .
Vasil Ivanov
vasil-i@yandex.ru
vasil-i@yandex.ru
-
Sayman
- Maniac
- Posts: 223
- Joined: 05 Oct 2009 19:44
- Location: 212.164.105.5
Re: Solid C - компилятор Си для Спринтера
а в чём большая разница? MSX-C такой же K&R как и Solid C.Vasil Ivanov wrote: Смотрю планы на солид у тебя грандиозные. А тебе случайно "ASCII-C11 (MSX-C compiler v1.1, почти совместим с cpm)" не нужен ?
-
Shaos
- Admin
- Posts: 24381
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Solid C - компилятор Си для Спринтера
Ну Солид вроде как писался в пику MSX-C и типа лучше в смысле кодогенерации - он меня вполне устраивает 
-
Alekcandr
- Doomed
- Posts: 665
- Joined: 01 Oct 2007 10:30
- Location: Ukraine
Re: Solid C - компилятор Си для Спринтера
Я бы не рекомендовал MSX-C. Он сам в себе.
За Солид С ничего не скажу. А почему не взять за инструментальную среду разработки HI-TECH C v3.09? Вроде считается вершиной Си компиляторов в CP/M для Z80 и стандарту соответствует.
За Солид С ничего не скажу. А почему не взять за инструментальную среду разработки HI-TECH C v3.09? Вроде считается вершиной Си компиляторов в CP/M для Z80 и стандарту соответствует.
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
http://www.orion-ext.narod.ru
-
Vasil Ivanov
- Doomed
- Posts: 413
- Joined: 11 Dec 2003 14:34
Re: Solid C - компилятор Си для Спринтера
Говорят типа, что msdos-овый версии 7.80 лучше генерит код, по-крайней мере лучше cpm-ного. Тогда взять за основу его.Alekcandr wrote:Я бы не рекомендовал MSX-C. Он сам в себе.
За Солид С ничего не скажу. А почему не взять за инструментальную среду разработки HI-TECH C v3.09? Вроде считается вершиной Си компиляторов в CP/M для Z80 и стандарту соответствует.
Vasil Ivanov
vasil-i@yandex.ru
vasil-i@yandex.ru
-
Vasil Ivanov
- Doomed
- Posts: 413
- Joined: 11 Dec 2003 14:34
Re: Solid C - компилятор Си для Спринтера
На MSX форуме писали, что MSX-C 1.2 в библиотечном коде поддерживает 32-бит. Там есть описание SLONG ("signed long", структура 4 байта) и XDOUBLE ("msx double", структура 8 байт). Почему бы для солида не сделать поддержку 32-бит в библиотечном коде ?Shaos wrote:Ну Солид вроде как писался в пику MSX-C и типа лучше в смысле кодогенерации - он меня вполне устраивает
Vasil Ivanov
vasil-i@yandex.ru
vasil-i@yandex.ru
-
Shaos
- Admin
- Posts: 24381
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Solid C - компилятор Си для Спринтера
Ну если ты готов его портировать под Спринтер - то вперёд и с песнейAlekcandr wrote:Я бы не рекомендовал MSX-C. Он сам в себе.
За Солид С ничего не скажу. А почему не взять за инструментальную среду разработки HI-TECH C v3.09? Вроде считается вершиной Си компиляторов в CP/M для Z80 и стандарту соответствует.
У меня нету столько свободного времени - я лучше Солид потихоньку напильником буду обтачивать
В структурах это не настолько интересно как нативно в виде long и float, но я погляжуVasil Ivanov wrote:На MSX форуме писали, что MSX-C 1.2 в библиотечном коде поддерживает 32-бит. Там есть описание SLONG ("signed long", структура 4 байта) и XDOUBLE ("msx double", структура 8 байт). Почему бы для солида не сделать поддержку 32-бит в библиотечном коде ?Shaos wrote:Ну Солид вроде как писался в пику MSX-C и типа лучше в смысле кодогенерации - он меня вполне устраивает
-
Alekcandr
- Doomed
- Posts: 665
- Joined: 01 Oct 2007 10:30
- Location: Ukraine
Re: Solid C - компилятор Си для Спринтера
Не совсем понял, что есть портировать? Вроде запуск любого компилятора не требует портирования. Или ОС Спринтера настолько уникальна? Или речь о уникальных библиотеках для Спринтера?Shaos wrote:Ну если ты готов его портировать под Спринтер - то вперёд и с песнейAlekcandr wrote:Я бы не рекомендовал MSX-C. Он сам в себе.
За Солид С ничего не скажу. А почему не взять за инструментальную среду разработки HI-TECH C v3.09? Вроде считается вершиной Си компиляторов в CP/M для Z80 и стандарту соответствует.
У меня нету столько свободного времени - я лучше Солид потихоньку напильником буду обтачивать
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
http://www.orion-ext.narod.ru
-
Shaos
- Admin
- Posts: 24381
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Solid C - компилятор Си для Спринтера
Естественно ОС Спринтера ни с MSX-DOS, ни с CP/M-80 никак НЕ совместима - свой API вывода текста на экран и ввода с клавиатуры, свой API по работе с дисковыми файлами, свой API по переключению окон расширенной памяти и т.д.Alekcandr wrote:Не совсем понял, что есть портировать? Вроде запуск любого компилятора не требует портирования. Или ОС Спринтера настолько уникальна? Или речь о уникальных библиотеках для Спринтера?
-
Shaos
- Admin
- Posts: 24381
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Solid C - компилятор Си для Спринтера
Ещё одна возможная оптимизация вокруг изредка встречающейся инструкции ld sp,ix:Shaos wrote:5) написать оптимизатор (по типу как для некоторых других 8-битных компилей были), который бы шёл по асмовскому тексту и преобразовывал бы некоторые вещи для скорости, хотя я смотрю там вроде и так всё более менее оптимально - например OPTD1.COM (из того же архива от Василия) нашёл в результате компилирования LZH3.C размером 2.5 тыщи строк только несущественные мелочи:P.S. А вообще "интеллектуальный" оптимайзер может разворачивать циклы при необходимости и вставлять тела небольших подпрограмм вместо call (видимо ещё надо и профайлер делать, чтобы узнать какие части кода часто вызываются и выполняются дольше всего)Code: Select all
0a1 > ; Code optimized with XelaSoft's code optimizer version 1.1 2045,2046c2046 < call update_ < ret --- > jp update_ ; -optimized- 2076,2077c2076 < call Putcode_ < ret --- > jp Putcode_ ; -optimized- 2088,2089c2087 < call putc_ < ret --- > jp putc_ ; -optimized- 2397,2398c2395 < call EncodeEnd_ < ret --- > jp EncodeEnd_ ; -optimized- --- > > ; # BC load groups replaced: 0 > ; # DE load groups replaced: 0 > ; # EX DE,HL pairs removed: 0 > ; # call/ret pairs replaced: 4 > ; # in/out instr. used: 0 > ; # shift instructions replaced 0
P.P.S. В коде солида вот такие штуки попадаются:которые можно заменить на:Code: Select all
ex de,hl ld a,e sub c ld c,a ld a,d sbc a,b ld b,a ld l,c ld h,bи даже такое можно встретить:Code: Select all
or a sbc hl,bcпо сути можно проанализировать операции с регистрами по всей длине программы и убрать лишние копирования в регистры, которые далее по коду перетирваютсяCode: Select all
ld b,a ; можно выкинуть ld b,c
- убирать лишнюю команду ld sp,ix если по ходу функции sp не менялся - как например тут:
Code: Select all
;{
printxy_:
push ix
ld ix,0
add ix,sp
ld a,c
ld (inregs_+1),a
ld (inregs_+8),hl
ex de,hl
ld (inregs_+10),hl
ld l,(ix+4)
ld h,(ix+5)
ld (inregs_+4),hl
ld bc,inregs_
ld de,3
ld hl,(handle_)
call calldll_
ld a,l
and h
inc a
jp nz,@0
ld hl,1
call exit_
@0:
ld sp,ix <<<<<<<<<< ненужно (и даже вредно, т.к. calldll_ портит IX)
pop ix
ret
;}
Code: Select all
...
call printf_
ex de,hl
ld hl,14
add hl,sp
ld sp,hl
ex de,hl
ld sp,ix <<<< оставить вместо предыдущих 5 инструкций
pop ix
ret
-
Vasil Ivanov
- Doomed
- Posts: 413
- Joined: 11 Dec 2003 14:34
Re: Solid C - компилятор Си для Спринтера
Ты по-аккуратней там с этим оптимизатором. Помнится у меня был такой случай, этот оптимизатор соптимизировал комбинацию "call ... : ret" в "jp ...". И пипец, программа кончила правильно работать. Там как-то и где-то стек корректировался и ессно "jp ..." не годился.to: Shaos
Так что, проверяй код на корректную работу после оптимизатора.
Vasil Ivanov
vasil-i@yandex.ru
vasil-i@yandex.ru
