ÌOOK AND ÌOAD ÂY ×AYNE ÍARTIN ÐROGRAMMERS LOVE TO STICK PET MACHINE LANGUAGE ROUTINES IN THE 4Ë OF MEMORY BETWEEN $Ã000 (49152) AND $ÃÆÆÆ (53247), SO É WANTED TO FIND ANOTHER, SAFER SPOT FOR A UTILITY PROGRAM É HAD WRITTEN. É'D NEVER SEEN AN ÍÌ PROGRAM STORED IN ÒÁÍ MEMORY UNDER THE ËERNAL ÒÏÍ, SO É FIGURED THAT WOULD BE A SAFE PLACE. ×HEN LOADED, MY PROGRAM SITS IN THE BACKGROUND WAITING FOR THE Æ7 KEY TO BE PRESSED. ÔHEN, IT LISTS THE DISK DIRECTORY AND LOADS ANY PROGRAM YOU CHOOSE, JUST BY PRESSING Æ7 AGAIN. ÂECAUSE OF ITS LOCATION, LOADING AND RUNNING ANOTHER PROGRAM WILL NOT AFFECT ÌOOK AND ÌOAD. ×HENEVER YOU WANT TO USE ÌOOK AND ÌOAD, JUST SELECT ÌOOK & ÌOAD FROM ÍENU 64. ÉF YOU'VE COPIED THE ÌOOK & ÌOAD FILES TO A WORK DISK, TYPE ÌÏÁÄ "ÌÏÏË & ÌÏÁÄ",8 AND ENTER ÓÙÓ267 [RETURN] TO LOAD ËÒ AND RESET THE INTERRUPT VECTOR. ÉF THE INTERRUPT VECTOR IS RETURNED TO NORMAL (BY PRESSING ÒÕÎ-ÓTOP/ÒESTORE OR A RESET BUTTON), ÓÙÓ290 WILL RE-ACTIVATE IT. ÄURING THE INTERRUPT PERIOD THAT OCCURS EVERY 1/60 OF A SECOND, THE COMPUTER CHECKS TO SEE IF Æ7 WAS PRESSED. ÉF SO, THEN UPON RETURN FROM THE INTERRUPT ROUTINE IT WILL JUMP TO THE ÍÌ ROUTINE LOCATED IN ÒÁÍ UNDER THE ËERNAL ÒÏÍ. ÍY ROUTINE CLEARS THE SCREEN AND PRINTS THE DISK DIRECTORY. ÐRESS THE SPACE BAR TO SLOW THE DIRECTORY AND ANY OTHER KEY TO STOP IT. ÔO RESUME SCROLLING, PRESS THE SPACE BAR AGAIN. ÕSE THE CURSOR UP/DOWN KEY TO MOVE THE HIGHLIGHTED AREA TO THE DIRECTORY LISTING THAT YOU WANT TO LOAD. ÐRESS Æ7 AGAIN TO LOAD THE PROGRAM. ÙOU CAN LOAD ANY ÂASIC OR ÍÌ PROGRAM. ÉF YOU DO NOT WISH TO LOAD A PROGRAM, PRESS RETURN TO CLEAR THE SCREEN AND RETURN TO ÄIRECT MODE. ÈOW ÉT ×ORKS ÅXAMINE THE PROGRAM AND YOU WILL SEE FOUR SECTIONS OF ÄATA STATEMENTS. ÔHE FIRST COPIES THE ÂASIC AND ËERNAL ÒÏÍS TO THEIR UNDERLYING ÒÁÍ MEMORY.ÔHE SECOND POKES THE LIST AND LOAD PROGRAM TO AN AREA IN THE NEWLY COPIED ËERNAL ÒÁÍ. ÔHE MEMORY BETWEEN $Æ8Å2 (63714) AND $ÆÂ96 (64406) IS USED ONLY FOR TAPE OPERATIONS, THEREFORE É CAN POKE MY PROGRAM IN THIS AREA AND STILL USE THE OTHER ËERNAL ROUTINES.ÎOW COMES THE TRICKY PART. ÉN ORDER TO USE THE NEW ËERNAL ÒÁÍ, THE ËERNAL ÒÏÍ MUST BE TURNED OFF TO FORCE THE COMPUTER TO USE THE PROGRAM IN ÒÁÍ MEMORY. ÔHIS IS DONE BY CHANGING THE VALUE IN MEMORY LOCATION #1 TO 53. ÕPON COMPLETION OF THE PROGRAM A 55 IS STORED THERE. ÔHE SWITCHING MUST BE DONE IN AN AREA OF MEMORY THAT IS NOT AFFECTED BY OTHER COMPUTER OPERATIONS. ÔHERE IS AN AREA BETWEEN $010Â (267) AND $013Å (318) THAT IS ONLY USED DURING TAPE LOADING AND CANNOT BE OVERWRITTEN BY THE STACK, SO THE THIRD SET OF ÄATA STATEMENTS POKES A SHORT MACHINE LANGUAGE ROUTINE INTO $010Â THAT WILL DO THE REQUIRED BANK SWITCHING. ÉT ALSO HOLDS THE ËÒ ÌOAD PROGRAM. ÔHE LAST SET OF ÄATA STATEMENTS TAKES ALL THE ABOVE AND SAVES THE TWO PROGRAMS, ËÒ ÌOAD AND ËÒ, TO YOUR DISK. ËÒ IS AN ENTIRELY NEW ËERNAL ÒÁÍ. ÏNE WARNING: ÉF YOU USE A ÆASTÌOAD CARTRIDGE, DO NOT USE THE ÍONITOR FUNCTION AS IT CHANGES THE INTERRUPT VECTOR IN ÒÁÍ UNDER ËERNAL ÒÏÍ AND THEREBY CAUSES THE PROGRAM TO HANG UP.