--- /dev/null
+
+TITLE .CORE
+
+RELOCATABLE
+
+.INSRT MUDDLE >
+
+.GLOBAL P.CORE,P.TOP,PHIBOT,PURBOT,FRETOP,SQKIL,GCFLG,KILBUF
+
+; .CORE AND .SUSET [.RMEMT,,---] FOR PAGED ENVIRONMENT
+
+P.CORE: PUSH P,0
+ PUSH P,A
+ PUSH P,B
+ PUSH P,C
+ PUSH P,D
+ PUSH P,E
+ SKIPN GCFLG
+ PUSHJ P,SQKIL
+ MOVE A,-4(P)
+ ASH A,10. ; CHECK IT
+ CAMLE A,PURBOT ; A CAML HERE IS OBSERVED TO LOSE
+ FATAL BAD ARG TO GET CORE
+ MOVE A,-4(P) ; RESTORE A
+ HRRZ B,P.TOP ; GET FIRST ADDRESS ABOVE TOP
+ ASH B,-10. ; TO BLOCKS
+ CAIG A,(B) ; SKIP IF GROWING
+ JRST P.COR1
+ SUBM B,A ; A/ -NUMBER OF BLOCKS TO GET
+ HRLI B,(A) ; AOBJN TO BLOCKS
+
+ .CALL P.CORU ; TRY
+ JRST POPBJ ; LOSE
+ MOVE A,B
+P.COR2: ASH B,10. ; TO WORDS
+ MOVEM B,P.TOP ; NEW TOP
+POPBJ1: AOS -6(P) ; SKIP RETURN ON SUCCESS
+POPBJ: POP P,E
+ POP P,D
+ POP P,C
+ POP P,B
+ POP P,A
+ POP P,0
+ POPJ P,
+
+; HERE TO CORE DOWN
+
+P.COR1: SUBM A,B
+ JUMPE B,POPBJ1 ; SUCCESS, YOU ALREADY HAVE WHAT YOU WANT
+ HRLI A,(B)
+ MOVEI B,(A)
+ .CALL P.CORD
+ JRST POPBJ
+ JRST P.COR2
+
+P.CORU: SETZ
+ SIXBIT /CORBLK/
+ 1000,,100000
+ 1000,,-1
+ B
+ 401000,,400001
+
+P.CORD: SETZ
+ SIXBIT /CORBLK/
+ 1000,,0
+ 1000,,-1
+ SETZ A
+
+
+IMPURE
+
+P.TOP==FRETOP
+
+PURE
+
+END
+\f\ 3\f\ 3
\ No newline at end of file