Comments
Loading Dream Comments...
You must be logged in to write a comment - Log In
// On fetching the opcode $A, ::ILA:: parses it as an Address. PC + 1 contains a BCD SegID (segment ID), delimited by a $D nybble. Following this are one or more Offset (i.e. subscript) fields, each separated by $D nybble delimiters. The opcode is terminated with an $E (End) nybble as usual.
// Source code bits...
void ILA::OpA(int& PC) {
int lba = this.GetNum(PC);
PC--; // Check the terminator was $D or $E
int c = this.Fetch (PC);
ASSERT(c == 0x0D || c == 0x0E);
int offset = this.GetNum(PC); // For now we only do one level of indexing (TODO: FIXIT)
// Now get the Buf from lba and offset
PageFrame* p = Valerie(lba); // (TODO: search p for the dope vector and index into it)
// Valerie is the (Singleton) instance (Blue Peter joke) of the SHE_MMU class
// More soon (lol...)