:TITLE[AltoOccupied];

* Modification of MicOverlayOccupied.mc July 6, 1982 1:37 PM

*Reserve locations on pages shared between Alto and Lisp so that
*Lisp will not overwrite the main program unintentionally.

*Allow only unused TimerTable entries and locations reserved in Timer.Mc to
*be used by MicOverlay.
Set[TTOffset,And[TimerTable,377]];
Set[TTEnd,Add[TTOffset,22]];
IMReserve[TimerPage,0,TTOffset];
*Locations before TimerTable
IMReserve[TimerPage,TTOffset,1];
*Refresh timer
:IF[With10MB]; ***************************************
IMReserve[TimerPage,Add[TTOffset,Xor[enxTask,17]],1];*10mb Ethernet output timer
:ENDIF; **********************************************
:IF[With3MB]; ***************************************
IMReserve[TimerPage,Add[TTOffset,Xor[eoTask,17]],1];*Ethernet output timer
:ENDIF; **********************************************
IMReserve[TimerPage,TTEnd,Sub[400,TTEnd]];*Locations after TimerTable+21

*IMReserve[15,0,253];
*space for AMesa
*IMReserve[15,364,1];
*For DOInt in Initialize.Mc

:IF[WithMidas]; *****************************
* this is KernelOccupied.mc

*IMReserve[16,1,14];
*No Kernel timer task reserve needed since
*AMesa timer task is now running in its place.

IMReserve[16,1,14];
*Only these are needed after Kernel is running

*Locations reserved on page 17B
IMReserve[17,0,1];
*7400 not needed after init
IMReserve[17,3,1];
*7403 not needed after init
IMReserve[17,1,2];
IMReserve[17,4,74];
IMReserve[17,120,1];
IMReserve[17,100,20];
*space for Midas overlays (7500-7517)
:ENDIF; *************************************

:IF[And[With10MB, With3MB]];
IMreserve[eePage, 0, 222];
* reserve space for 3mb ether
:ENDIF;

*IFE[DoIntLoc,Add[LShift[15,10],364],,ER[Fixup.needed.for.DoIntLoc]];

:END[MicOverlayOccupied];