From 564c85235fa7f776915333a29205128e3fca3f74 Mon Sep 17 00:00:00 2001 From: rumbledethumps <16963588+rumbledethumps@users.noreply.github.com> Date: Fri, 17 Nov 2023 11:08:51 -0800 Subject: [PATCH] style update and add rp6502 doc --- asminc/rp6502.inc | 6 +-- cfg/rp6502.cfg | 8 --- doc/index.sgml | 3 ++ doc/rp6502.sgml | 96 ++++++++++++++++++++++++++++++++++++ include/rp6502.h | 70 ++++++++++++++++---------- libsrc/rp6502/close.c | 14 ++---- libsrc/rp6502/codepage.c | 12 +---- libsrc/rp6502/crt0.s | 9 ++-- libsrc/rp6502/getres.c | 16 ++---- libsrc/rp6502/gettime.c | 16 ++---- libsrc/rp6502/gettimespec.c | 19 ++----- libsrc/rp6502/gettimezone.c | 21 +++----- libsrc/rp6502/initenv.s | 6 +-- libsrc/rp6502/irq.s | 7 ++- libsrc/rp6502/lrand.c | 12 +---- libsrc/rp6502/lseek.c | 18 ++----- libsrc/rp6502/mainargs.s | 7 ++- libsrc/rp6502/open.c | 26 +++------- libsrc/rp6502/phi2.c | 12 +---- libsrc/rp6502/randomize.c | 12 +---- libsrc/rp6502/read.c | 21 ++------ libsrc/rp6502/read_xram.c | 18 ++----- libsrc/rp6502/read_xstack.c | 21 +++----- libsrc/rp6502/ria.s | 7 ++- libsrc/rp6502/settime.c | 18 ++----- libsrc/rp6502/stdin_opt.c | 15 ++---- libsrc/rp6502/sysremove.c | 24 +++------ libsrc/rp6502/sysrename.c | 33 +++++-------- libsrc/rp6502/write.c | 21 ++------ libsrc/rp6502/write_xram.c | 18 ++----- libsrc/rp6502/write_xstack.c | 19 ++----- libsrc/rp6502/xreg.s | 7 +-- 32 files changed, 261 insertions(+), 351 deletions(-) create mode 100644 doc/rp6502.sgml diff --git a/asminc/rp6502.inc b/asminc/rp6502.inc index 3fa493331..7dd1b8fcd 100644 --- a/asminc/rp6502.inc +++ b/asminc/rp6502.inc @@ -1,8 +1,4 @@ -; Copyright (c) 2023 Rumbledethumps -; -; SPDX-License-Identifier: Zlib -; SPDX-License-Identifier: BSD-3-Clause -; SPDX-License-Identifier: Unlicense +; Picocomputer 6502 general defines ; RIA UART RIA_READY := $FFE0 ; TX=$80 RX=$40 diff --git a/cfg/rp6502.cfg b/cfg/rp6502.cfg index a3e3b29ce..ed40e467d 100644 --- a/cfg/rp6502.cfg +++ b/cfg/rp6502.cfg @@ -1,11 +1,3 @@ -# -# Copyright (c) 2023 Rumbledethumps -# -# SPDX-License-Identifier: Zlib -# SPDX-License-Identifier: BSD-3-Clause -# SPDX-License-Identifier: Unlicense -# - SYMBOLS { __STARTUP__: type = import; __STACKSIZE__: type = weak, value = $0800; diff --git a/doc/index.sgml b/doc/index.sgml index 727364028..92df5e018 100644 --- a/doc/index.sgml +++ b/doc/index.sgml @@ -175,6 +175,9 @@ Topics specific to the Commodore Plus/4. + + Topics specific to the Picocomputer 6502. + Topics specific to the Watara Supervision Console. diff --git a/doc/rp6502.sgml b/doc/rp6502.sgml new file mode 100644 index 000000000..201f0a06b --- /dev/null +++ b/doc/rp6502.sgml @@ -0,0 +1,96 @@ + + +
+Picocomputer 6502 - specific information for cc65 +<author><url url="mailto:uz@cc65.org" name="Ullrich von Bassewitz"> + +<abstract> +An overview over the Picocomputer 6502 and its interfaces to the cc65 C +compiler. +</abstract> + +<!-- Table of contents --> +<toc> + +<!-- Begin the document --> + +<sect>Overview<p> + +The Picocomputer 6502 is a modern W65C02S computer with a custom operating +system designed to be POSIX-like. The reference design includes a W65C02S, +W65C22S, RP6502-RIA, and optionally a RP6502-VGA. Peripheral devices like +keyboards, mice, and flash storage are connected by USB to the RP6502-RIA. +Audio is generated by the RP6502-RIA. Video is generated by the RP6502-VGA. + + + +<sect>Binary format<p> + +The standard binary output format generated by the linker for the RP6502 target +is a plain machine language program without any prefix or postfix. + +The RP6502 Integrated Development Environment, based on Visual Studio Code, +will convert the cc65 binary output into RP6502 ROM files that can be loaded +directly from the RP6502 monitor or installed on the RIA to be loaded at boot. + + + +<sect>Memory layout<p> + +<descrip> + <tag/Stack/ + The C run-time stack is located at $FEFF, and grows downward. + + <tag/Heap/ + The C heap is located at the end of the program, and grows toward the C + run-time stack. + + <tag/RAM/ + RAM is located at $0000 - $FEFF. Default binaries load and + start at $0200. + + <tag/ROM/ + The RP6502 is designed with no ROM in the 6502 address space. + + <tag/VIA/ + A Versatile Interface Adapter (6522) is 16 registers located + at $FFD0. + + <tag/RIA/ + The RP6502 Interface Adapter is 32 registers located at $FFE0. + + <tag/User/ + User I/O expansion is from $FF00 to $FFCF. + +</descrip><p> + + + +<sect>Platform-specific header files<p> + +Programs containing RP6502-specific code may use the <tt/rp6502.h/ or +<tt/rp6502.inc/ include files. + + + +<sect>License<p> + +This software is provided "as-is", without any expressed or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: +<enum> +<item> The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated, but is not required. +<item> Altered source versions must be plainly marked as such, and must not + be misrepresented as being the original software. +<item> This notice may not be removed or altered from any source + distribution. +</enum> + +</article> diff --git a/include/rp6502.h b/include/rp6502.h index 0c2ba3881..033684b72 100644 --- a/include/rp6502.h +++ b/include/rp6502.h @@ -1,10 +1,28 @@ -/* - * Copyright (c) 2023 Rumbledethumps - * - * SPDX-License-Identifier: Zlib - * SPDX-License-Identifier: BSD-3-Clause - * SPDX-License-Identifier: Unlicense - */ +/*****************************************************************************/ +/* */ +/* rp6502.h */ +/* */ +/* Picocomputer 6502 */ +/* */ +/* */ +/* This software is provided 'as-is', without any expressed or implied */ +/* warranty. In no event will the authors be held liable for any damages */ +/* arising from the use of this software. */ +/* */ +/* Permission is granted to anyone to use this software for any purpose, */ +/* including commercial applications, and to alter it and redistribute it */ +/* freely, subject to the following restrictions: */ +/* */ +/* 1. The origin of this software must not be misrepresented; you must not */ +/* claim that you wrote the original software. If you use this software */ +/* in a product, an acknowledgment in the product documentation would be */ +/* appreciated but is not required. */ +/* 2. Altered source versions must be plainly marked as such, and must not */ +/* be misrepresented as being the original software. */ +/* 3. This notice may not be removed or altered from any source */ +/* distribution. */ +/* */ +/*****************************************************************************/ #ifndef _RP6502_H #define _RP6502_H @@ -50,29 +68,29 @@ struct __RP6502 /* XSTACK helpers */ -void __fastcall__ ria_push_long(unsigned long val); -void __fastcall__ ria_push_int(unsigned int val); +void __fastcall__ ria_push_long (unsigned long val); +void __fastcall__ ria_push_int (unsigned int val); #define ria_push_char(v) RIA.xstack = v -long __fastcall__ ria_pop_long(void); -int __fastcall__ ria_pop_int(void); +long __fastcall__ ria_pop_long (void); +int __fastcall__ ria_pop_int (void); #define ria_pop_char() RIA.xstack /* Set the RIA fastcall register */ -void __fastcall__ ria_set_axsreg(unsigned long axsreg); -void __fastcall__ ria_set_ax(unsigned int ax); +void __fastcall__ ria_set_axsreg (unsigned long axsreg); +void __fastcall__ ria_set_ax (unsigned int ax); #define ria_set_a(v) RIA.a = v /* Run an OS operation */ -int __fastcall__ ria_call_int(unsigned char op); -long __fastcall__ ria_call_long(unsigned char op); +int __fastcall__ ria_call_int (unsigned char op); +long __fastcall__ ria_call_long (unsigned char op); /* These run _mappederrno() on error */ -int __fastcall__ ria_call_int_errno(unsigned char op); -long __fastcall__ ria_call_long_errno(unsigned char op); +int __fastcall__ ria_call_int_errno (unsigned char op); +long __fastcall__ ria_call_long_errno (unsigned char op); /* OS operation numbers */ @@ -99,15 +117,15 @@ long __fastcall__ ria_call_long_errno(unsigned char op); /* C API for the operating system. */ -int __cdecl__ xreg(char device, char channel, unsigned char address, ...); -int __fastcall__ phi2(void); -int __fastcall__ codepage(void); -long __fastcall__ lrand(void); -int __fastcall__ stdin_opt(unsigned long ctrl_bits, unsigned char str_length); -int __fastcall__ read_xstack(void *buf, unsigned count, int fildes); -int __fastcall__ read_xram(unsigned buf, unsigned count, int fildes); -int __fastcall__ write_xstack(const void *buf, unsigned count, int fildes); -int __fastcall__ write_xram(unsigned buf, unsigned count, int fildes); +int __cdecl__ xreg (char device, char channel, unsigned char address, ...); +int __fastcall__ phi2 (void); +int __fastcall__ codepage (void); +long __fastcall__ lrand (void); +int __fastcall__ stdin_opt (unsigned long ctrl_bits, unsigned char str_length); +int __fastcall__ read_xstack (void* buf, unsigned count, int fildes); +int __fastcall__ read_xram (unsigned buf, unsigned count, int fildes); +int __fastcall__ write_xstack (const void* buf, unsigned count, int fildes); +int __fastcall__ write_xram (unsigned buf, unsigned count, int fildes); /* XREG location helpers */ diff --git a/libsrc/rp6502/close.c b/libsrc/rp6502/close.c index 1fdc40545..dd7e38115 100644 --- a/libsrc/rp6502/close.c +++ b/libsrc/rp6502/close.c @@ -1,16 +1,8 @@ -/* - * Copyright (c) 2023 Rumbledethumps - * - * SPDX-License-Identifier: Zlib - * SPDX-License-Identifier: BSD-3-Clause - * SPDX-License-Identifier: Unlicense - */ - #include <rp6502.h> #include <errno.h> -int __fastcall__ close(int fd) +int __fastcall__ close (int fd) { - ria_set_ax(fd); - return ria_call_int_errno(RIA_OP_CLOSE); + ria_set_ax (fd); + return ria_call_int_errno (RIA_OP_CLOSE); } diff --git a/libsrc/rp6502/codepage.c b/libsrc/rp6502/codepage.c index c0914651d..e28726f04 100644 --- a/libsrc/rp6502/codepage.c +++ b/libsrc/rp6502/codepage.c @@ -1,14 +1,6 @@ -/* - * Copyright (c) 2023 Rumbledethumps - * - * SPDX-License-Identifier: Zlib - * SPDX-License-Identifier: BSD-3-Clause - * SPDX-License-Identifier: Unlicense - */ - #include <rp6502.h> -int __fastcall__ codepage(void) +int __fastcall__ codepage (void) { - return ria_call_int(RIA_OP_CODEPAGE); + return ria_call_int (RIA_OP_CODEPAGE); } diff --git a/libsrc/rp6502/crt0.s b/libsrc/rp6502/crt0.s index e6406fe5e..165ecf0a2 100644 --- a/libsrc/rp6502/crt0.s +++ b/libsrc/rp6502/crt0.s @@ -1,10 +1,7 @@ -; Copyright (c) 2023 Rumbledethumps ; -; SPDX-License-Identifier: Zlib -; SPDX-License-Identifier: BSD-3-Clause -; SPDX-License-Identifier: Unlicense - -; Boilerplate crt0.s +; 2023, Rumbledethumps +; +; crt0.s .export _init, _exit .import _main diff --git a/libsrc/rp6502/getres.c b/libsrc/rp6502/getres.c index c60bbd38d..394c32e76 100644 --- a/libsrc/rp6502/getres.c +++ b/libsrc/rp6502/getres.c @@ -1,18 +1,10 @@ -/* - * Copyright (c) 2023 Rumbledethumps - * - * SPDX-License-Identifier: Zlib - * SPDX-License-Identifier: BSD-3-Clause - * SPDX-License-Identifier: Unlicense - */ - #include <rp6502.h> #include <time.h> -extern int __clock_gettimespec(struct timespec *ts, unsigned char op); +extern int __clock_gettimespec (struct timespec* ts, unsigned char op); -int clock_getres(clockid_t clock_id, struct timespec *res) +int clock_getres (clockid_t clock_id, struct timespec* res) { - ria_set_ax(clock_id); - return __clock_gettimespec(res, RIA_OP_CLOCK_GETRES); + ria_set_ax (clock_id); + return __clock_gettimespec (res, RIA_OP_CLOCK_GETRES); } diff --git a/libsrc/rp6502/gettime.c b/libsrc/rp6502/gettime.c index b40615e9e..ee63c31ec 100644 --- a/libsrc/rp6502/gettime.c +++ b/libsrc/rp6502/gettime.c @@ -1,20 +1,12 @@ -/* - * Copyright (c) 2023 Rumbledethumps - * - * SPDX-License-Identifier: Zlib - * SPDX-License-Identifier: BSD-3-Clause - * SPDX-License-Identifier: Unlicense - */ - #include <rp6502.h> #include <time.h> -extern int __clock_gettimespec(struct timespec *ts, unsigned char op); +extern int __clock_gettimespec (struct timespec* ts, unsigned char op); -int clock_gettime(clockid_t clock_id, struct timespec *tp) +int clock_gettime (clockid_t clock_id, struct timespec* tp) { (void)clock_id; /* time.s doesn't set the stack value for clock_id (bug?) */ - ria_set_ax(CLOCK_REALTIME); - return __clock_gettimespec(tp, RIA_OP_CLOCK_GETTIME); + ria_set_ax (CLOCK_REALTIME); + return __clock_gettimespec (tp, RIA_OP_CLOCK_GETTIME); } diff --git a/libsrc/rp6502/gettimespec.c b/libsrc/rp6502/gettimespec.c index ef136c6fe..4dc3a0db3 100644 --- a/libsrc/rp6502/gettimespec.c +++ b/libsrc/rp6502/gettimespec.c @@ -1,22 +1,13 @@ -/* - * Copyright (c) 2023 Rumbledethumps - * - * SPDX-License-Identifier: Zlib - * SPDX-License-Identifier: BSD-3-Clause - * SPDX-License-Identifier: Unlicense - */ - #include <rp6502.h> #include <time.h> -int __clock_gettimespec(struct timespec *ts, unsigned char op) +int __clock_gettimespec (struct timespec* ts, unsigned char op) /* Internal method shared by clock_getres and clock_gettime. */ { - int ax = ria_call_int_errno(op); - if (ax >= 0) - { - ts->tv_sec = ria_pop_long(); - ts->tv_nsec = ria_pop_long(); + int ax = ria_call_int_errno (op); + if (ax >= 0) { + ts->tv_sec = ria_pop_long (); + ts->tv_nsec = ria_pop_long (); } return ax; } diff --git a/libsrc/rp6502/gettimezone.c b/libsrc/rp6502/gettimezone.c index db9060967..90b2e568f 100644 --- a/libsrc/rp6502/gettimezone.c +++ b/libsrc/rp6502/gettimezone.c @@ -1,24 +1,15 @@ -/* - * Copyright (c) 2023 Rumbledethumps - * - * SPDX-License-Identifier: Zlib - * SPDX-License-Identifier: BSD-3-Clause - * SPDX-License-Identifier: Unlicense - */ - #include <rp6502.h> #include <time.h> -int clock_gettimezone(clockid_t clock_id, struct _timezone *tz) +int clock_gettimezone (clockid_t clock_id, struct _timezone* tz) { int ax; - ria_set_ax(clock_id); - ax = ria_call_int_errno(RIA_OP_CLOCK_GETTIMEZONE); - if (ax >= 0) - { + ria_set_ax (clock_id); + ax = ria_call_int_errno (RIA_OP_CLOCK_GETTIMEZONE); + if (ax >= 0) { char i; - for (i = 0; i < sizeof(struct _timezone); i++) - ((char *)tz)[i] = ria_pop_char(); + for (i = 0; i < sizeof (struct _timezone); i++) + ((char*)tz)[i] = ria_pop_char (); } return ax; } diff --git a/libsrc/rp6502/initenv.s b/libsrc/rp6502/initenv.s index b6546e320..180b25c67 100644 --- a/libsrc/rp6502/initenv.s +++ b/libsrc/rp6502/initenv.s @@ -1,8 +1,6 @@ -; Copyright (c) 2023 Rumbledethumps ; -; SPDX-License-Identifier: Zlib -; SPDX-License-Identifier: BSD-3-Clause -; SPDX-License-Identifier: Unlicense +; 2023, Rumbledethumps +; .constructor initenv, 24 .import __environ, __envcount, __envsize diff --git a/libsrc/rp6502/irq.s b/libsrc/rp6502/irq.s index ffc152aac..d7d2e6ec5 100644 --- a/libsrc/rp6502/irq.s +++ b/libsrc/rp6502/irq.s @@ -1,8 +1,7 @@ -; Copyright (c) 2023 Rumbledethumps ; -; SPDX-License-Identifier: Zlib -; SPDX-License-Identifier: BSD-3-Clause -; SPDX-License-Identifier: Unlicense +; 2023, Rumbledethumps +; +; Enables the C IRQ tools .export initirq, doneirq .import callirq, _exit diff --git a/libsrc/rp6502/lrand.c b/libsrc/rp6502/lrand.c index 9a23390e5..6434425df 100644 --- a/libsrc/rp6502/lrand.c +++ b/libsrc/rp6502/lrand.c @@ -1,14 +1,6 @@ -/* - * Copyright (c) 2023 Rumbledethumps - * - * SPDX-License-Identifier: Zlib - * SPDX-License-Identifier: BSD-3-Clause - * SPDX-License-Identifier: Unlicense - */ - #include <rp6502.h> -long __fastcall__ lrand(void) +long __fastcall__ lrand (void) { - return ria_call_long(RIA_OP_LRAND); + return ria_call_long (RIA_OP_LRAND); } diff --git a/libsrc/rp6502/lseek.c b/libsrc/rp6502/lseek.c index afa590e63..29506612c 100644 --- a/libsrc/rp6502/lseek.c +++ b/libsrc/rp6502/lseek.c @@ -1,19 +1,11 @@ -/* - * Copyright (c) 2023 Rumbledethumps - * - * SPDX-License-Identifier: Zlib - * SPDX-License-Identifier: BSD-3-Clause - * SPDX-License-Identifier: Unlicense - */ - #include <rp6502.h> #include <unistd.h> -off_t __fastcall__ lseek(int fd, off_t offset, int whence) +off_t __fastcall__ lseek (int fd, off_t offset, int whence) { /* Modified argument order for short stacking offset */ - ria_push_long(offset); - ria_push_char(whence); - ria_set_ax(fd); - return ria_call_long_errno(RIA_OP_LSEEK); + ria_push_long (offset); + ria_push_char (whence); + ria_set_ax (fd); + return ria_call_long_errno (RIA_OP_LSEEK); } diff --git a/libsrc/rp6502/mainargs.s b/libsrc/rp6502/mainargs.s index 886e39e02..152020022 100644 --- a/libsrc/rp6502/mainargs.s +++ b/libsrc/rp6502/mainargs.s @@ -1,8 +1,7 @@ -; Copyright (c) 2023 Rumbledethumps ; -; SPDX-License-Identifier: Zlib -; SPDX-License-Identifier: BSD-3-Clause -; SPDX-License-Identifier: Unlicense +; 2023, Rumbledethumps +; +; No arguments .constructor initmainargs, 24 .import __argc, __argv diff --git a/libsrc/rp6502/open.c b/libsrc/rp6502/open.c index 962614045..ab3a374a2 100644 --- a/libsrc/rp6502/open.c +++ b/libsrc/rp6502/open.c @@ -1,26 +1,16 @@ -/* - * Copyright (c) 2023 Rumbledethumps - * - * SPDX-License-Identifier: Zlib - * SPDX-License-Identifier: BSD-3-Clause - * SPDX-License-Identifier: Unlicense - */ - #include <rp6502.h> #include <errno.h> #include <string.h> -int __cdecl__ open(const char *name, int flags, ...) +int __cdecl__ open (const char* name, int flags, ...) { - size_t namelen = strlen(name); - if (namelen > 255) - { - return _mappederrno(EINVAL); + size_t namelen = strlen (name); + if (namelen > 255) { + return _mappederrno (EINVAL); } - while (namelen) - { - ria_push_char(name[--namelen]); + while (namelen) { + ria_push_char (name[--namelen]); } - ria_set_ax(flags); - return ria_call_int_errno(RIA_OP_OPEN); + ria_set_ax (flags); + return ria_call_int_errno (RIA_OP_OPEN); } diff --git a/libsrc/rp6502/phi2.c b/libsrc/rp6502/phi2.c index 095580c97..1275e256e 100644 --- a/libsrc/rp6502/phi2.c +++ b/libsrc/rp6502/phi2.c @@ -1,14 +1,6 @@ -/* - * Copyright (c) 2023 Rumbledethumps - * - * SPDX-License-Identifier: Zlib - * SPDX-License-Identifier: BSD-3-Clause - * SPDX-License-Identifier: Unlicense - */ - #include <rp6502.h> -int __fastcall__ phi2(void) +int __fastcall__ phi2 (void) { - return ria_call_int(RIA_OP_PHI2); + return ria_call_int (RIA_OP_PHI2); } diff --git a/libsrc/rp6502/randomize.c b/libsrc/rp6502/randomize.c index a2050c4aa..3299e8c68 100644 --- a/libsrc/rp6502/randomize.c +++ b/libsrc/rp6502/randomize.c @@ -1,16 +1,8 @@ -/* - * Copyright (c) 2023 Rumbledethumps - * - * SPDX-License-Identifier: Zlib - * SPDX-License-Identifier: BSD-3-Clause - * SPDX-License-Identifier: Unlicense - */ - #include <rp6502.h> #include <stdlib.h> // Non-standard cc65 -void _randomize(void) +void _randomize (void) { - srand(ria_call_int(RIA_OP_LRAND)); + srand (ria_call_int (RIA_OP_LRAND)); } diff --git a/libsrc/rp6502/read.c b/libsrc/rp6502/read.c index d0b389c4a..eb96f779c 100644 --- a/libsrc/rp6502/read.c +++ b/libsrc/rp6502/read.c @@ -1,29 +1,18 @@ -/* - * Copyright (c) 2023 Rumbledethumps - * - * SPDX-License-Identifier: Zlib - * SPDX-License-Identifier: BSD-3-Clause - * SPDX-License-Identifier: Unlicense - */ - #include <rp6502.h> #include <unistd.h> -int __fastcall__ read(int fildes, void *buf, unsigned count) +int __fastcall__ read (int fildes, void* buf, unsigned count) { int total = 0; - while (count) - { + while (count) { unsigned blockcount = (count > 256) ? 256 : count; - int bytes_read = read_xstack(&((char *)buf)[total], blockcount, fildes); - if (bytes_read < 0) - { + int bytes_read = read_xstack (&((char*)buf)[total], blockcount, fildes); + if (bytes_read < 0) { return bytes_read; } total += bytes_read; count -= bytes_read; - if (bytes_read < blockcount) - { + if (bytes_read < blockcount) { break; } } diff --git a/libsrc/rp6502/read_xram.c b/libsrc/rp6502/read_xram.c index 565744e11..f88a036ee 100644 --- a/libsrc/rp6502/read_xram.c +++ b/libsrc/rp6502/read_xram.c @@ -1,17 +1,9 @@ -/* - * Copyright (c) 2023 Rumbledethumps - * - * SPDX-License-Identifier: Zlib - * SPDX-License-Identifier: BSD-3-Clause - * SPDX-License-Identifier: Unlicense - */ - #include <rp6502.h> -int __fastcall__ read_xram(unsigned buf, unsigned count, int fildes) +int __fastcall__ read_xram (unsigned buf, unsigned count, int fildes) { - ria_push_int(buf); - ria_push_int(count); - ria_set_ax(fildes); - return ria_call_int_errno(RIA_OP_READ_XRAM); + ria_push_int (buf); + ria_push_int (count); + ria_set_ax (fildes); + return ria_call_int_errno (RIA_OP_READ_XRAM); } diff --git a/libsrc/rp6502/read_xstack.c b/libsrc/rp6502/read_xstack.c index c3b6d098e..70eebad2f 100644 --- a/libsrc/rp6502/read_xstack.c +++ b/libsrc/rp6502/read_xstack.c @@ -1,22 +1,13 @@ -/* - * Copyright (c) 2023 Rumbledethumps - * - * SPDX-License-Identifier: Zlib - * SPDX-License-Identifier: BSD-3-Clause - * SPDX-License-Identifier: Unlicense - */ - #include <rp6502.h> -int __fastcall__ read_xstack(void *buf, unsigned count, int fildes) +int __fastcall__ read_xstack (void* buf, unsigned count, int fildes) { int i, ax; - ria_push_int(count); - ria_set_ax(fildes); - ax = ria_call_int_errno(RIA_OP_READ_XSTACK); - for (i = 0; i < ax; i++) - { - ((char *)buf)[i] = ria_pop_char(); + ria_push_int (count); + ria_set_ax (fildes); + ax = ria_call_int_errno (RIA_OP_READ_XSTACK); + for (i = 0; i < ax; i++) { + ((char*)buf)[i] = ria_pop_char (); } return ax; } diff --git a/libsrc/rp6502/ria.s b/libsrc/rp6502/ria.s index f040fca61..a1b53efb1 100644 --- a/libsrc/rp6502/ria.s +++ b/libsrc/rp6502/ria.s @@ -1,8 +1,7 @@ -; Copyright (c) 2023 Rumbledethumps ; -; SPDX-License-Identifier: Zlib -; SPDX-License-Identifier: BSD-3-Clause -; SPDX-License-Identifier: Unlicense +; 2023, Rumbledethumps +; +; Helpers for building API shims .include "rp6502.inc" diff --git a/libsrc/rp6502/settime.c b/libsrc/rp6502/settime.c index 69d4dafe5..1ba1d2e3e 100644 --- a/libsrc/rp6502/settime.c +++ b/libsrc/rp6502/settime.c @@ -1,18 +1,10 @@ -/* - * Copyright (c) 2023 Rumbledethumps - * - * SPDX-License-Identifier: Zlib - * SPDX-License-Identifier: BSD-3-Clause - * SPDX-License-Identifier: Unlicense - */ - #include <rp6502.h> #include <time.h> -int clock_settime(clockid_t clock_id, const struct timespec *tp) +int clock_settime (clockid_t clock_id, const struct timespec* tp) { - ria_set_ax(clock_id); - ria_push_long(tp->tv_nsec); - ria_push_long(tp->tv_sec); - return ria_call_int_errno(RIA_OP_CLOCK_SETTIME); + ria_set_ax (clock_id); + ria_push_long (tp->tv_nsec); + ria_push_long (tp->tv_sec); + return ria_call_int_errno (RIA_OP_CLOCK_SETTIME); } diff --git a/libsrc/rp6502/stdin_opt.c b/libsrc/rp6502/stdin_opt.c index f01d1036c..3a9ccfde4 100644 --- a/libsrc/rp6502/stdin_opt.c +++ b/libsrc/rp6502/stdin_opt.c @@ -1,16 +1,9 @@ -/* - * Copyright (c) 2023 Rumbledethumps - * - * SPDX-License-Identifier: Zlib - * SPDX-License-Identifier: BSD-3-Clause - * SPDX-License-Identifier: Unlicense - */ #include <rp6502.h> -int __fastcall__ stdin_opt(unsigned long ctrl_bits, unsigned char str_length) +int __fastcall__ stdin_opt (unsigned long ctrl_bits, unsigned char str_length) { - ria_push_long(ctrl_bits); - ria_set_a(str_length); - return ria_call_int_errno(RIA_OP_STDIN_OPT); + ria_push_long (ctrl_bits); + ria_set_a (str_length); + return ria_call_int_errno (RIA_OP_STDIN_OPT); } diff --git a/libsrc/rp6502/sysremove.c b/libsrc/rp6502/sysremove.c index 6b143d672..d8c1ced98 100644 --- a/libsrc/rp6502/sysremove.c +++ b/libsrc/rp6502/sysremove.c @@ -1,26 +1,16 @@ -/* - * Copyright (c) 2023 Rumbledethumps - * - * SPDX-License-Identifier: Zlib - * SPDX-License-Identifier: BSD-3-Clause - * SPDX-License-Identifier: Unlicense - */ - #include <rp6502.h> #include <errno.h> #include <string.h> -unsigned char __fastcall__ _sysremove(const char *name) +unsigned char __fastcall__ _sysremove (const char* name) { size_t namelen; - namelen = strlen(name); - if (namelen > 255) - { - return _mappederrno(EINVAL); + namelen = strlen (name); + if (namelen > 255) { + return _mappederrno (EINVAL); } - while (namelen) - { - ria_push_char(name[--namelen]); + while (namelen) { + ria_push_char (name[--namelen]); } - return ria_call_int_errno(RIA_OP_UNLINK); + return ria_call_int_errno (RIA_OP_UNLINK); } diff --git a/libsrc/rp6502/sysrename.c b/libsrc/rp6502/sysrename.c index 6d42752ae..96eca24cf 100644 --- a/libsrc/rp6502/sysrename.c +++ b/libsrc/rp6502/sysrename.c @@ -1,32 +1,21 @@ -/* - * Copyright (c) 2023 Rumbledethumps - * - * SPDX-License-Identifier: Zlib - * SPDX-License-Identifier: BSD-3-Clause - * SPDX-License-Identifier: Unlicense - */ - #include <rp6502.h> #include <errno.h> #include <string.h> -unsigned char __fastcall__ _sysrename(const char *oldpath, const char *newpath) +unsigned char __fastcall__ _sysrename (const char* oldpath, const char* newpath) { size_t oldpathlen, newpathlen; - oldpathlen = strlen(oldpath); - newpathlen = strlen(newpath); - if (oldpathlen + newpathlen > 254) - { - return _mappederrno(EINVAL); + oldpathlen = strlen (oldpath); + newpathlen = strlen (newpath); + if (oldpathlen + newpathlen > 254) { + return _mappederrno (EINVAL); } - while (oldpathlen) - { - ria_push_char(oldpath[--oldpathlen]); + while (oldpathlen) { + ria_push_char (oldpath[--oldpathlen]); } - ria_push_char(0); - while (newpathlen) - { - ria_push_char(newpath[--newpathlen]); + ria_push_char (0); + while (newpathlen) { + ria_push_char (newpath[--newpathlen]); } - return ria_call_int_errno(RIA_OP_RENAME); + return ria_call_int_errno (RIA_OP_RENAME); } diff --git a/libsrc/rp6502/write.c b/libsrc/rp6502/write.c index f14c91e59..11241dab5 100644 --- a/libsrc/rp6502/write.c +++ b/libsrc/rp6502/write.c @@ -1,29 +1,18 @@ -/* - * Copyright (c) 2023 Rumbledethumps - * - * SPDX-License-Identifier: Zlib - * SPDX-License-Identifier: BSD-3-Clause - * SPDX-License-Identifier: Unlicense - */ - #include <rp6502.h> #include <unistd.h> -int __fastcall__ write(int fildes, const void *buf, unsigned count) +int __fastcall__ write (int fildes, const void* buf, unsigned count) { int ax, total = 0; - while (count) - { + while (count) { int blockcount = (count > 256) ? 256 : count; - ax = write_xstack(&((char *)buf)[total], blockcount, fildes); - if (ax < 0) - { + ax = write_xstack (&((char*)buf)[total], blockcount, fildes); + if (ax < 0) { return ax; } total += ax; count -= ax; - if (ax < blockcount) - { + if (ax < blockcount) { break; } } diff --git a/libsrc/rp6502/write_xram.c b/libsrc/rp6502/write_xram.c index 379e5a667..31a553813 100644 --- a/libsrc/rp6502/write_xram.c +++ b/libsrc/rp6502/write_xram.c @@ -1,17 +1,9 @@ -/* - * Copyright (c) 2023 Rumbledethumps - * - * SPDX-License-Identifier: Zlib - * SPDX-License-Identifier: BSD-3-Clause - * SPDX-License-Identifier: Unlicense - */ - #include <rp6502.h> -int __fastcall__ write_xram(unsigned buf, unsigned count, int fildes) +int __fastcall__ write_xram (unsigned buf, unsigned count, int fildes) { - ria_push_int(buf); - ria_push_int(count); - ria_set_ax(fildes); - return ria_call_int_errno(RIA_OP_WRITE_XRAM); + ria_push_int (buf); + ria_push_int (count); + ria_set_ax (fildes); + return ria_call_int_errno (RIA_OP_WRITE_XRAM); } diff --git a/libsrc/rp6502/write_xstack.c b/libsrc/rp6502/write_xstack.c index 4507193ea..b53aa95e7 100644 --- a/libsrc/rp6502/write_xstack.c +++ b/libsrc/rp6502/write_xstack.c @@ -1,20 +1,11 @@ -/* - * Copyright (c) 2023 Rumbledethumps - * - * SPDX-License-Identifier: Zlib - * SPDX-License-Identifier: BSD-3-Clause - * SPDX-License-Identifier: Unlicense - */ - #include <rp6502.h> -int __fastcall__ write_xstack(const void *buf, unsigned count, int fildes) +int __fastcall__ write_xstack (const void* buf, unsigned count, int fildes) { unsigned i; - for (i = count; i;) - { - ria_push_char(((char *)buf)[--i]); + for (i = count; i;) { + ria_push_char (((char*)buf)[--i]); } - ria_set_ax(fildes); - return ria_call_int_errno(RIA_OP_WRITE_XSTACK); + ria_set_ax (fildes); + return ria_call_int_errno (RIA_OP_WRITE_XSTACK); } diff --git a/libsrc/rp6502/xreg.s b/libsrc/rp6502/xreg.s index 81cba6733..40d4a6705 100644 --- a/libsrc/rp6502/xreg.s +++ b/libsrc/rp6502/xreg.s @@ -1,9 +1,6 @@ -; Copyright (c) 2023 Rumbledethumps ; -; SPDX-License-Identifier: Zlib -; SPDX-License-Identifier: BSD-3-Clause -; SPDX-License-Identifier: Unlicense - +; 2023, Rumbledethumps +; ; CC65 will promote variadic char arguments to int. It will not demote longs. ; int __cdecl__ xreg(char device, char channel, unsigned char address, ...);