Prevent MIDAS from splitting two-word directives across blocks.
[pdp10-muddle.git] / <mdl.int> / midas.323
index ce24ab32184e848b18944dde051ca62ff09428bf..100c15e6a6414d2a21945665f386bbfa826c6fcc 100644 (file)
@@ -2997,6 +2997,7 @@ OUTDE1:   TLNE FF,FLPPSS
 ;I.E. TELL LOADER THAT SQUOZE IN SYM, FORMERLY CONSIDERED LOCAL, IS REALLY GLOBAL
 PLOGLO:        SKIPGE CONTRL
         RET
+       PUSHJ P,MKROOM
        PUSH P,A
        PUSHJ P,PBITS7
        MOVEI A,CLGLO
@@ -4890,6 +4891,14 @@ PBITS:   SKIPGE CONTRL
        TROA FF,FRBIT7
        TRZ FF,FRBIT7
        IDPB A,BITP
+       POPJ P,
+
+               ;Call when you're about to output two words into a block.
+MKROOM:        PUSH P,A
+       MOVE A,OPT1
+       CAIL A,BSIZE+BKBUF-1    ;Space for more than one word?
+        PUSHJ P,EBLK           ;No - start a new block
+       POP P,A
        POPJ P,
 
                ;FOLLOWING ROUTINES SAVE AC'S EXCEPT FOR A
@@ -6266,6 +6275,7 @@ IFN CREFSW,XCT CRFDEF
        SKIPL CONTRL    ;IF RELOCATABLE ANDLOCAL SYMBOL,
        CAIL A,DEFGVR_-33.
         RET
+       PUSHJ P,MKROOM
        PUSHJ P,PBITS7  ;TELL STINK TO EXPUNGE SYM.
        MOVEI A,CLGLO
        PUSHJ P,PBITS