Personal Computer News September 1, 1983 letter page 17
on the RUN
I was very surprised to read the letter from Ralph Lorenz (PCN, issue 18), who claims that by defining a word:
: AUTO SAVE RUN ;
on the Jupiter Ace, you can make your programs auto-run on loading.
I have tried many times to get my programs to auto-run by using routines similar to this and not one of them has worked. It leads me to wonder whether Ralph has a later version of the ROM.
Once the program has been. saved it will run, because the SAVE routine is called from within the word AUTO. However, when you reload the program, you are calling the LOAD routine from within the outer interpreter (the ROM routine which reads the keyboard and scans the input buffer, which starts at address 1266 or 04F2 hex). On successful loading a jump is made back to the outer interpreter routine at 1273 (04F9 hex) which prints 'OK' and then proceeds to scan the input buffer which, unless you typed anything after LOAD 'NAME', is empty.
The only way round this that I've found is to BSAVE the whole dictionary using 8192
HERE OVER - BSAVE 'NAME'. You now have the problem that the character set gets corrupted. To get around this, enter the following:
: COPY 14278 DO I C@ C,
LOOP 253 C, 233 C, ;
CREATE RESTORE COPY
Now, assuming the word that runs your program is called RUN, edit it to read : RUN FAST RESTORE CALL etc., then type in 8192 HERE OVER - BSAVE 'NAME' RUN and your program can be reloaded using 0 0 BLOAD 'NAME' and it will auto-run.
The word COPY copies up the ROM routine at address 78 (4E hex) which sets up the character set on system initialisation, including all graphics characters.