[net.micro.cbm] C-64 BASIC guru - help wanted please

rwh@aesat.UUCP (Russ Herman) (01/15/85)

I want to modify the September 1984 Compute Gazette SpeedScript
custom boot program. The tail end of it looks like

	160 print"[CLEAR]pO43,1:pO44,"hs"
	162 print"[DOWN][DOWN]p045,",le":pO46,"he"
	164 print"[DOWN][DOWN]save"chr$(34)nf$chr$(34)","dn
	166 data19,13,13,13,33,131
	168 poke198,6:fori=631to636:readn:pokei,n:next

The accompanying text contains

	"Lines 160-168 print the statements to perform the POKEs and to
	save and run the new SpeedScript; they also fill the keyboard
	buffer with a HOME character, three RETURNs, an exclamation
	point, and the code for LOAD and RUN."

Generally I understand the techniques being used. It's a clever technique for
loading a program in high core that loads an ML program, modifies it, and
then executes it after diddling back the BASIC pointers via screen memory and
the keyboard buffer. What I *don't* understand is the last two
characters stuffed in the keyboard buffer. What is the significance
of an exclamation point? The only reference I can find to code 131 is its
tabling in the Transactor reference issue as "LOAD and RUN" - how is it used?
Other references show 131 as the token for DATA - nothing to do with load/run.

What I am intending to do is simply RUN the patched version of SpeedScript
without saving and reloading it: I assume I can replace the "save" command
with a "run" command and delete the 131 and maybe the 33 (changing the count
accordingly). Sound reasonable? Please e-mail if you can explain, as I doubt
if this is of general interest.
-- 
  ______			Russ Herman
 /      \			{allegra,ihnp4,linus,decvax}!utzoo!aesat!rwh
@( ?  ? )@			
 (  ||  )			The opinions above are strictly personal, and 
 ( \__/ )			do not reflect those of my employer (or even
  \____/			possibly myself an hour from now.)