10 IF PEEK(104) < >64 THEN 63988: REM do only once
63987 END : REM don't fall in here by accident
63988 POKE 60,0: POKE 61,8: REM beginning address ($0800)
63989 POKE 62, PEEK(175): POKE 63, PEEK(176): REM ending address
63990 POKE 66,0: POKE 67,64: REM destination address ($4000)
63991 POKE 768,160: POKE 769,0: POKE 770,76: POKE 771,44: POKE 772,254: CALL 768: REM clear Y reg & call monitor move ($FE2C) to move prgm
63992 AL = 16385:AH = 16386:L = ( PEEK(175) +(256 * PEEK(176))) -2048: REM set high and low byte pointers and length of prgm
63993 POKE AH, PEEK(AH) +64 -8:AL = PEEK(AL) +(256 * PEEK(AH)):AH = AL +1: IF (AH -16386) <L THEN 63993: REM parse through prgm and change high byte pointers
63994 POKE 106, PEEK(106) +64 -8: REM reset VARTAB
63995 POKE 108, PEEK(108) +64 -8: REM reset ARYTAB
63996 POKE 110, PEEK(110) +64 -8: REM reset STREND
63997 POKE 176, PEEK(176) +64 -8: REM reset PRGEND