: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];