здесь нет ошибки компилятора
здесь есть ошибка программиста
а вот вторая ошибка программистаЦитата:
error: [JR] Target out of range (131)
если интересно поясню где именно ошибкаКод:LDI ; #9
LDI
DEC E
DEC E
INC D
Вид для печати
Не, ну там на один байт можно сделать короче и быстрее (сохранить в A, в B или в C регистре содержимое E, а затем после каждой пары LDI оттуда восстанавливать, а не делать два декремента). Но чтоб ошибка?.. Судя по коду там запись двух байт спрайта по горизонтале, а затем переход на строку ниже по вертикале. Проблемы будут если выводить в последний байт по горизонтале.
Да, позор моим седым власам с "багом в SDCC", просто мессаг сбил с толку.
Насчёт DEC E уже понял, исправил на DEC DE.
Да, запамятовал. Но если очень надо, то можно таки использовать B, если в C записать 255 и число исполнений LDI после этого не превышает этого значения.
Обязательно применю IM 1, Алекс.
Само собой. Значит i = #3f нужно именно софтам, а если я в игре из IM 2 перейду в IM 1, а потом снова назад, то можно i не трогать?
Это SDCC'шный асм. В нём # обязательный символ перед литералом, но не всяким. Например, JP 0 или .DB 0 можно без него. Да, это десятичное число было.
---------- Post added at 13:40 ---------- Previous post was at 13:36 ----------
Наверное дёргать регистры не имеет смысла - LDI портит и D, и E. А смысл есть попробовать LDI: DEC E: DEC DE, всё-таки пару тактов выиграем.
---------- Post added at 13:45 ---------- Previous post was at 13:40 ----------
Нет, просто я где-то читал, что для ZX режимы IM 0 и IM 1 абсолютно не имеют отличий. Но если они таки есть, вам, железячникам виднее.
Планируются Java ME, SDL (Win32/64, Linux), Win32/64, возможно, MSX, DOS и Android (методом NDK на SDL 2 и SDK - под dalvik). jerri штампует игры, которые бесполезны для переноса на другие платформы, я же делаю долго, но зато таким способом игры до меня никто не делал - я первопроходец.
было
должно бытьКод:;de= #40fe
ldi ;de= #40ff
ldi ;de= #4100
dec e ;
dec e ;de= #41fe
inc d ;de= #42fe
Код:ldi
ld a,(hl)
ld (de),a
inc hl
dec de
inc d
слышь, первопроходец, про кампанию OPERAsoft слышал хоть раз?Цитата:
jerri штампует игры, которые бесполезны для переноса на другие платформы, я же делаю долго, но зато таким способом игры до меня никто не делал - я первопроходец.
Вспоминается Goody, Livingstone (supongo), не?
Рекомендацию заменить ldi на ld a,(hl): ld (de),a с благодарностью принимаю.
Я вообще сделал два варианта вывода тайлов - компактный и быстрый, который заточен не проверять переходы на другую треть экрана.
А вот с цветностью будут проблемы, jerri. Я согласен, цветная игра красивше. Но тут либо переходить на тайлы 16x16, теряя одноэкранность без рулонной прокрутки, либо оставить монохромность. Или заюзать мультиколорный движок типа Nirvana, но это чревато своими проблемами, так что, пожалуй, оставим монохром.
Угу, так а где посмотреть можно? Goody был же не только для Z80-based, он и для DOS'а был.
А я-то уже хотел спросить, юзали ли в OPERAsoft язык Оберон ;) Натурально, jerri, мало ли что где было, главное - что открыто пощупать мона.