diff --git a/src/inc/cmdsys.plh b/src/inc/cmdsys.plh index 9a49787..b7add13 100644 --- a/src/inc/cmdsys.plh +++ b/src/inc/cmdsys.plh @@ -34,6 +34,7 @@ import cmdsys const resxhgr1 = $0040 const resxhgr2 = $0080 const nojitc = $0100 + const resxshr = $0200 const vid80col = $0800 // // Module don't free memory diff --git a/src/vmsrc/apple/cmdjit.pla b/src/vmsrc/apple/cmdjit.pla index be79c66..b50a777 100755 --- a/src/vmsrc/apple/cmdjit.pla +++ b/src/vmsrc/apple/cmdjit.pla @@ -18,6 +18,7 @@ const reshgr2 = $0020 const resxhgr1 = $0040 const resxhgr2 = $0080 const nojitc = $0100 +const resxshr = $0200 // // Module don't free memory // @@ -980,16 +981,23 @@ def allocxheap(size)#1 xheap = xaddr + size fin fin - if systemflags & resxhgr1 - if uword_islt(xaddr, $4000) and uword_isgt(xheap, $2000) - xaddr = $4000 + if systemflags & resxshr + if uword_islt(xaddr, $A000) and uword_isgt(xheap, $2000) + xaddr = $A000 xheap = xaddr + size fin - fin - if systemflags & resxhgr2 - if uword_islt(xaddr, $6000) and uword_isgt(xheap, $4000) - xaddr = $6000 - xheap = xaddr + size + else + if systemflags & resxhgr1 + if uword_islt(xaddr, $4000) and uword_isgt(xheap, $2000) + xaddr = $4000 + xheap = xaddr + size + fin + fin + if systemflags & resxhgr2 + if uword_islt(xaddr, $6000) and uword_isgt(xheap, $4000) + xaddr = $6000 + xheap = xaddr + size + fin fin fin if uword_isge(xheap, xheaptop)