| Commit message (Collapse) | Author | Age |
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
This ensures that the beeps will work even before the configuration
has been loaded.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Flash the whole thing all at once to reduce the number of steps during
turnon.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
This way it can be incorporated into multiple operating systems more easily.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
This just passes any bytes with the high bit set through the system so
programs can include UTF-8 in strings and symbols. What the heck.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
We've made things smaller, so there's (barely) space for this now.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
This lets us build a smaller lisp that is just missing some aliases
for existing functionality to save rom space.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Run tests on both tiny and full scheme test programs.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
This improves the USB performance of ChaosKey so that it doesn't NAK
during data transfers at all.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
This also allows us to stop shadowing USB rx buffers in system ram
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
This shouldn't have much of an effect, but shows how double buffering
works.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Use the 16-bit USB memory directly, avoiding the buffer space and the copy
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
These counters are only useful for helping debug the USB driver.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Avoid using puts, which can be a large library function.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Instead of just reading from stdin with no echo or editing.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
And lots of other changes, including freeing unreferenced atoms.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Add a bunch of string and vector functions from r7rs. I think most
everything is here now.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Allow all those specified in r7rs
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
It can default to #f
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
This is used enough to warrant a builtin, rather than lisp implementation
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Just update to use ao_scheme_printf
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Allocate a blank string.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
This allows building with as much constant data as will fit.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Provides a native version of for-each that is tail recursive, rather
than having it just use map and discard the return value.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
This is an r7rs extension which allows you to extract a subset of the
vector.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
The 'parsing a vector' state value wasn't getting cleared at the end
of the vector, so that (#(1 2) (3 4) returned (#(1 2) #(3 4)
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
read debugging uses this format.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Was using the same vals for all frames, which just doesn't work well.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Does what 'quotient' did before, now quotient rounds towards zero
while floor-quotient rounds down.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Not just the current version.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
It's primitive, but might serve to read ADC values. Untested.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
Beeper moved from PB0 to PB1 (Tim3 CH4)
Drogue fire moved from PB6 to PB3
Bootloader moved from PB1 to PB6
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
With scheme shrinking a bit, there's now space for these useful macros.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Instead of having a random set of stash arrays with explicit indices
used by callers, just have a general heap. Less error prone, and less code.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
|
| |
AO_SCHEME_IS_CONST -> ao_scheme_is_const_addr
AO_SCHEME_IS_POOL -> ao_scheme_is_pool_addr
Provides better typechecking and avoids confusion with
ao_scheme_is_const inline (which takes an ao_poly instead of a void *)
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
This inline was already defined; just use it. Also, switch some places
to use ao_scheme_is_pair instead as appropriate.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Fix the double underscore in this name. Ick.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Performance isn't interesting, and it's nice to have a bare system
ready for debugging.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
make it easy to switch between debug and optimized builds.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
When defining a lambda with varargs, the args are not a list as the
final element is not a pair or nil. Use pair? instead of list? to
detect this form correctly.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
|
| |
When apply is invoked on any function, the cons in the argument list
cannot be immediately freed as they have been passed to the
function. That applies to both built-ins as well as lambdas; this
patch removes the special ao_scheme_skip_cons_free global and just
marks the stack in both cases.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
|
| |
Unify output functions and add bool to switch between write and
display mode. Make that only affect strings (as per r⁷rs).
Use print recursion detection in frame and stack code, eliminating
PRINT flags in type field.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
This level of optimization caused trouble, so use it all of the time.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
After marking a set of memory chunks, it's possible that all of them
will be packed tight against 'top', in which case none of them will be
moving. In that case, gcc 7.2.0 appears to generate incorrect code
causing the loop to be abandoned, meaning that we don't actually
collect anything at all.
Add a quick short-circuit test just after the mark phase that skips
the code which wouldn't do anything in this case.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Allow applications to redefine these as desired, add more flexibility
in what the various memory debugging flags can do.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
This can catch a host of interpreter bugs; best to abandon the program
when it happens.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
This flags any object being printed and checks before recursing to
avoid infinite loops.
Signed-off-by: Keith Packard <keithp@keithp.com>
|