Ok, TI-30 is alive here, but with bugs due to incomplete emulation I assume (microinstructions like SSS and CME). I'm also not sure if page decoding is correct yet. Row decoding should be right though. It's the same as on TMS1000.
That big lookuptable is basically a translation of the 1-of-32 selector, right?
On TMS0980, the 1-of-64 selector is sequential (0,1,2,3,4,...), so decoding it is not as complex.
Code
int lut1[2]={0,3};
int lut2[2]={1,2};
for (page=0;page<16;page++)
{
for (pc=0;pc<128;pc++)
{
for (bit=8;bit>=0;bit--)
{
int myrow=pc;
if (myrow<64) myrow=(myrow&0x3e)*2 +lut1[myrow&1];
else myrow=(myrow&0x3e)*2 +lut2[myrow&1];
int mypage=page; // TODO/verify
mypos=myrow*144+bit*16+mypage;
mybit=in_raw[mypos/8]>>(mypos&7)&1;
outpos=page*128+pc;
out_dump[outpos]=out_dump[outpos]*2+mybit;
}
}
}