С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
там есть не только ключ. есть еще
ENCODING <encoding>
Useful only for non-English users (Cyrillic-encodings-specific)
Set the current encoding, i.e. if you set DOS, SjASMPlus will automatically convert strings from ANSI to DOS-866. Encoding may be DOS(DOS-866) or WIN(ANSI/Win-1251). Default is WIN.
ENCODING "WIN"
DB"тексттекст" ;will be тексттекст
ENCODING "DOS"
DB"тексттекст" ;will be ⥪бв⥪бв
Личка заполнена! И чистить я ее не буду! Пользуйтесь адекватными средствами связи! Спасибо.
Seamos realistas y hagamos lo imposible!
Ernesto Che GuevaraПереехал сюда: SteinBlume (ex ATM CP/M Explorer)
http://era-cg.su
по кодировкам. можно писать русские буквы в 866 и включать в db ""(любимый Emeditor, ага). ужясм хавает и не плачет. только ему слэши не нравятся.
Я тоже работаю под Linux. Пока что хватало редактора GEdit для работы со спектрумовскими исходниками, он поддерживает CP866. Автораспознавание не работает, т.к. русского текста в исходниках мало, а латинского - много, и это конфузит автораспознаватель. Ну или он просто дубовый.
Раз в ассемблере нет перекодирования из UTF8 в CP866 - то нужно либо на PC использовать CP866, либо на Спектруме от неё отказываться. Русские буквы и псевдографика через DEFB в исходнике - это извращение.
И если отказываться от CP866 на Спеке - то в пользу чего?
Очевидно, CP1251 не имеет никаких преимуществ. Она тоже восьмибитная. Делать UTF-8 на Спектруме - будет тормозить и памяти больше отжирать, а её там и так мало. Я считаю, что CP866 на Спектруме хорошо прижилась в силу исторических и других причин (псевдографика, совместимость с MS-DOS, IS-DOS, CP/M). Отказываться от неё только ради сомнительного удобства при работе на PC? Когда нужно просто немного разобраться в настройках своего текстового редактора?
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; }
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)