Важная информация

User Tag List

Страница 50 из 51 ПерваяПервая ... 464748495051 ПоследняяПоследняя
Показано с 491 по 500 из 501

Тема: Тема для всяких глупых вопросов

  1. #491

    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,089
    Спасибо Благодарностей отдано 
    281
    Спасибо Благодарностей получено 
    70
    Поблагодарили
    49 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    Погуглил альтернативы на lex/yacc, но ничего для Z80 не нашел, есть только обсуждения где пишут что проще код вручную разбирать. И кстати в zmac лексический анализатор вручную написан, lex не используется. Поэтому в нем много костылей и дорабатывать код сложно.
    Попробуй Ragel. Основные его свойства:
    1) Похоже на lex, только намного круче
    2) Генерирует конечные автоматы с возможностью их визуализации
    3) Очень компактный C-код на выходе
    4) До yacc не дотягивает, но для задач вроде Z80 ассемблера это не нужно.

    Я даже уже начал делать "аналог" M80 на Ragel, но не доделал. Лежит у меня этот проект. Одно могу точно сказать: Ragel - подходящий инструмент для этой задачи.

  2. #492

    Регистрация
    18.07.2021
    Адрес
    г. Хмельницкий, Украина
    Сообщений
    105
    Спасибо Благодарностей отдано 
    12
    Спасибо Благодарностей получено 
    33
    Поблагодарили
    25 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Читал-читал доки по LUA - ничего не понял. Или старею, или - в Sjasm версия действительно древняя.
    Пример из документации Sjasm:
    Код:
    LUA
    -- Function reads number from file <fname>, increases it, creates define "BUILD" with the number and saves the number to <fname>.
    -- With this function you can control count of compilations.
    	function increase_build(fname)
    		local fp
    		local build
    		local time
    		fp = assert(io.open(fname, "rb"))
    		build = tonumber(fp:read("*all"))
    		assert(fp:close())
    		if type(build) == "nil" then
    		    build = 0
    		end
    		build = build + 1;
    		sj.insert_define("BUILD", build)
    		fp = assert(io.open(fname, "wb"))
    		assert(fp:write( build ))
    		assert(fp:flush())
    		assert(fp:close())
    		end
    
    -- Before using you must create empty file "build.txt"!
    	increase_build("build.txt")
    
    -- Creates define "TIME" with current time
    	sj.insert_define("TIME", '"' .. os.date("%d-%m-%Y %H:%M:%S") .. '"')
    		ENDLUA
    Как сделать, чтобы в файл писался не только номер билда, но и содержимое TIME?
    А если содержимое BUILD и TIME будет при компиляции писаться еще и в код, через DB, например - будет вообще идеально.
    программирование сильно возрастает!
    https://zx-pk.ru/threads/474-deb-ass...ull=1#post7841

  3. #493

    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,082
    Записей в дневнике
    11
    Спасибо Благодарностей отдано 
    173
    Спасибо Благодарностей получено 
    493
    Поблагодарили
    343 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от 0xDEAD Посмотреть сообщение
    Как сделать, чтобы в файл писался не только номер билда, но и содержимое TIME?
    А если содержимое BUILD и TIME будет при компиляции писаться еще и в код, через DB, например - будет вообще идеально.
    Да вроде обе хотелки в лоб реализуются
    Код:
    		LUA
    -- Function reads number from file <fname>, increases it, creates define "BUILD" with the number and saves the number to <fname>.
    -- With this function you can control count of compilations.
    	function increase_build(fname)
    		local fp
    		local build
    		local time
    		fp = assert(io.open(fname, "rb"))
    		build = tonumber(fp:read("*number"))
    		assert(fp:close())
    		if type(build) == "nil" then
    		    build = 0
    		end
    		build = build + 1;
    		sj.insert_define("BUILD", '"' .. build .. '"')
    		fp = assert(io.open(fname, "wb"))
    		assert(fp:write( build, " ", os.date("%d-%m-%Y %H:%M:%S") ))
    		assert(fp:flush())
    		assert(fp:close())
    		end
    
    -- Before using you must create empty file "build.txt"!
    	increase_build("build.txt")
    
    -- Creates define "TIME" with current time
    	sj.insert_define("TIME", '"' .. os.date("%d-%m-%Y %H:%M:%S") .. '"')
    		ENDLUA
    
    		DEVICE ZXSPECTRUM48
    		ORG #5B00
    		DB TIME
    		DB BUILD
    		SAVEBIN "output.bin", #5B00, $-#5B00
    Последний раз редактировалось Eltaron; 16.02.2025 в 21:51.
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI YTINK 9 Channel

    Этот пользователь поблагодарил Eltaron за это полезное сообщение:

    0xDEAD(16.02.2025)

  4. #494

    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    1,691
    Спасибо Благодарностей отдано 
    302
    Спасибо Благодарностей получено 
    223
    Поблагодарили
    159 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от 0xDEAD Посмотреть сообщение
    Как сделать, чтобы в файл писался не только номер билда, но и содержимое TIME?
    А если содержимое BUILD и TIME будет при компиляции писаться еще и в код, через DB, например - будет вообще идеально.
    Я без луа делал из батника вывод в файл, который дальше инклудился:

    Код:
    set dt=%DATE:~8,2%-%DATE:~3,2%-%DATE:~0,2%_%TIME:~0,2%:%TIME:~3,2%
    set dt=%dt: =0%
    set dt=%dt:_= %
    
    set version=%DATE:~6,4%.%DATE:~3,2%.%DATE:~0,2%
    
    echo | set /p="%dt%" > __build.bin
    Heavy on the disasm
    Eric and the disasm
    Mask 3: Venom strikes disasm
    Bard's disasm

  5. #495

    Регистрация
    24.09.2005
    Адрес
    Новосибирск
    Сообщений
    36
    Спасибо Благодарностей отдано 
    7
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В какой порт спектрума (младший байт адреса порта) можно безопасно, без побочных эффектов, записать любое значение при любом старшем байте адреса?

    Другими словами, при каком n команда `out (n), a` гарантированно ничего не сделает на всех моделях спектрумов и клонов?
    Если за все модели поручиться нельзя, то хотя бы на большинстве.

  6. #496

    Регистрация
    31.01.2007
    Адрес
    Москва
    Сообщений
    810
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    77
    Поблагодарили
    59 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Тайльнемер Посмотреть сообщение
    В какой порт спектрума (младший байт адреса порта) можно безопасно, без побочных эффектов, записать любое значение при любом старшем байте адреса?

    Другими словами, при каком n команда `out (n), a` гарантированно ничего не сделает на всех моделях спектрумов и клонов?
    Если за все модели поручиться нельзя, то хотя бы на большинстве.
    FF

  7. #496
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #497

    Регистрация
    07.10.2006
    Сообщений
    1,730
    Спасибо Благодарностей отдано 
    257
    Спасибо Благодарностей получено 
    275
    Поблагодарили
    167 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от krt17 Посмотреть сообщение
    FF
    На таймексах порт FF - управление экранными режимами. А также в некоторых реализациях ULAplus.
    Последний раз редактировалось Spectramine; 14.09.2025 в 19:42.

  9. #498

    Регистрация
    31.01.2007
    Адрес
    Москва
    Сообщений
    810
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    77
    Поблагодарили
    59 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Spectramine Посмотреть сообщение
    На таймексах порт FF - управление экранными режимами. А также в некоторых реализациях ULAplus.
    есть кандидат лучше?
    ну так то и в трдос есть ff.
    все позанимали, что не напрямую то неполной дешифрацией

  10. #499

    Регистрация
    07.10.2006
    Сообщений
    1,730
    Спасибо Благодарностей отдано 
    257
    Спасибо Благодарностей получено 
    275
    Поблагодарили
    167 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Может #F7?

  11. #500

    Регистрация
    31.01.2007
    Адрес
    Москва
    Сообщений
    810
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    77
    Поблагодарили
    59 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    за интерфейсом 1, тоже нормально, шансы с таймексом примерно одинаковые) с улой плюс конечно печальный выбор, тоже наверное от безысходности взяли.

Страница 50 из 51 ПерваяПервая ... 464748495051 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 42
    Последнее: 05.05.2021, 17:01
  2. Общая тема для моих вопросов (ассемблер и zx spectrum)
    от moronizzz в разделе Для начинающих
    Ответов: 17
    Последнее: 23.08.2016, 18:13
  3. тема для мобильного....
    от rasmer в разделе Музыка
    Ответов: 0
    Последнее: 18.01.2008, 20:25

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •