Ок, перепроверю Z.
- - - Добавлено - - -
Тут лежит исходник ZX Like Pascal, в нем, кажется, обновленный Z, где не нужно ничего колдовать: http://zx-pk.ru/threads/54-podderzhi...l=1#post810433
Вид для печати
Ок, перепроверю Z.
- - - Добавлено - - -
Тут лежит исходник ZX Like Pascal, в нем, кажется, обновленный Z, где не нужно ничего колдовать: http://zx-pk.ru/threads/54-podderzhi...l=1#post810433
Возьми обновленный исходник Z тут в исходниках ZX Like Pascal, он должен без проблем запускаться.
Задам вопрос в этой теме.
Меня в demo_z.prg смущает этот код:
При запуске y_map_scr=3, y_max_obj=5.Код:if y_put>(y_map_scr-y_max_obj)
then y_min_lim:=y_map_scr-y_max_obj
else y_min_lim:=1;
Результат вычитания в скобках отрицательный, результат сравнения будет true и в переменную y_min_lim, которая типа byte, запишется "отрицательное" число 254.
А дальше сравнение
которое даст false и вывод спрайта не произойдёт.Код:... and (y_put>=y_min_lim) and ...
Объясни, пожалуйста, как это работает в твоём компиляторе.
Ну насколько я помню, в TurboPascal, если тип переменных в выражениях byte или word, тоже нет отрицательных чисел, а проворачивается. Например, 5-6=255, насколько помню :)
А ты можешь тогда ввести функцию abs:
Код:if y_put>abs(y_map_scr-y_max_obj)
then y_min_lim:=y_map_scr-y_max_obj
else y_min_lim:=1;
для справочки: как HitechC обходится:
Код:main()
{
int xm=-127;
int ym=96;
if (xm>ym) xm=-xm;
}
RAM:80F7 ld (ix+0FEh), 81h ; 'Á'
RAM:80FB ld (ix+0FFh), 0FFh
RAM:80FF ld (ix+0FCh), 60h ; '`'
RAM:8103 ld (ix+0FDh), 0
RAM:8107 ld e, (ix+0FEh)
RAM:810A ld d, (ix+0FFh)
RAM:810D ld l, (ix+0FCh)
RAM:8110 ld h, (ix+0FDh)
RAM:8113 call sub_813D ; if (xm>ym) xm=-xm;
RAM:8116 jp p, loc_812B
RAM:8119 ld e, (ix+0FEh) ; xm=-xm
RAM:811C ld d, (ix+0FFh)
RAM:811F ld hl, 0
RAM:8122 or a
RAM:8123 sbc hl, de
RAM:8125 ld (ix+0FEh), l
RAM:8128 ld (ix+0FFh), h
RAM:812B
RAM:812B loc_812B: ; CODE XREF: sub_80F4+22j
;
RAM:813D sub_813D: ; CODE XREF: sub_80F4+1Fp
RAM:813D ld a, h
RAM:813E xor d
RAM:813F jp m, loc_8145
RAM:8142 sbc hl, de
RAM:8144 ret
RAM:8145 ; ---------------------------------------------------------------------------
RAM:8145
RAM:8145 loc_8145: ; CODE XREF: sub_813D+2j
RAM:8145 ld a, h
RAM:8146 and 80h ; 'À'
RAM:8148 sbc hl, de
RAM:814A inc a
RAM:814B ret
Свежий исходник демо игры Z на ZX Like Pascal тут