| get address(){return this.__addr;} | get address(){return this.__addr;} | ||||
| set address(a){ | set address(a){ | ||||
| if (a >= 0 && a < this.size){ | |||||
| this.__addr = a; | |||||
| let offset = 0; | |||||
| for (let s=0; s < this.__switches.length; s++){ | |||||
| if (a >= offset && a < offset + this.__switches[s].mem.size){ | |||||
| this.__sidx = s; | |||||
| this.__switches[s].mem.address = a - offset; | |||||
| break; | |||||
| } else { | |||||
| offset += this.__switches[s].mem.size; | |||||
| } | |||||
| this.__addr = Math.min(this.size - 1, Math.max(0, a)); | |||||
| let offset = 0; | |||||
| for (let s=0; s < this.__switches.length; s++){ | |||||
| if (this.__addr >= offset && this.__addr < offset + this.__switches[s].mem.size){ | |||||
| this.__sidx = s; | |||||
| this.__switches[s].mem.address = this.__addr - offset; | |||||
| break; | |||||
| } else { | |||||
| offset += this.__switches[s].mem.size; | |||||
| } | } | ||||
| } | } | ||||
| } | } |