а я вот еще что нашел - MOVEM.W - тоже знакорасширяемая.
и я тут начал ром сначала изучать и смотрим:
ROM:00000294 movem.l (a6),d0-a6 ; видимо решили очистить региcтры?
но можно было очистить через movem.w .
некоторые вопросы вызывает это:
ROM:0000023E loc_0_23E: ; CODE XREF: RESET+24j
ROM:0000023E move.w (a4),d0
ROM:00000240 moveq #0,d0
в чем смысл неясно?? (a4= вдп_контроль)
потом move.l #'SEGA',$2F00(a1) ; код безопасности сеги который записывается если версия неправильная? вот что за версия - железа? что будет если его записывать если правильная и не записывать если неправильная (т.е. наооборот).
далее:
moveq #0,d0
movea.l d0,a6
move a6,usp , user stack pointer - что это такое , зачем он нужен еще 1 стак поитер? и в него тут 0 пишут ?
дальше: команды для VDP (инициализация)
ROM:000002B8 dc.b 4 ; 8004
ROM:000002B9 dc.b $14 ; 8114
ROM:000002BA dc.b $30 ; 8230
ROM:000002BB dc.b $3C ; 833c
ROM:000002BC dc.b 7 ; 8407
и т.д.
вот есть у кого список всех (или большинства команд?) только не в битах как в мануале.
и эта шаблонка (reset+data для регистров) она у всех одинаковая (её сега чтоли выдывала всем?), и зачем её так запутали? (везде циклы, всё от-но берется и т.д.) - то есть это просто им захотелось сильно сэкономить место или от пиратов(чтобы ломали дольше)?
можно ж было просто напихать move.w $8004,(a4) и т.д.
Добавлено позже:
p.s. чтобы в asm68k.exe схавал надо писать move.l a6,usp (а не move).
в comix zone тут дизасмил увидел используют во многих местах trap (trap #1) - в других играх не видел (надо бы побольше проверимть) .
и ворды после нее потом к какому-то адресу прибавляются.
ещё интересно что графику Cкеча сжали?я не нашел (и куда распаковывается в RAM или каждый раз??- но не тормозит?)
ROM:001DBFFE loc_0_1DBFFE: ; CODE XREF: ROM:loc_0_1DBE88p
ROM:001DBFFE trap #1
ROM:001DBFFE ; ---------------------------------------------------------------------------
ROM:001DC000 dc.w $AF6A
ROM:001DC002 ; ---------------------------------------------------------------------------
ROM:001DC002 moveq #$1B,d0
ROM:001DC004 jsr loc_0_2E46
ROM:001DC008 rts
вот она:
ROM:001CE58A global TRAP1
ROM:001CE58A TRAP1:
ROM:001CE58A move.l a5,-(sp)
ROM:001CE58C movea.l 6(sp),a5
ROM:001CE590 movea.w (a5)+,a5
ROM:001CE592 adda.l #word_0_138E0E,a5
ROM:001CE598 move.l a5,$30(a0)
ROM:001CE59C move.w #1,$34(a0)
ROM:001CE5A2 andi.w #unk_0_FFFFFBF7,$A(a0)
ROM:001CE5A8 clr.w $2A(a0)
ROM:001CE5AC move.w #8,$3A(a0)
ROM:001CE5B2 addq.l #2,6(sp)
ROM:001CE5B6 movea.l (sp)+,a5
ROM:001CE5B8 rte
еще вопрос по z80 что-туда записывают вначале в его RAM (из этой же шаблонки), ведь писали что он в перезагрузке должен быть при включении??
и он не с 0 своей RAM читает а с "C"?? ( у меня в эмуляторе так показывает, да и тут видно что-то нето начинает с XOR, так что там
за цифры внаале?
ROM:0000 xor a
ROM:0001 ld bc, 1FD9h
ROM:0004 ld de, 27h
ROM:0007 ld hl, 26h ; '&'
ROM:000A ld sp, hl
ROM:000B ld (hl), a
ROM:000C ldir
ROM:000E pop ix
ROM:0010 pop iy
ROM:0012 ld i, a
ROM:0014 ld r, a
ROM:0016 pop de
ROM:0017 pop hl
ROM:0018 pop af
ROM:0019 ex af, af'
ROM:001A exx
ROM:001B pop bc
ROM:001C pop de
ROM:001D pop hl
ROM:001E pop af
ROM:001F ld sp, hl
ROM:0020 di
ROM:0021 im 1
ROM:0023 ld (hl), 0E9h
ROM:0025 jp (hl)