директива IFUSED ужясма

Аватара пользователя
shiny
Сообщения: 9834
Зарегистрирован: 22 дек 2016, 00:00
Откуда: в Шуе бал

директива IFUSED ужясма

Сообщение shiny »

Короче, код такой:

Код: Выделить всё

    device zxspectrum128
        ORG #6000
begin

end
    page 0
    org $C000
page0b:
 db "Dzhigurda",0
page0e:

    display /d,end-begin
    savesna "!void.sna",begin
    IFUSED page0b
    display page0b
    ELSE
    display "no page 0"
    ENDIF
Версия 1.07 RC7, при компеляции выдает no page 0. Хотя по идее, должно казать адрес.
чо за фигня?
Ненависть- это подарок
Аватара пользователя
krt17
Сообщения: 394
Зарегистрирован: 17 апр 2018, 23:45

Сообщение krt17 »

дак ты ее и не юзед
Аватара пользователя
shiny
Сообщения: 9834
Зарегистрирован: 22 дек 2016, 00:00
Откуда: в Шуе бал

Сообщение shiny »

ну да, конечно

Код: Выделить всё

    device zxspectrum128
        ORG #6000
begin
;border
 MACRO brd n
    ld a,n
    out ($FE),a
 ENDM
;liney
;atrxy
    jr $
    call nbde

    IFUSED nbde
nbde    INC D:LD A,D:AND 7:RET NZ
        LD A,E:ADD A,#20:LD E,A:RET C
        LD A,D:SUB 8:LD D,A:RET
    ENDIF

    IFUSED nbhl
nbhl    INC h:LD A,h:AND 7:RET NZ
        LD A,L:ADD A,#20:LD L,A:RET C
        LD A,H:SUB 8:LD H,A:RET
    ENDIF

end
    display /d,end-begin
    savesna "!void.sna",begin


Ненависть- это подарок
Аватара пользователя
krt17
Сообщения: 394
Зарегистрирован: 17 апр 2018, 23:45

Сообщение krt17 »

Нипонел, ты разобрался?
Аватара пользователя
shiny
Сообщения: 9834
Зарегистрирован: 22 дек 2016, 00:00
Откуда: в Шуе бал

Сообщение shiny »

