2.12.2021, 9:00 - 11:00: Due to updates GitLab may be unavailable for some minutes between 09:00 and 11:00.

Commit bf724549 authored by Martin Ruckert's avatar Martin Ruckert
Browse files

starting the program with a RESUME 1 instead of RESUME 0 to allow Main=0

parent edce8d7c
...@@ -379,14 +379,22 @@ g[255]=incr(aux,12*8); /* we will \.{UNSAVE} from here, to get going */ ...@@ -379,14 +379,22 @@ g[255]=incr(aux,12*8); /* we will \.{UNSAVE} from here, to get going */
} }
aux=incr(aux,12*8); /* we can |UNSAVE| from here, to get going */ aux=incr(aux,12*8); /* we can |UNSAVE| from here, to get going */
#ifdef MMIX_BOOT #ifdef MMIX_BOOT
loc.h=0x80000000; loc.l=0;
g[rWW] = x; /* last octa stored is address of \.{Main} */ g[rWW] = x; /* last octa stored is address of \.{Main} */
g[rBB] = aux; g[rBB] = aux;
g[rXX].h = 0; g[rXX].l = ((tetra)UNSAVE<<24)+255; /* \.{UNSAVE} \$255 */ g[rXX].h = 0; g[rXX].l = ((tetra)UNSAVE<<24)+255; /* \.{UNSAVE} \$255 */
rzz = 1; rzz = 1;
#else #else
inst_ptr = x; loc.h=0x80000000; loc.l=0;
inst_ptr = x; /* last octa stored is address of \.{Main} */
g[255] = aux; g[255] = aux;
rzz = 0; /* pretend \.{RESUME} 0 */ g[rXX].h = 0; g[rXX].l = ((tetra)UNSAVE<<24)+255; /* \.{UNSAVE} \$255 */
rzz = 1;
trace_once=interacting;
/* RESUME 0 will not work for x = 0
inst_ptr = x;
g[255] = aux;
rzz = 0; pretend \.{RESUME} 0 */
#endif #endif
// if (interacting) set_break(x,exec_bit); // if (interacting) set_break(x,exec_bit);
x.h=G<<24; x.l=0 /* rA */; x.h=G<<24; x.l=0 /* rA */;
...@@ -1163,17 +1171,17 @@ if (stack_tracing) { ...@@ -1163,17 +1171,17 @@ if (stack_tracing) {
g[rS]=incr(g[rS],-8); g[rS]=incr(g[rS],-8);
ll=mem_find(g[rS]); ll=mem_find(g[rS]);
test_load_bkpt(ll);@+test_load_bkpt(ll+1); test_load_bkpt(ll);@+test_load_bkpt(ll+1);
if (k==rZ+1) if (k==rZ+1) {
{ if (!MMIX_LDO(a,g[rS])) { w=g[rS]; goto page_fault; } if (!MMIX_LDO(a,g[rS])) { w=g[rS]; goto page_fault; }
x.l=G=g[rG].l=a.h>>24; x.l=G=g[rG].l=a.h>>24;
a.l=g[rA].l=a.l&0x3ffff; a.l=g[rA].l=a.l&0x3ffff;
} }
else else
if (!MMIX_LDO(g[k],g[rS])) { w=g[rS]; goto page_fault; } if (!MMIX_LDO(g[k],g[rS])) { w=g[rS]; goto page_fault; }
if (k>=32) mmix_stack_trace(" rS-=8, g[%d]=M8[#%08x%08x]=#%08x%08x\n", if (k>=32) mmix_stack_trace(" rS-=8, g[%d]=M8[#%08x%08x]=#%08x%08x\n",
k,g[rS].h,g[rS].l,g[k].h,g[k].l); k,g[rS].h,g[rS].l,g[k].h,g[k].l);
else if (k==rZ+1) mmix_stack_trace(" (rG,rA)=M8[#%08x%08x]=#%08x%08x\n", else if (k==rZ+1) mmix_stack_trace(" (rG,rA)=M8[#%08x%08x]=#%08x%08x\n",
g[rS].h,g[rS].l,g[k].h,g[k].l); g[rS].h,g[rS].l,a.h,a.l);
else mmix_stack_trace(" rS-=8, %s=M8[#%08x%08x]=#%08x%08x\n", else mmix_stack_trace(" rS-=8, %s=M8[#%08x%08x]=#%08x%08x\n",
special_name[k],g[rS].h,g[rS].l,g[k].h,g[k].l); special_name[k],g[rS].h,g[rS].l,g[k].h,g[k].l);
@z @z
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment