********************************************************************** * Name: UP * Stack: ( --> ) * Desc: Replacement to internal UPDIR * Notes: This one sets the page so that the old directory * is visible in the menu. ********************************************************************** ASSEMBLE CON(1) 8 RPL xNAME UP :: CK0 CONTEXT@ ( rrp ) UPDIR CONTEXT@ ( rrp newrrp ) 2DUPEQ case2DROP ( * Exit if was already at home * ) LastNonNull NOTcaseDROP ( * Where's the moon? * ) MINUSONE UNROT ( #pos rrp ob ) BEGIN ROT#1+UNROT ( #pos+1 rrp ob ) 2DUPEQ ITE DROPFALSE ( #pos+1 rrp FALSE ) PrevNonNull ( #pos+1 rrp ob' ) NOT_UNTIL (UNTIL) DROP ( #pos ) SIX #/ SWAPDROP ( #page ) UNCOERCE %1 %OF ( %page ) % 2.01 %+ ( %menu+page ) InitMenu% ; **********************************************************************