Added custom log function for CBM machines.
The log function writes directly to the screen. Combined with the usage of PFS this means that the POSIX layer of the C library isn't referenced anymore thus reducing the memory requirements.
This commit is contained in:
parent
d864e73579
commit
fb4c42a357
|
@ -74,6 +74,12 @@ typedef unsigned short uip_stats_t;
|
|||
|
||||
#define LOADER_CONF_ARCH "lib/unload.h"
|
||||
|
||||
#ifdef HAVE_LOGSCR
|
||||
void logscr(const void *msg, unsigned len);
|
||||
#else
|
||||
#define logscr(msg, len) write(STDERR_FILENO, msg, len)
|
||||
#endif
|
||||
|
||||
#if MTU_SIZE
|
||||
#define UIP_CONF_BUFFER_SIZE (UIP_LLH_LEN + MTU_SIZE)
|
||||
#else /* MTU_SIZE */
|
||||
|
|
|
@ -32,7 +32,6 @@
|
|||
*
|
||||
*/
|
||||
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "net/ip/uip.h"
|
||||
|
@ -43,8 +42,8 @@
|
|||
void
|
||||
uip_log(char *message)
|
||||
{
|
||||
write(STDERR_FILENO, message, strlen(message));
|
||||
write(STDERR_FILENO, "\n", 1);
|
||||
logscr(message, strlen(message));
|
||||
logscr("\n", 1);
|
||||
}
|
||||
#endif /* UIP_LOGGING */
|
||||
/*-----------------------------------------------------------------------------------*/
|
||||
|
@ -52,9 +51,9 @@ uip_log(char *message)
|
|||
void
|
||||
log_message(const char *part1, const char *part2)
|
||||
{
|
||||
write(STDERR_FILENO, part1, strlen(part1));
|
||||
write(STDERR_FILENO, part2, strlen(part2));
|
||||
write(STDERR_FILENO, "\n", 1);
|
||||
logscr(part1, strlen(part1));
|
||||
logscr(part2, strlen(part2));
|
||||
logscr("\n", 1);
|
||||
}
|
||||
#endif /* LOG_CONF_ENABLED */
|
||||
/*-----------------------------------------------------------------------------------*/
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
# Author: Oliver Schmidt <ol.sc@web.de>
|
||||
#
|
||||
|
||||
CONTIKI_TARGET_SOURCEFILES += exec.c lseek.c \
|
||||
CONTIKI_TARGET_SOURCEFILES += exec.c logscr.S lseek.c \
|
||||
pfs.S pfs-dir.c pfs-dir-asm.S pfs_remove.S pfs_seek.S pfs_write.S
|
||||
|
||||
CONTIKI_CPU = $(CONTIKI)/cpu/6502
|
||||
|
|
|
@ -35,6 +35,8 @@
|
|||
#ifndef CONTIKI_CONF_H_
|
||||
#define CONTIKI_CONF_H_
|
||||
|
||||
#define HAVE_LOGSCR
|
||||
|
||||
#include "6502def.h"
|
||||
|
||||
#if (WITH_PFS && !CFS_IMPL)
|
||||
|
|
5
platform/c128/lib/logscr.S
Normal file
5
platform/c128/lib/logscr.S
Normal file
|
@ -0,0 +1,5 @@
|
|||
; 2016-04-28, Greg King
|
||||
;
|
||||
; The C128 function is the same as the C64 function.
|
||||
|
||||
.include "../../c64/lib/logscr.S"
|
|
@ -31,7 +31,7 @@
|
|||
# Author: Oliver Schmidt <ol.sc@web.de>
|
||||
#
|
||||
|
||||
CONTIKI_TARGET_SOURCEFILES += exec.c lseek.c \
|
||||
CONTIKI_TARGET_SOURCEFILES += exec.c logscr.S lseek.c \
|
||||
pfs.S pfs-dir.c pfs-dir-asm.S pfs_remove.S pfs_seek.S pfs_write.S
|
||||
|
||||
CONTIKI_CPU = $(CONTIKI)/cpu/6502
|
||||
|
|
|
@ -35,6 +35,8 @@
|
|||
#ifndef CONTIKI_CONF_H_
|
||||
#define CONTIKI_CONF_H_
|
||||
|
||||
#define HAVE_LOGSCR
|
||||
|
||||
#include "6502def.h"
|
||||
|
||||
#if (WITH_PFS && !CFS_IMPL)
|
||||
|
|
38
platform/c64/lib/logscr.S
Normal file
38
platform/c64/lib/logscr.S
Normal file
|
@ -0,0 +1,38 @@
|
|||
; 2002-11-16, Ullrich von Bassewitz
|
||||
; 2016-04-28, Greg King
|
||||
;
|
||||
; void logscr(const void *msg, unsigned len);
|
||||
|
||||
.export _logscr
|
||||
|
||||
.import BSOUT
|
||||
.import popax
|
||||
.importzp ptr1, ptr2
|
||||
|
||||
;--------------------------------------------------------------------------
|
||||
|
||||
.proc _logscr
|
||||
eor #$FF
|
||||
sta ptr2
|
||||
txa
|
||||
eor #$FF
|
||||
sta ptr2+1 ; remember -count-1
|
||||
|
||||
jsr popax ; get buf
|
||||
sta ptr1
|
||||
stx ptr1+1
|
||||
|
||||
L1: inc ptr2 ; count the char that will be printed
|
||||
bne L2
|
||||
inc ptr2+1
|
||||
beq L9
|
||||
L2: ldy #$00
|
||||
lda (ptr1),y
|
||||
jsr BSOUT
|
||||
inc ptr1
|
||||
bne L1
|
||||
inc ptr1+1
|
||||
bne L1 ; branch always
|
||||
|
||||
L9: rts
|
||||
.endproc
|
Loading…
Reference in a new issue