User Tag List

Страница 32 из 70 ПерваяПервая ... 282930313233343536 ... ПоследняяПоследняя
Показано с 311 по 320 из 699

Тема: SjASMPlus от z00m

  1. #311

    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,829
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    663
    Поблагодарили
    513 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Ped7g Посмотреть сообщение
    This is the level of SW quality I don't want to deal with, so I just added the code to sjasmplus and I'm running away
    что поделать когда trdos, мягко говоря, не идеален...

  2. #312

    Регистрация
    10.05.2019
    Адрес
    Prague, Czech Republic
    Сообщений
    229
    Спасибо Благодарностей отдано 
    51
    Спасибо Благодарностей получено 
    103
    Поблагодарили
    77 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    что поделать когда trdos, мягко говоря, не идеален...
    well.. replace it with something better? I would suggest to fork and fix it, but it's not open IIRC, the license is prohibitive... which brings me back to my lamenting about people using the most painful options available, causing harm to themselves and still even touting it as best/only option. Situations like this learned me to pick up my SW carefully and pay attention to licenses and source availability, and to value this strongly even over some neat features. Those help in short-term, but in long-term the closed stuff is just pain in ass, I definitely replace it whenever possible with more open options, even if I have to somewhat fix them (looking at you sjasmplus, costing me year+ of my life, instead of writing some ZXNext games ... sigh)

    - - - Updated - - -

    Цитата Сообщение от zebest Посмотреть сообщение
    В аттаче два файла,
    my_Dizzy_test_128.trd, который я собирал руками и бейсик загрузчик 256 байт, и работает правильно, автозапускается, и второй файл, My_test2.zip , который собран средствами исключительно SJAsm-a,
    Ok, now back to those two TRD files... the first disk contains the "80 AA 01 00" autostart bytes after the 250th byte of BASIC.
    So changing your:
    Код:
        ORG $C000, 7        ;      "page 7"
        incbin "TRD/boot.B"
        SAVETRD "my_test.trd","boot.B",$C000,$100,$1
    to

    Код:
        ORG $C000, 7        ;      "page 7"
        incbin "TRD/boot.B"
        SAVETRD "my_test.trd","boot.B",$C000,250,$1
    *should* work... ... I'm going to try myself and edit this post if I fail... but I don't see any reason why it would not work.

    EDIT:
    so your original trd (with three letter extensions and autostart) on my disk is "orig.trd" (I renamed it to keep track which is which), and your sjasmplus produced is "sjasmplus.trd" ... I can assemble the two disc together (with current git master) with this code:

    Код:
        DEVICE ZXSPECTRUM1024
        EMPTYTRD "ped.trd"
        ORG 0 : INCTRD "orig.trd", "boot.B"
        SAVETRD "ped.trd", "boot.B", 0, 250, 1
        ORG 0 : INCTRD "sjasmplus.trd", "my_test.C"
        SAVETRD "ped.trd", "my_test.bin", 0, $      ; ok
        ORG 0 : INCTRD "sjasmplus.trd", "pent.C"
        SAVETRD "ped.trd", "pent.scr", 0, $         ; ok
        ORG 0 : INCTRD "sjasmplus.trd", "dizzy00.C"
        SAVETRD "ped.trd", "dizzy00.pak", 0, $      ; ok
        ORG 0 : INCTRD "sjasmplus.trd", "dizzy01.C"
        SAVETRD "ped.trd", "dizzy_0.pak", 0, $      ; ok
        ORG 0 : INCTRD "sjasmplus.trd", "dizzy02.C"
        SAVETRD "ped.trd", "dizzy_1.pak", 0, $      ; ok
        ORG 0 : INCTRD "sjasmplus.trd", "dizzy03.C"
        SAVETRD "ped.trd", "dizzy_2.pak", 0, $      ; ok
        ORG 0 : INCTRD "sjasmplus.trd", "dizzy04.C"
        SAVETRD "ped.trd", "dizzy_3.pak", 0, $      ; ok
        ORG 0 : INCTRD "sjasmplus.trd", "dizzy05.C"
        SAVETRD "ped.trd", "dizzy04.pak", 0, $      ; ok
        ORG 0 : INCTRD "sjasmplus.trd", "press.C"
        SAVETRD "ped.trd", "press.scr", 0, $        ; ok
    This is the result:
    ped.trd.zip

    Please try if it works... it is different in four bytes, the disc label in original has extra two spaces (sjasmplus keeps it only 8 chars long, not 10), and the two bytes in boot.B sector after the auto-start mark are also "00 00" from assembler, but your original disc has "35 36" there ... should be just garbage, not affecting anything, as far as I know.

    BTW, why I do use INCTRD over both trd files to create this example? Because INCTRD in sjasmplus does not support 3-letter extensions, so I can't easily include the original files...
    ... irony..

    Ok, that's maybe one more thing to fix before v1.15.1 release...
    Последний раз редактировалось Ped7g; 07.07.2020 в 10:02.

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

    zebest(07.07.2020)

  3. #313

    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,829
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    663
    Поблагодарили
    513 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Ped7g Посмотреть сообщение
    well.. replace it with something better?
    это звучит как
    "выкинуть zx spectrum 128 toast rack
    и купить вместо ibm pc with core i9"

    +tr dos прошит в ПЗУ
    и не каждый его вообще может как либо обновить
    на реальном железе

    приходиться использовать то что есть
    менять что либо уже поздно

    некоторые вообще продолжают упорно пытаться писать только под 48к
    несмотря ни на что...
    ...а результат как правило плохой...

    - - - Добавлено - - -

    теперь я тоже поддерживаю 3-х буквенные расширения


    - - - Добавлено - - -

    Цитата Сообщение от Ped7g Посмотреть сообщение
    I would use something like (Makefile):

    Код:
    .PHONY all
    
    all : aa0.tap aa1.tap aa2.tap
    
    aa0.tap : main.asm
            sed -f sed_aa0_rules.txt main.asm > aa0.asm
            sjasmplus -Daa=0 aa0.asm
    
    aa1.tap : main.asm
            sed -f sed_aa1_rules.txt main.asm > aa1.asm
            sjasmplus -Daa=1 aa1.asm
    
    aa2.tap : main.asm
            sed -f sed_aa2_rules.txt main.asm > aa2.asm
            sjasmplus -Daa=2 aa2.asm
    ... building all variants with one `make` command.

    у меня 54 версии программы

    для этого нужно будет 54 rules.txt

    нужен препроцессор который сам будет запускать 54 раза sjasm
    по одному правилу

    + не которые варианты не всегда собираются (тк может не хватать памяти)
    и нужно рассматривать и вникать в сообщения



    а как внешний препроцессор заменит что либо во всех условно подключаемых include-ах ?
    никак...
    Последний раз редактировалось NEO SPECTRUMAN; 07.07.2020 в 13:27.

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

    Ped7g(07.07.2020)

  4. #314

    Регистрация
    10.05.2019
    Адрес
    Prague, Czech Republic
    Сообщений
    229
    Спасибо Благодарностей отдано 
    51
    Спасибо Благодарностей получено 
    103
    Поблагодарили
    77 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    And INCTRD refactored too, now it supports the unofficial 3-letter extensions just like SAVETRD

    I guess today (+-5 days) the v1.15.1 will be released, depends how z00m has time to build the binaries and verify the packages.
    (but if no more problems appear, what is current last commit in git will become v1.15.1)

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

    Dart Alver(07.07.2020)

  5. #315

    Регистрация
    11.01.2008
    Адрес
    Ладошкино
    Сообщений
    1,811
    Записей в дневнике
    4
    Спасибо Благодарностей отдано 
    386
    Спасибо Благодарностей получено 
    339
    Поблагодарили
    244 сообщений
    Mentioned
    14 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Ped7g Посмотреть сообщение
    Please try if it works... i
    Да, ваш пример работает верно, как задумывал аффтор Это же чисто для проверки, если по нажатию клавиш 1-7 на экране рисуются различные картинки из Диззи - значит файлы в образе расположены в правильном порядке. Это я учусь распихивать файлы по различным банкам памяти
    Profi v3.2 -=- Speccy2010,r2

  6. #316

    Регистрация
    10.01.2010
    Адрес
    Смоленская обл.
    Сообщений
    556
    Спасибо Благодарностей отдано 
    187
    Спасибо Благодарностей получено 
    197
    Поблагодарили
    100 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    у меня 54 версии программы

    для этого нужно будет 54 rules.txt

    нужен препроцессор который сам будет запускать 54 раза sjasm
    по одному правилу
    Чтото средствами sjasm, что-то скриптами и внешними программами.


    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    + не которые варианты не всегда собираются (тк может не хватать памяти)
    и нужно рассматривать и вникать в сообщения
    Ну можно например сохранять логи в отдельных файлах или попытаться отслеживать "Pass 3 complete" и "Errors: 0,".

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    а как внешний препроцессор заменит что либо во всех условно подключаемых include-ах ?
    никак...
    Как запрограммируешь так и заменит.

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

  8. #317

    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,829
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    663
    Поблагодарили
    513 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Dart Alver Посмотреть сообщение
    Как запрограммируешь так и заменит.
    надо будет при программировать пол sjasm-а...

  9. #318

    Регистрация
    10.05.2019
    Адрес
    Prague, Czech Republic
    Сообщений
    229
    Спасибо Благодарностей отдано 
    51
    Спасибо Благодарностей получено 
    103
    Поблагодарили
    77 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    Эти 2 пользователя(ей) поблагодарили Ped7g за это полезное сообщение:

    Dart Alver(08.07.2020), NEO SPECTRUMAN(08.07.2020)

  10. #319

    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,829
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    663
    Поблагодарили
    513 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    новая версия выдает 100500 предупреждений на adp

    adp.asm(417): warning: When lua script emits machine code bytes, use "ALLPASS" m
    odifier



    - - - Добавлено - - -

    можно подробней про то
    когда выдается такое предупреждение?


    вариант делать allpass по моему не приемлемый
    по моему я эксперементальным путем подбирал номера проходов чтоб все работало


    чисто на вид полученный код работает



    я уже совершенно не помню как это все работает
    и почему

    Код:
    ;FAST TAB macro pg00
    						;по окончанию PASS2 уже установлен новый org!
    	macro fasttab_allocate_macro_pg00 _fasttab_alloc_page_for_table_pg00?, _fasttab_alloc_table_haddr_pg00?, _fasttab_alloc_procedure_number_pg00?
    					
    @__fasttab_allocate_page_for_table_pg00 = _fasttab_alloc_page_for_table_pg00?					
    @__fasttab_allocate_table_haddr_pg00 = _fasttab_alloc_table_haddr_pg00?
    @__fasttab_allocate_procedure_number_pg00 = _fasttab_alloc_procedure_number_pg00?
    						
    @__fasttab_allocate_macro_current_addr_pg00 = $		;бекап адреса
    			;display "fasttab_allocate_macro_current_addr_pg00 ",@__fasttab_allocate_macro_current_addr_pg00
    
    							;чтение состояния слотов
    			org $0000
    @__fasttab_allocate_macro_current_slot0_pg00 = $$
    			;display "fasttab_allocate_macro_current_slot0_pg00 ",@__fasttab_allocate_macro_current_slot0_pg00
    			org $4000
    @__fasttab_allocate_macro_current_slot1_pg00 = $$
    			;display "fasttab_allocate_macro_current_slot1_pg00 ",@__fasttab_allocate_macro_current_slot1_pg00
    			org $8000
    @__fasttab_allocate_macro_current_slot2_pg00 = $$
    			;display "fasttab_allocate_macro_current_slot2_pg00 ",@__fasttab_allocate_macro_current_slot2_pg00
    			org $C000
    @__fasttab_allocate_macro_current_slot3_pg00 = $$
    			;display "fasttab_allocate_macro_current_slot3_pg00 ",@__fasttab_allocate_macro_current_slot3_pg00
    ;				
    ;							;востановление адреса
    			org @__fasttab_allocate_macro_current_addr_pg00
    ;			display "current addr check ",$
    				
    		lua pass1
    								
    		lua_fasttab_allocate_procedure_start_addr_pg00[(_c("__fasttab_allocate_table_haddr_pg00"))][(_c("__fasttab_allocate_procedure_number_pg00"))] = _c("$")	
    									
    		endlua
    		lua allpass
    		lua_function_fasttab_allocate_pg00((_c("__fasttab_allocate_table_haddr_pg00")),(_c("__fasttab_allocate_procedure_number_pg00")))
    		endlua
    		
    		lua pass2	;copy
    		if lua_fasttab_allocator_page_finded_pg00 == 1 then
    
    			_pc("slot 0")
    			_pc("page @__fasttab_allocate_page_for_table_pg00 ")
    			_pc("slot 1")
    			_pc("page @__fasttab_allocate_page_for_table_pg00 ")
    			_pc("slot 2")
    			_pc("page @__fasttab_allocate_page_for_table_pg00 ")	
    			_pc("slot 3")
    			_pc("page @__fasttab_allocate_page_for_table_pg00 ")
    			
    			_pc(string.format("org $%04x", _c("__fasttab_allocate_table_haddr_pg00 * 256") + (_c("__fasttab_allocate_procedure_number_pg00"))))
    								
    			_pc(string.format("defb $%02x", lua_fasttab_allocator_new_h_org_pg00))
    				
    			_pc("slot 0")
    			_pc("page @__fasttab_allocate_macro_current_slot0_pg00")
    			_pc("slot 1")
    			_pc("page @__fasttab_allocate_macro_current_slot1_pg00")	
    			_pc("slot 2")
    			_pc("page @__fasttab_allocate_macro_current_slot2_pg00")		
    			_pc("slot 3")
    			_pc("page @__fasttab_allocate_macro_current_slot3_pg00")
    			
    			_pc(string.format("org $%04x", lua_fasttab_allocator_new_h_org_pg00*256 + (_c("__fasttab_allocate_procedure_number_pg00"))))
    		end 
    		endlua
    		lua pass3	;
    		if lua_fasttab_allocator_page_finded_pg00 == 1 then
    			
    			_pc("slot 0")
    			_pc("page @__fasttab_allocate_page_for_table_pg00 ")
    			_pc("slot 1")
    			_pc("page @__fasttab_allocate_page_for_table_pg00 ")	
    			_pc("slot 2")
    			_pc("page @__fasttab_allocate_page_for_table_pg00 ")		
    			_pc("slot 3")
    			_pc("page @__fasttab_allocate_page_for_table_pg00 ")
    			
    			_pc(string.format("org $%04x", _c("__fasttab_allocate_table_haddr_pg00 * 256") + (_c("__fasttab_allocate_procedure_number_pg00"))))
    								
    			_pc(string.format("defb $%02x", lua_fasttab_allocator_new_h_org_pg00))
    			
    			_pc("slot 0")
    			_pc("page @__fasttab_allocate_macro_current_slot0_pg00")
    			_pc("slot 1")
    			_pc("page @__fasttab_allocate_macro_current_slot1_pg00")		
    			_pc("slot 2")
    			_pc("page @__fasttab_allocate_macro_current_slot2_pg00")			
    			_pc("slot 3")
    			_pc("page @__fasttab_allocate_macro_current_slot3_pg00")
    			
    			_pc(string.format("org $%04x", lua_fasttab_allocator_new_h_org_pg00*256 + (_c("__fasttab_allocate_procedure_number_pg00"))))
    		end 
    		endlua
    	endm


    в принципе если это предупреждение представляет какую либо? ценность
    и его можно будет убрать например так
    lua pass1 ;ok
    lua pass2 ;ok
    lua pass3 ;ok

    то можно будет заменить все авто заменой
    Последний раз редактировалось NEO SPECTRUMAN; 08.07.2020 в 14:09.

  11. #320

    Регистрация
    10.05.2019
    Адрес
    Prague, Czech Republic
    Сообщений
    229
    Спасибо Благодарностей отдано 
    51
    Спасибо Благодарностей получено 
    103
    Поблагодарили
    77 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    чисто на вид полученный код работает
    hmm... yeah, I guess you are very special case, when the warning is actually wrong, and your precise pass1/allpass is used as designed and correctly.
    (usually missing "allpass" with machine code emitted is just simple bug, but your code is lot more complicated case).

    I was trying to add "suppress warning" mechanics on the "endlua" area, but I failed there miserably (not so easy), so that's why the warning can't be suppressed in v1.15.1.

    I will explore your idea of suppressing it at the beginning `lua` line, that may be possible.

    meanwhile, if you have this construct in separate module, consider to switch off warnings globally by `--msg=err` level, producing only errors, or to use v1.15.0 for the moment. Sorry for the inconvenience, but I didn't think about such complex case, while the warning did help me to catch many common cases, where just add "allpass" is solution.

Страница 32 из 70 ПерваяПервая ... 282930313233343536 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. SjASMPlus Z80 кросс ассемблер
    от Aprisobal в разделе Программирование
    Ответов: 1663
    Последнее: 19.06.2021, 01:36
  2. Исходники TR-DOS для SjASMPlus
    от Keeper в разделе Программирование
    Ответов: 20
    Последнее: 11.02.2011, 11:57
  3. Запуск STS из .sna, сгенерированного sjasmplus.
    от siril в разделе Программирование
    Ответов: 7
    Последнее: 11.10.2010, 21:33
  4. Breakpoints в связке Sjasmplus+UnrealSpeccy
    от Kurles в разделе Программирование
    Ответов: 19
    Последнее: 26.01.2009, 12:36
  5. Disturbed COverMAnia ( music disk with z00m music collection)
    от kyv в разделе Музыка
    Ответов: 10
    Последнее: 27.03.2008, 10:01

Ваши права

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