SRC_C += popen.c printf.c putenv.c putgetch.c putpwent.c putw.c pwent.c qsort.c
SRC_C += raise.c rand.c readdir.c readlink.c realloc.c regerror.c
SRC_C += regsub.c remove.c rewind.c rindex.c setbuffer.c setenv.c setjmp.c
-SRC_C += setlocale.c setvbuf.c settimeofday.c sleep.c sprintf.c
-SRC_C += stat.c stdio0.c stime.c
+SRC_C += setlocale.c setvbuf.c settimeofday.c sgetl.c sleep.c sprintf.c
+SRC_C += sputl.c stat.c stdio0.c stime.c
SRC_C += strcasecmp.c strcasestr.c strdup.c stricmp.c strlcpy.c strncasecmp.c
SRC_C += strnicmp.c strnlen.c strsep.c strsignal.c swab.c
SRC_C += system.c time.c tmpfile.c tmpnam.c ttyname.c
SRC_C += popen.c printf.c putenv.c putchar.c putpwent.c putw.c pwent.c qsort.c
SRC_C += raise.c rand.c readdir.c readlink.c realloc.c regerror.c
SRC_C += regsub.c remove.c rewind.c rewinddir.c rindex.c seekdir.c setbuffer.c setenv.c
-SRC_C += setlocale.c setvbuf.c settimeofday.c sleep.c sprintf.c
-SRC_C += stat.c stdio0.c stime.c
+SRC_C += setlocale.c setvbuf.c settimeofday.c sgetl.c sleep.c sprintf.c
+SRC_C += sputl.c stat.c stdio0.c stime.c
SRC_C += strcasecmp.c strcasestr.c strdup.c stricmp.c strlcpy.c strncasecmp.c
SRC_C += strnlen.c strnicmp.c strsep.c strxfrm.c strcoll.c strsignal.c
SRC_C += strtod.c strtol.c swab.c system.c telldir.c time.c tmpfile.c tmpnam.c ttyname.c
SRC_C += popen.c printf.c putenv.c putchar.c putpwent.c putw.c pwent.c qsort.c
SRC_C += raise.c rand.c readdir.c readlink.c realloc.c regerror.c
SRC_C += regsub.c remove.c rewind.c rewinddir.c rindex.c seekdir.c setbuffer.c setenv.c
-SRC_C += setlocale.c setvbuf.c settimeofday.c sleep.c sprintf.c
-SRC_C += stat.c stdio0.c stime.c
+SRC_C += setlocale.c setvbuf.c settimeofday.c sgetl.c sleep.c sprintf.c
+SRC_C += sputl.c stat.c stdio0.c stime.c
SRC_C += strcasecmp.c strcasestr.c strdup.c stricmp.c strlcpy.c strncasecmp.c
SRC_C += strnlen.c strnicmp.c strsep.c strxfrm.c strcoll.c strsignal.c
SRC_C += strtod.c strtol.c swab.c system.c telldir.c time.c tmpfile.c tmpnam.c ttyname.c
SRC_C += recvfrom.c regerror.c
SRC_C += regsub.c remove.c rewind.c rewinddir.c rindex.c seekdir.c
SRC_C += send.c sendto.c setbuffer.c setenv.c
-SRC_C += setlocale.c setvbuf.c settimeofday.c sleep.c sprintf.c
-SRC_C += stat.c stdio0.c stime.c
+SRC_C += setlocale.c setvbuf.c settimeofday.c sgetl.c sleep.c sprintf.c
+SRC_C += sputl.c stat.c stdio0.c stime.c
SRC_C += strcasecmp.c strcasestr.c strdup.c stricmp.c strlcpy.c strncasecmp.c
SRC_C += strnlen.c strnicmp.c strsep.c strxfrm.c strcoll.c strsignal.c
SRC_C += strtod.c strtol.c swab.c system.c telldir.c time.c tmpfile.c tmpnam.c ttyname.c
+++ /dev/null
-MEMORY {
- RAMZ: start = $0000, size = $0100, type = rw, define = yes;
- RAM1: start = $0100, size = $FB00, type = rw, define = yes;
-}
-
-SEGMENTS {
- ZEROPAGE: load = RAMZ, type = zp, define = yes;
- STARTUP: load = RAM1, type = ro, define=yes;
- CODE: load = RAM1, type = ro, define=yes;
- RODATA: load = RAM1, type = ro, define=yes;
- DATA: load = RAM1, type = rw, define=yes;
- BSS: load = RAM1, type = bss, define=yes;
-}
-
-FILES {
- %O: format = bin;
-}
--- /dev/null
+#include <stdint.h>
+#include <stdio.h>
+
+long sgetl(const char *buffer)
+{
+ uint8_t p = (uint8_t *)buffer;
+ uint32_t r;
+
+ r = *p++;
+ r |= (*p++ << 8);
+ r |= (*p++ << 16);
+ r |= (*p << 24);
+
+ return (long)r;
+}
--- /dev/null
+#include <stdint.h>
+#include <stdio.h>
+
+void sputl(long value, char *buffer)
+{
+ uint8_t p = (uint8_t *)buffer;
+ uint32_t r = (uint32_t)value;
+
+ *p++ = r;
+ r <<= 8;
+ *p++ = r;
+ r <<= 8;
+ *p++ = r;
+ r <<= 8;
+ *p = r;
+}