Fix page movement

master
Jonas Franz 4 years ago
parent dab9158ea5
commit e8579dbdb0
Signed by: JonasFranzDEV
GPG Key ID: 7293A220B7C38080
  1. 12
      hal/paging.go

@ -112,7 +112,8 @@ func (mmu *MMU) Load(page *Page) {
// Everything is referenced, we need to remove one
if len(mmu.LoadedPages) == 4 {
mmu.LoadedPages = mmu.LoadedPages[:2]
mmu.movePageToDrive(mmu.LoadedPages[3])
mmu.LoadedPages = mmu.LoadedPages[:3]
}
}
@ -124,12 +125,17 @@ func (mmu *MMU) Load(page *Page) {
func (mmu *MMU) findEmptyRegisterAddress() *uint16 {
var i uint16
for i = 0; i < uint16(len(mmu.module.register)/PageSize); i++ {
var isTaken bool
for _, loadedPage := range mmu.LoadedPages {
if *loadedPage.RegisterAddress == i {
continue
isTaken = true
break
}
return &i
}
if isTaken {
continue
}
return &i
}
return &defaultRegister

Loading…
Cancel
Save