public static Stella_Object accessStorageSlotSlotValue(StorageSlot self, Symbol slotname, Stella_Object value, boolean setvalueP) {
    if (slotname == Stella.SYM_STELLA_SLOT_ALLOCATION) {
      if (setvalueP) {
        KeyValueList.setDynamicSlotValue(self.dynamicSlots, Stella.SYM_STELLA_SLOT_ALLOCATION, ((Keyword)(value)), null);
      }
      else {
        value = self.slotAllocation();
      }
    }
    else if (slotname == Stella.SYM_STELLA_SLOT_GUARD_DEMONS) {
      if (setvalueP) {
        KeyValueList.setDynamicSlotValue(self.dynamicSlots, Stella.SYM_STELLA_SLOT_GUARD_DEMONS, ((List)(value)), null);
      }
      else {
        value = self.slotGuardDemons();
      }
    }
    else if (slotname == Stella.SYM_STELLA_SLOT_DEMONS) {
      if (setvalueP) {
        KeyValueList.setDynamicSlotValue(self.dynamicSlots, Stella.SYM_STELLA_SLOT_DEMONS, ((List)(value)), null);
      }
      else {
        value = self.slotDemons();
      }
    }
    else if (slotname == Stella.SYM_STELLA_SLOT_REQUIREDp) {
      if (setvalueP) {
        self.slotRequiredP = BooleanWrapper.coerceWrappedBooleanToBoolean(((BooleanWrapper)(value)));
      }
      else {
        value = (self.slotRequiredP ? Stella.TRUE_WRAPPER : Stella.FALSE_WRAPPER);
      }
    }
    else if (slotname == Stella.SYM_STELLA_SLOT_COMPONENTp) {
      if (setvalueP) {
        self.slotComponentP = BooleanWrapper.coerceWrappedBooleanToBoolean(((BooleanWrapper)(value)));
      }
      else {
        value = (self.slotComponentP ? Stella.TRUE_WRAPPER : Stella.FALSE_WRAPPER);
      }
    }
    else if (slotname == Stella.SYM_STELLA_SLOT_READ_ONLYp) {
      if (setvalueP) {
        self.slotReadOnlyP = BooleanWrapper.coerceWrappedBooleanToBoolean(((BooleanWrapper)(value)));
      }
      else {
        value = (self.slotReadOnlyP ? Stella.TRUE_WRAPPER : Stella.FALSE_WRAPPER);
      }
    }
    else if (slotname == Stella.SYM_STELLA_SLOT_HARDWIREDp) {
      if (setvalueP) {
        self.slotHardwiredP = BooleanWrapper.coerceWrappedBooleanToBoolean(((BooleanWrapper)(value)));
      }
      else {
        value = (self.slotHardwiredP ? Stella.TRUE_WRAPPER : Stella.FALSE_WRAPPER);
      }
    }
    else if (slotname == Stella.SYM_STELLA_SLOT_CONTEXT_SENSITIVEp) {
      if (setvalueP) {
        self.slotContextSensitiveP = BooleanWrapper.coerceWrappedBooleanToBoolean(((BooleanWrapper)(value)));
      }
      else {
        value = (self.slotContextSensitiveP ? Stella.TRUE_WRAPPER : Stella.FALSE_WRAPPER);
      }
    }
    else {
      if (setvalueP) {
        KeyValueList.setDynamicSlotValue(self.dynamicSlots, slotname, value, null);
      }
      else {
        value = self.dynamicSlots.lookup(slotname);
      }
    }
    return (value);
  }