нед(
Ненависть- это подарок
Аватара пользователя
krt17
Сообщения: 394
Зарегистрирован: 17 апр 2018, 23:45

Сообщение krt17 »

Изображение

Все заебись с твоим кодом
Аватара пользователя
krt17
Сообщения: 394
Зарегистрирован: 17 апр 2018, 23:45

Сообщение krt17 »

Если обьявлена это хуйня, надо к ней обратиться как во втором примере. А так все работало всегда
Аватара пользователя
shiny
Сообщения: 9834
Зарегистрирован: 22 дек 2016, 00:00
Откуда: в Шуе бал

Сообщение shiny »

Ну да, меня это и смутило - пример с nbde работает, а с page0 нет.
смысл в том, чтобы влегкую написать загрузчик. т.е., если объявлены page0,page1,page3,page4, то использовать директивы IFUSED и при загрузке и при создании TRD
Ненависть- это подарок
Аватара пользователя
krt17
Сообщения: 394
Зарегистрирован: 17 апр 2018, 23:45

Сообщение krt17 »

сделай display c ними тогда сработает, наверное ну или какую другую неважную хрень
А вообще такие штуки define делаются, посмотри мож тебе удобнее будет
Аватара пользователя
shiny
Сообщения: 9834
Зарегистрирован: 22 дек 2016, 00:00
Откуда: в Шуе бал

Сообщение shiny »

Кулибины, блядь - пилят ужасм до посинения.

huj equ page0b

теперь работает. Спасибо за подсказку
Ненависть- это подарок
Аватара пользователя
shiny
Сообщения: 9834
Зарегистрирован: 22 дек 2016, 00:00
Откуда: в Шуе бал

Сообщение shiny »

а хер там. если page0b не задана, то не катит.
Ненависть- это подарок
Аватара пользователя
shiny
Сообщения: 9834
Зарегистрирован: 22 дек 2016, 00:00
Откуда: в Шуе бал

Сообщение shiny »

Код: Выделить всё

    device zxspectrum128
        ORG #6000
begin
    jr $
    ld a,$10,bc,$7ffd:out (c),a
    ld hl,$C000
end
    page 0
    org $C000
page0b:
 db "Dzhigurda",0
page0e:

    LUA
    if sj.get_label("page0b")~=-1 then
    sj.insert_label("nop0", 1)
    else
    sj.insert_label("nop0", 0)
    end
    ENDLUA

;    display nop0
    savesna "!void.sna",begin

    IF nop0==1
    display "p0 OK"
    ELSE
    display "no page 0"
    ENDIF
    

Ненависть- это подарок
Аватара пользователя
krt17
Сообщения: 394
Зарегистрирован: 17 апр 2018, 23:45

Сообщение krt17 »

Код: Выделить всё

    device zxspectrum128
    ORG #6000
begin
    jr  $
    define page0b
;----------------------
    ifdef page0b
    display "win"
    else
    display "failed"
    endif
;----------------------
    savesna "!void.sna",begin
так православно
Аватара пользователя
shiny
Сообщения: 9834
Зарегистрирован: 22 дек 2016, 00:00
Откуда: в Шуе бал

Сообщение shiny »

это глупо. page0b задана для страницы. Похоже, что удобнее использовать DEFINE.
Но, бля, критерий IFUSED ебанутый, если я правильно понял.
Ненависть- это подарок
Аватара пользователя
krt17
Сообщения: 394
Зарегистрирован: 17 апр 2018, 23:45

Сообщение krt17 »

не, ифузед заябись, просто не для этого, у тебя второй пример прям каноничный
Аватара пользователя
shiny
Сообщения: 9834
Зарегистрирован: 22 дек 2016, 00:00
Откуда: в Шуе бал

Сообщение shiny »

только с документаций не совпадает. IFUSED прринимает значение true, если к метке было обращение - CALL или LD A,()

неправильно это.
Ненависть- это подарок
Аватара пользователя
krt17
Сообщения: 394
Зарегистрирован: 17 апр 2018, 23:45

Сообщение krt17 »

Код: Выделить всё

    device zxspectrum128
    ORG #6000
begin
    jr  $
hui equ wtf
;----------------------
    ifused wtf
wtf equ 1
    display "win"
    else
    display "failed"
    endif
;----------------------
    savesna "!void.sna",begin
суяли, все работает и так
Аватара пользователя
shiny
Сообщения: 9834
Зарегистрирован: 22 дек 2016, 00:00
Откуда: в Шуе бал

Сообщение shiny »

если page0b не задано, то компеляция валится.
Ненависть- это подарок
Аватара пользователя
krt17
Сообщения: 394
Зарегистрирован: 17 апр 2018, 23:45

Сообщение krt17 »

Ясное дело, яж говорю, оно не совсем для этого. Но то что должно делать делает правильно
Аватара пользователя
shiny
Сообщения: 9834
Зарегистрирован: 22 дек 2016, 00:00
Откуда: в Шуе бал

Сообщение shiny »

Ага, теперь понел. Все же с DEFINE работает:

Код: Выделить всё

    page 0
    org $C000
page0b:
 DEFINE pg0
f0: incbin "page0\0.bin.zx7"
f1: incbin "page0\1.bin.zx7"
page0e:

...

 IFDEF pg0
 di
 ld de,(#5CF4)
 ld hl, #C000
 sectors page0b,page0e
 call #3d13
 ENDIF

Ненависть- это подарок
Аватара пользователя
shiny
Сообщения: 9834
Зарегистрирован: 22 дек 2016, 00:00
Откуда: в Шуе бал

Сообщение shiny »

новый ужасм
http://www.pouet.net/prod.php?which=88704

по тесту пофиксили эту директиву
Ненависть- это подарок
Аватара пользователя
krt17
Сообщения: 394
Зарегистрирован: 17 апр 2018, 23:45

Сообщение krt17 »

Шыншыл писал(а):по тесту
какому тесту? в ней и так все работало
Аватара пользователя
krt17
Сообщения: 394
Зарегистрирован: 17 апр 2018, 23:45

Сообщение krt17 »

смотрю чейжлоги тут https://github.com/z00m128/sjasmplus/releases последний год не было никаких фиксов
Аватара пользователя
shiny
Сообщения: 9834
Зарегистрирован: 22 дек 2016, 00:00
Откуда: в Шуе бал

Сообщение shiny »

Код: Выделить всё

    device zxspectrum128
        ORG #6000
begin
    jr $
    ld a,"0"
    rst 16
    ld hl,bla
    IFUSED bla
;    ld a,-1
    display "bla"
    ENDIF
    jr $
bla:
end
    display /d,end-begin
    savesna "!void.sna",begin
Ненависть- это подарок
Аватара пользователя
krt17
Сообщения: 394
Зарегистрирован: 17 апр 2018, 23:45

Сообщение krt17 »

И чё? Нихуа не изменилось, работает как раньше.
Аватара пользователя
krt17
Сообщения: 394
Зарегистрирован: 17 апр 2018, 23:45

Сообщение krt17 »

Добавили exist это да, раньше это только дефайнами делалось, но так себе костыль, имхо не нужный.
Аватара пользователя
shiny
Сообщения: 9834
Зарегистрирован: 22 дек 2016, 00:00
Откуда: в Шуе бал

Сообщение shiny »

krt17 87115 писал(а):И чё? Нихуа не изменилось, работает как раньше.
работает по-другому. в прежней версии директива работала при использовании call r1 или ld a,(a1). Здесь, похоже, работает при определении метки.
Ненависть- это подарок
Аватара пользователя
krt17
Сообщения: 394
Зарегистрирован: 17 апр 2018, 23:45

Сообщение krt17 »

А зачем тогда ты пример с использованием показал?
Аватара пользователя
krt17
Сообщения: 394
Зарегистрирован: 17 апр 2018, 23:45

Сообщение krt17 »

И не должна при определении работать, если работает то это косяк
Аватара пользователя
shiny
Сообщения: 9834
Зарегистрирован: 22 дек 2016, 00:00
Откуда: в Шуе бал

Сообщение shiny »

почему косяк то?
Ненависть- это подарок
Ответить