Author |
Message |
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22543 Location: Silicon Valley
|
Вот примерил - в ширину влезает 80 букв W, 106.5 букв o и 320 букв i
|
21 Mar 2021 02:16 |
|
|
Alekcandr
Doomed
Joined: 01 Oct 2007 10:30 Posts: 665 Location: Ukraine
|
Фигаси себе. Шрифт пропорциональный. Вот уж некуда 20МГц девать
_________________Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
|
22 Mar 2021 08:09 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22543 Location: Silicon Valley
|
Ну он с помощью акселератора выводится, поэтому норм
|
22 Mar 2021 08:50 |
|
|
Alekcandr
Doomed
Joined: 01 Oct 2007 10:30 Posts: 665 Location: Ukraine
|
читеры
_________________Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
|
22 Mar 2021 08:53 |
|
|
Vasil Ivanov
Doomed
Joined: 11 Dec 2003 14:34 Posts: 413
|
| | | | 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 тыщи строк только несущественные мелочи: . . .
| | | | |
Смотрю планы на солид у тебя грандиозные. А тебе случайно "ASCII-C11 (MSX-C compiler v1.1, почти совместим с cpm)" не нужен ?
_________________Vasil Ivanov vasil-i@yandex.ru
|
23 Mar 2021 04:49 |
|
|
Sayman
Maniac
Joined: 05 Oct 2009 19:44 Posts: 223 Location: 212.164.105.5
|
а в чём большая разница? MSX-C такой же K&R как и Solid C.
|
23 Mar 2021 07:37 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22543 Location: Silicon Valley
|
Ну Солид вроде как писался в пику MSX-C и типа лучше в смысле кодогенерации - он меня вполне устраивает
|
23 Mar 2021 08:54 |
|
|
Alekcandr
Doomed
Joined: 01 Oct 2007 10:30 Posts: 665 Location: Ukraine
|
Я бы не рекомендовал MSX-C. Он сам в себе.
За Солид С ничего не скажу. А почему не взять за инструментальную среду разработки HI-TECH C v3.09? Вроде считается вершиной Си компиляторов в CP/M для Z80 и стандарту соответствует.
_________________Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
|
23 Mar 2021 12:01 |
|
|
Vasil Ivanov
Doomed
Joined: 11 Dec 2003 14:34 Posts: 413
|
Говорят типа, что msdos-овый версии 7.80 лучше генерит код, по-крайней мере лучше cpm-ного. Тогда взять за основу его.
_________________Vasil Ivanov vasil-i@yandex.ru
|
23 Mar 2021 12:30 |
|
|
Vasil Ivanov
Doomed
Joined: 11 Dec 2003 14:34 Posts: 413
|
На MSX форуме писали, что MSX-C 1.2 в библиотечном коде поддерживает 32-бит. Там есть описание SLONG ("signed long", структура 4 байта) и XDOUBLE ("msx double", структура 8 байт). Почему бы для солида не сделать поддержку 32-бит в библиотечном коде ?
_________________Vasil Ivanov vasil-i@yandex.ru
|
23 Mar 2021 12:56 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22543 Location: Silicon Valley
|
Ну если ты готов его портировать под Спринтер - то вперёд и с песней У меня нету столько свободного времени - я лучше Солид потихоньку напильником буду обтачивать В структурах это не настолько интересно как нативно в виде long и float, но я погляжу
|
23 Mar 2021 13:20 |
|
|
Alekcandr
Doomed
Joined: 01 Oct 2007 10:30 Posts: 665 Location: Ukraine
|
Не совсем понял, что есть портировать? Вроде запуск любого компилятора не требует портирования. Или ОС Спринтера настолько уникальна? Или речь о уникальных библиотеках для Спринтера?
_________________Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
|
23 Mar 2021 13:48 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22543 Location: Silicon Valley
|
Естественно ОС Спринтера ни с MSX-DOS, ни с CP/M-80 никак НЕ совместима - свой API вывода текста на экран и ввода с клавиатуры, свой API по работе с дисковыми файлами, свой API по переключению окон расширенной памяти и т.д.
|
23 Mar 2021 17:13 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22543 Location: Silicon Valley
|
| | | | Shaos wrote: 5) написать оптимизатор (по типу как для некоторых других 8-битных компилей были), который бы шёл по асмовскому тексту и преобразовывал бы некоторые вещи для скорости, хотя я смотрю там вроде и так всё более менее оптимально - например OPTD1.COM (из того же архива от Василия) нашёл в результате компилирования LZH3.C размером 2.5 тыщи строк только несущественные мелочи: P.S. А вообще "интеллектуальный" оптимайзер может разворачивать циклы при необходимости и вставлять тела небольших подпрограмм вместо call (видимо ещё надо и профайлер делать, чтобы узнать какие части кода часто вызываются и выполняются дольше всего) P.P.S. В коде солида вот такие штуки попадаются: которые можно заменить на: и даже такое можно встретить: по сути можно проанализировать операции с регистрами по всей длине программы и убрать лишние копирования в регистры, которые далее по коду перетирваются | | | | |
Ещё одна возможная оптимизация вокруг изредка встречающейся инструкции ld sp,ix: - убирать лишнюю команду ld sp,ix если по ходу функции sp не менялся - как например тут: | | | | Code: ;{ 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 ;}
| | | | |
- убирать последнюю математику по восстановлению sp в функции после вызова вложенной функции с аргументами переданными через стек, если далее стоит ld sp,ix - как например тут:
|
24 Mar 2021 01:11 |
|
|
Vasil Ivanov
Doomed
Joined: 11 Dec 2003 14:34 Posts: 413
|
Ты по-аккуратней там с этим оптимизатором. Помнится у меня был такой случай, этот оптимизатор соптимизировал комбинацию "call ... : ret" в "jp ...". И пипец, программа кончила правильно работать. Там как-то и где-то стек корректировался и ессно "jp ..." не годился. Так что, проверяй код на корректную работу после оптимизатора.
_________________Vasil Ivanov vasil-i@yandex.ru
|
24 Mar 2021 01:36 |
|
|