Я тоже. Но Kate и KDevelop прекрасно работают и с 866 и с KOI8R. Автораспознавание там есть, кстати, тоже.Цитата:
Я работаю под linux, система работает в UTF-8 и не надо ничего придумывать с IDE.
Вид для печати
Я тоже. Но Kate и KDevelop прекрасно работают и с 866 и с KOI8R. Автораспознавание там есть, кстати, тоже.Цитата:
Я работаю под linux, система работает в UTF-8 и не надо ничего придумывать с IDE.
Я тоже работаю под Linux. Пока что хватало редактора GEdit для работы со спектрумовскими исходниками, он поддерживает CP866. Автораспознавание не работает, т.к. русского текста в исходниках мало, а латинского - много, и это конфузит автораспознаватель. Ну или он просто дубовый.
Раз в ассемблере нет перекодирования из UTF8 в CP866 - то нужно либо на PC использовать CP866, либо на Спектруме от неё отказываться. Русские буквы и псевдографика через DEFB в исходнике - это извращение.
И если отказываться от CP866 на Спеке - то в пользу чего?
Очевидно, CP1251 не имеет никаких преимуществ. Она тоже восьмибитная. Делать UTF-8 на Спектруме - будет тормозить и памяти больше отжирать, а её там и так мало. Я считаю, что CP866 на Спектруме хорошо прижилась в силу исторических и других причин (псевдографика, совместимость с MS-DOS, IS-DOS, CP/M). Отказываться от неё только ради сомнительного удобства при работе на PC? Когда нужно просто немного разобраться в настройках своего текстового редактора?
ИМХО такие штуки нужно делать при спросе на них. Это уже попахивает своей ОС-ю. :)
Мне нравится твоя оконная система тем, что она простая для использования. Порог вхождения минимальный. Что нужно разработчику приклада? - Правильно - простая ф-ция "открыл окошко, напечатал там, закрыл окошко". Я это дело вынес в макросы. В xasconv не включал этот модуль, включил в z80-telnet.
Поделюсь своими соображениями: при открытии окна возвращать дескриптор. Ну и сделать ф-цию активации "canvas"-а по дескриптору. Это сохранит обратную совместимость с текущей версии. Если вызывать ф-цию закртытия окна, то на первых порах можно закрывать крайнее открытое, чтобы не заморачиваться со сдвигом сохраненной информации в памяти.
Кстати, не стоит ли открыть отдельный топик, по обсуждению технических особенностей твоего оконного интерфейса? Этот топик вроде "а какие интерфейсы существуют?" )
В общем подозревал для чего тема создавалась :-), не подвели.
Barmaley_m, Решил что уже пора выносить оконную твою систему в отдельный SDK. SDK дополнять разными ф-циями. В xasconv проекте просто добавлю файл билда, вытаскивающий из git-а этот SDK как отдельный проект.
Хочу добиться что бы:
а) все-таки была библиотека ф-ций, которую можно использовать в разных проектах. Речь не только об оконной системе, а например уже добавил ф-циии работы со строками и портами.
б) внесения изменений были централизованными и могли пополняться ф-циями всеми желающими.
PS. Недавно внес небольшие корректировки в знакогенератор, чтобы некоторые прописные буковки были "по-ровнее".
Хорошая идея. Я тоже хотел это предложить. В процессе работы над библиотекой было бы желательно поменять некоторые интерфейсы. Чтобы это не сломало проект XASCONV, пришлось бы и его править, а это дело неблагодарное, т.к. подобный конвертор никому не нужен.
Я бы не называл данную библиотеку SDK, а немного скромнее - тем, чем она является: Framework.
Как часть проекта можно было бы создать тест-программу, демонстрирующую основные функции библиотеки: рисование окон, строк, меню, листбоксы, редактирование, доступ к диску. Такую тест-программу уже не лень менять при изменениях библиотеки; да и испытывать библиотеку после изменений на чём-то надо.
И все-таки SDK, т.к. я туда пихаю еще и либы по работе с портом, ф-ции работы со строками и немного математических ф-ций. )
https://github.com/asve79/z80-sdk
Согласен. Кстати о ф-циях работы с диском я стал все чаще задумываться. Если "взлетит" ftp клиент, они станут как никогда актуальными. ) Пример работы в ts-conf с SD я вроде как нашел, оформлю по мере проработки, а вот как работать с файлами на дискетах забыл напрочь. Тут пример с описанием был бы как нельзя кстати, чтобы не штурмовать книжки ).
asve79
;zill zero string => fill zero string?
Присмотритесь для поиска нуля в строке к команде CPIR - будет эффективнее по скорости. Вот, например, как это реализовано в SDCC:
А вот так, если длина строки не более чем len (будет достигнут 0 или строка закончится по длине - без 0). Экзотика, но это я для Оберона делал. Более безопасная работа со строками:Код:unsigned int Strings_Length (unsigned char *str) __z88dk_fastcall {
__asm
XOR A
LD B,A
LD C,A
CPIR
LD HL,#0xFFFF
SBC HL,BC
__endasm;
}
Код:unsigned int Strings_LengthEx (unsigned int len, unsigned char *str) __z88dk_callee {
__asm
POP HL
POP BC ; len
EX (SP), HL ; str
LD E, C
LD D, B
XOR A
CPIR
EX DE, HL
RET NZ
SBC HL, BC
DEC HL
__endasm;
}