Design a subroutine in 68000 assembly language, to be called READ_DATA,
that retrieves the three data fields in a packed list of 11-bit-long records.
Each record contains (going from the most significant bit to the least
significant bit position) one 4-bit field, one 5-bit field, and one 2-bit field.
The records are packed together, without leaving any unused bits, starting at a
particular base address in memory.
The records are numbered in increasing order, starting with zero.
The packed list has a limited size, so there is a maximum allowed record number.
Your subrountine is to accept two input parameters: the base address of the list
in A0.L and the record number in D0.W.
The three record fields are to be returned in D1.B, D2.B and D3.B.
Register D7.B is to be zero if the record was access successfully; otherwise,
it is to contain the value one.
Your routine is to calculate byte addresses, instead of doing a linear
search through the packed list.