No neat reference sorry, only old snippets from BCPL and TripOS sources (and memory..).
(you can probably find information online)
About this code:
Code:
movea.l (356,a2), a4 ; 28 6A 01 64 = moveal %a2@(356),%a4 Moves a value into A4
moveq #12, d0 ; 70 0C = moveq #12,%d0 Moves the low byte from SEAOW into a D-reg
jsr (a5) ; 4E 95 = jsr %a5@ JumpSubroutine to A5 (what's in A5?)
It extract from BCPL Global Vector the ptr to a Function and insert it in "entry address" register.
Then set d0 to a 'minimal' BCPL stack displacement (I seem to remember a lower value than that is not possible).
Then it calls service routine (execute the Function).
No parameters required (d1~d4 not set).
About what the Function is: I think this too can be found somewhere on old dos.library re-sourced code.
--
Yes, Amiga exe starts from the first instruction of the first hunk.