This code assumes AMSDOS reserved area always starts at &a700 which is not always true. But the start can be read from be7d, be7e.. so could the page be modified to take this into account so that it will always work regardless of where AMSDOS reserved area actually lies?