[comp.sys.cbm] C64 LOAD Question

rsw@whuts.UUCP (WITEL) (11/04/88)

Hi, I'm having a problem with my C64.  I'm using the Kernal routine LOAD
to dump approx 8k worth data from from my disk drive to RAM starting location
#$4000. Three things are happening, either:
		1.  Everyworks fine or
		2.  Garbage is loaded into RAM or
		3.  After 10-20 seconds of disk access the disk LED
                    goes out and the progam gets hung up and only repowering
                    the C64 will get me out of it.
Does anyone have any insight on why #2 and #3 are happening
Thanks in advance

				Rod Witel
				whuts!rsw
				201 386-6447

c60b-rk@buddy.Berkeley.EDU (Greg Burrell) (11/09/88)

In article <4984@whuts.UUCP> rsw@whuts.UUCP (WITEL) writes:
>Hi, I'm having a problem with my C64.  I'm using the Kernal routine LOAD
>to dump approx 8k worth data from from my disk drive to RAM starting location
>#$4000. Three things are happening, either:
>		1.  Everyworks fine or
>		2.  Garbage is loaded into RAM or
>		3.  After 10-20 seconds of disk access the disk LED
>                    goes out and the progam gets hung up and only repowering
>                    the C64 will get me out of it.
>Does anyone have any insight on why #2 and #3 are happening
>Thanks in advance
>
>				Rod Witel
>				whuts!rsw
>				201 386-6447

It sounds to me like the load address is incorrect because
	1) It loads garbage - this could be becuase the load performed
	   correctly, but loaded into the wrong starting address.
	2) The program hangs up and the computer has to be reset -
	   you could have accidentally loaded over some important
	   memory locations used by the O.S.

	If you are trying to load FROM a machine language program 
(i.e jsr to kernel load vector), then have you set the correct load address
in the .X and .Y registers?

	However, if you are trying this from a BASIC program (i.e. SYS to
the load vector), then the BASIC SYS call will load the .A, .X, and .Y
registers from $030C, $030D, and $030E respectively BEFORE making the 
call to the load routine. Likewise, it will store the registers in these
locations after is returns from the SYS call. This could be a problem
if there are garbage values in these locations.


Hope this is of some help.


				-Greg