That's pretty okay to do so. I didn't really care for the datas so far, I tend more to understand how to handle them. But in fact it's much better if you know what you got there. (I had no idea about button-stuff until I saw bruceuncles labelnames...)
Means, together we are much more complete.
My strategy is now:
You now, I got the Atari-sources (for both, normal and extended version) in some special way - which is executable pretty fine.
I also made this side-by-side view to the Amiga-code (which still lacks replacement of the OS-stuff, so, not executable, but with some worthful informations).
And now I go down to the end of the file (graphics etc. there), pick a routine, check which other routine it calls, go deeper until I get one which is a basic routine calling nothing anymore, translate it so that is much better readable, bring in posteffects everywhere it gets called - and continue this way again.
Here's a quick list what you get then:
void BW_cursor_advance(IO areg& AREG0);
void BW_cursor_backstep(IO areg& AREG0);
void atari_putpixel(i16 x, i16 y, i8 color);
bool BW_xy_to_offset(OO i16& offset, i16 x, i16 y, OO i16& helper);
void BW_blit_vertical_line(i16 x, i16 y, i16 height, i8 color, OO areg& AREG0, OO dreg& DREG7, OO dreg& DREG6, OO dreg& DREG1, OO dreg& DREG0);
void BW_blit_horizontal_line(i16 x, i16 y, i16 width, i16 color, OO areg& AREG1, OO areg& AREG0, ippO dreg& DREG6, OO dreg& DREG2, OO dreg& DREG1, OO dreg& DREG0);
void BW_draw_frame(i16 x, i16 y, i16 width, i16 height, i16 color, OO areg& AREG1, OO areg& AREG0, OO dreg& DREG7, OO dreg& DREG6, OO dreg& DREG1, OO dreg& DREG0);
void BW_cs_draw_frame(i16 x, i16 y, i16 width, i16 height, i16 color, i16 length2, OO dreg& DREG6, OO dreg& DREG1, OO dreg& DREG0);
void BW_draw_bar(i16 x, i16 y, i16 width, i16 height, i16 color, OO areg& AREG1, OO areg& AREG0, ippO dreg& DREG6, OO dreg& DREG2, OO dreg& DREG1, OO dreg& DREG0);
void BW_blitchar(i16 step, i8 character, IO areg& destadr, OO areg& AREG2, OO areg& AREG1, OO dreg& DREG4, OO dreg& DREG3, OO dreg& DREG2, OO dreg& DREG1, OO dreg& DREG0);
void BW_print_nchars(i16 n, IO i16& length, IN areg textadr, IO areg& screenadr, OO areg& AREG2, OO areg& AREG1, OO dreg& DREG4, OO dreg& DREG3, OO dreg& DREG2, OO dreg& DREG1, iO dreg& DREG0);
void BW_proceed_in_stringtable(i16 n, IO areg& table, OO i8& len);
void BW_copy_from_stringtable(i16 n, IN areg table, IO areg& dest);
void BW_mirror_pixelblock(IO dreg& DREG0, const areg AREG6, OO dreg& DREG2);
void BW_mirror_009(IO dreg& DREG0, OO areg& AREG6, OO dreg& DREG2);
void BW_table_coloring_sub(const areg AREG6, i16 idx, i16 mask_lo, i16 mask_hi, IO c_pixelblock& pixelblock);
void BW_table_coloring(const areg AREG6, IO c_pixelblock& block1);
void BW_gfx_01(i16 par, const areg AREG6, IO areg& AREG0, ui16 dctrl, IO dreg& DREG0, IO dreg& DREG1, OO dreg& DREG2, OO dreg& DREG3);
void BW_gfx_02(const areg AREG6, OO areg& AREG2, IO areg& AREG1, IO areg& AREG0, iO dreg& DREG7, iO dreg& DREG6, OO dreg& DREG5, i8 shift, OO dreg& DREG3, iO dreg& DREG2, OO dreg& DREG1, OO dreg& DREG0);
void BW_draw_woundflash(OO areg& AREG2, OO areg& AREG1, OO areg& AREG0, OO dreg& DREG7, OO dreg& DREG6, IN dreg DREG5, IN dreg DREG4, OO dreg& DREG3, OO dreg& DREG2, iO dreg& DREG0);
those are the function prototypes - a lot of parameters are solved, but often results of registers are given back, when you don't know if they will be used later. So far they stay alive, but may vanish later. This stuff is 'alive' as long as there are variables with no real name. Right now the last remaining in the file is this one that brings the (temporary) messages to the top in the screen. But there are still some to solve before.
I expect this plan to bring fast results once the base is done.
Interesting side effects: also those listed routines have no differences (except data offsets ofc) for both versions!
Still I know - this will change