diff --git a/src/system/ether.1 b/src/system/ether.1 index fa27b3fa..0a7fecc1 100644 --- a/src/system/ether.1 +++ b/src/system/ether.1 @@ -275,6 +275,10 @@ UNADNI: CPOPJ ;Call this after a DNI interrupt UNARCB: 0 ;Have we seen an RCBI interrupt? ;FIXME A flags word would make more sense (if we ever need a second flag!) +;FIXME For horrible hack below + BLOCK 2000-<.&1777> ;Align to a page boundary +UNPGHK: BLOCK 2000*%UNNPG + BBLK ;BUG INFO the UNA's registers. @@ -307,13 +311,24 @@ UNDPCB: PUSH P,A ; UNAINI: MOVEI D,%UNNPG-1 -UNAIN1: PUSHJ P,TCALL ;Allocate a page of unshuffleable low core +UNAIN1: +IFN 0,[ +;FIXME This causes the core job to crash later... + PUSHJ P,TCALL ;Allocate a page of unshuffleable low core JRST IOMQ - BUG HALT,[Couldn't allocate page for UNA] + BUG HALT,[Couldn't allocate page for DEUNA] + MOVEI B,MUETH ;Tag what it's being used for DPB B,[MUR,,MEMBLT(A)] LSH A,10. ;Save the pointer +] +IFE 0,[ + MOVEI A,2000 ;Use statically-allocated block above + IMUL A,D + ADDI A,UNPGHK +] + MOVEM A,UNPAGS(D) MOVE B,A