;Install memory window keys

-openpw memory 0 0 640 200
-openlw memory memory 80 40
-setflag memory 128+32 128+32

memptr=0
alias _vm 'on memory {home;m memptr}'
alias _ra 'remattach []'
_vm
_k1={attach '{memptr=memptr-16;_vm}' 03e 01 e}
_k2={attach '{memptr=memptr+16;_vm}' 01e 01 e}
_k3={attach '{memptr=memptr-1;_vm}' 02d 01 e}
_k4={attach '{memptr=memptr+1;_vm}' 02f 01 e}
_k5={attach '{memptr=memptr-(20*16);_vm}' 03f 01 e}
_k6={attach '{memptr=memptr+(20*16);_vm}' 01f 01 e}
_k7={attach '_vm' 02e 01 e}
_k8={attach '{getstring \'Give address\' 256;memptr=eval(input);_vm}' 0f 01 e}
_k9={attach '{v if((mode)&3,if(((mode)&3)==1,{mode word},{mode byte}),{mode long});_vm}' 03c 01 e}
_mkeys={attach '{closepw memory;remvar memptr;_ra \(_k1);_ra \(_k2);_ra \(_k3);_ra \(_k4);_ra \(_k5);_ra \(_k6);_ra \(_k7);_ra \(_k8);_ra \(_k9);_ra _mkeys;remvar _mkeys;unalias _vm;unalias _ra}' 01d 09 e}
remvar _k1 _k2 _k3 _k4 _k5 _k6 _k7 _k8 _k9
print '\0aShift in combination with the following keys on numeric keypad :\0a'
print '   8 (Up)    scroll one line up\0a'
print '   2 (Down)  scroll one line down\0a'
print '   9 (PgUp)  scroll one page up\0a'
print '   3 (PgDn)  scroll one page down\0a'
print '   4 (Left)  scroll one byte left\0a'
print '   6 (Right) scroll one byte right\0a'
print '   5         refresh display\0a'
print '   0         ask new address\0a'
print '   .         switch between byte/word and long mode\0a'
print 'Ctrl+Shift 1 to remove display\0a'
