/*
- * Marc 'BlackJack' Rintsch, 06.03.2001
- *
- * unsigned char cbm_load(const char* name, char device, unsigned int addr);
- */
+** Marc 'BlackJack' Rintsch, 06.03.2001
+**
+** unsigned int cbm_load(const char* name,
+** unsigned char device,
+** const unsigned char* data);
+*/
#include <cbm.h>
-#include <errno.h>
/* loads file "name" from given device to given address or to the load address
- * of the file if addr is 0
- */
-unsigned char cbm_load(const char* name, unsigned char device,
- unsigned int addr)
+** of the file if "data" is 0
+*/
+unsigned int cbm_load(const char* name, unsigned char device, void* data)
{
- /* LFN is set to 0 but it's not needed for loading.
- * (BASIC V2 sets it to the value of the SA for LOAD) */
- cbm_k_setlfs(0, device, addr == 0);
+ /* LFN is set to 0; but, it's not needed for loading
+ ** (BASIC V2 sets it to the value of the SA for LOAD).
+ */
+ cbm_k_setlfs(0, device, data == 0);
cbm_k_setnam(name);
- return _oserror = cbm_k_load(0, addr);
+ return (cbm_k_load(0, (unsigned int)data) - (unsigned int)data);
}