Ок, перепроверю 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
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Возьми обновленный исходник 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 тут
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)