JSR $4EB8xxxx -- это обычный джамп, где ХХХХ это 2-х байтовый адрес. Прыгать можно от 0 до $FFFF. Редко используется.
4eb8 - насколько я помню до $8000 - это прыжок в ROM, а после в RAM.
4eb8 это jsr (xxxx).w - переход на абсолютный 16-ти битный адрес (не относительный, т.е. без знака)
Так я тут тесты провёл вообщем получается что адрес 16 битный, но он знаковый, поэтому прав evgeny.
То есть адрес move.b d0,($1234).w это тоже самое что ($00001234).l
Но если адрес move.b d0,($8900).w \
move.b d0,($FFFF8900).w / это = ($FFFF8900).l
hex code -11C0 8900 (FFFF тут нету). то есть вычитывается из нуля и получается FFFF.
То есть адрес меняется целиком, хоть и 2байта.
Тоже самое все же знают команду moveq ? она в мануале называется 8битной. (move 8-bit immediate), но при этом меняются все 4байта регистра. (т.е. либо 000000xx , либо ffffffxx)
И разрабы многих игр как раз использовали 16битную, получая халявный доступ к RAM , начиная с
$FF8000, то есть 'читерили', потому что другие разрабы этого не знали(то есть не во всех играх есть.) (и поэтому в loader'e HardwareMan'а два сегмента ram создает)
Но при этом им прихидолись в область FF0000-FF8000 залезать по 32битной адресации.
но в RRR поступили умнее - там просто закинули в a4=FF8000 ( и получили доступ ко всей памяти, 16-битный, т.е. от -8000 до +8000 от-но (a4) , но это уже от-ная адресация).
Но, я тут по-другому вопросу вообщем, как загонять ram в исходник? т.е. создать рам + c00000+a00000 (чтобы получить доступ к меткам "lea VDP " и т.д.). Или как это надо делать? (просто как задать меткам адрес?)
Я пока не пробовал, ну чтобы файл не вырос до 16мегабайт, т.е. если писать "ds.b" как в IDA? (или в компиляторе обрезать как-то размер?)