Version 4.4d - 22nd May 2023
This commit is contained in:
parent
cca17b6027
commit
20b74bc058
|
@ -1,5 +1,5 @@
|
||||||
/* uLisp ARM Release 4.4c - www.ulisp.com
|
/* uLisp ARM Release 4.4d - www.ulisp.com
|
||||||
David Johnson-Davies - www.technoblogy.com - 12th April 2023
|
David Johnson-Davies - www.technoblogy.com - 22nd May 2023
|
||||||
|
|
||||||
Licensed under the MIT license: https://opensource.org/licenses/MIT
|
Licensed under the MIT license: https://opensource.org/licenses/MIT
|
||||||
*/
|
*/
|
||||||
|
@ -1331,10 +1331,6 @@ object *divide_floats (object *args, float fresult) {
|
||||||
return makefloat(fresult);
|
return makefloat(fresult);
|
||||||
}
|
}
|
||||||
|
|
||||||
int myround (float number) {
|
|
||||||
return (number >= 0) ? (int)(number + 0.5) : (int)(number - 0.5);
|
|
||||||
}
|
|
||||||
|
|
||||||
object *compare (object *args, bool lt, bool gt, bool eq) {
|
object *compare (object *args, bool lt, bool gt, bool eq) {
|
||||||
object *arg1 = first(args);
|
object *arg1 = first(args);
|
||||||
args = cdr(args);
|
args = cdr(args);
|
||||||
|
@ -2055,10 +2051,10 @@ void I2Cstop (TwoWire *port, uint8_t read) {
|
||||||
#if defined(ARDUINO_NRF52840_CLUE) || defined(ARDUINO_GRAND_CENTRAL_M4) || defined(ARDUINO_PYBADGE_M4) || defined(ARDUINO_PYGAMER_M4) || defined(ARDUINO_TEENSY40) || defined(ARDUINO_TEENSY41) || defined(ARDUINO_RASPBERRY_PI_PICO) || defined(ARDUINO_RASPBERRY_PI_PICO_W)
|
#if defined(ARDUINO_NRF52840_CLUE) || defined(ARDUINO_GRAND_CENTRAL_M4) || defined(ARDUINO_PYBADGE_M4) || defined(ARDUINO_PYGAMER_M4) || defined(ARDUINO_TEENSY40) || defined(ARDUINO_TEENSY41) || defined(ARDUINO_RASPBERRY_PI_PICO) || defined(ARDUINO_RASPBERRY_PI_PICO_W)
|
||||||
#define ULISP_SPI1
|
#define ULISP_SPI1
|
||||||
#endif
|
#endif
|
||||||
#if defined(ARDUINO_WIO_TERMINAL) || defined(ARDUINO_BBC_MICROBIT_V2) || defined(ARDUINO_TEENSY40) || defined(ARDUINO_TEENSY41) || defined(MAX32620) || defined(ARDUINO_RASPBERRY_PI_PICO) || defined(ARDUINO_RASPBERRY_PI_PICO_W) || defined(ARDUINO_ADAFRUIT_QTPY_RP2040) || defined(ARDUINO_ADAFRUIT_FEATHER_RP2040)
|
#if defined(ARDUINO_WIO_TERMINAL) || defined(ARDUINO_BBC_MICROBIT_V2) || defined(ARDUINO_TEENSY40) || defined(ARDUINO_TEENSY41) || defined(MAX32620) || defined(ARDUINO_RASPBERRY_PI_PICO) || defined(ARDUINO_RASPBERRY_PI_PICO_W) || defined(ARDUINO_ADAFRUIT_QTPY_RP2040) || defined(ARDUINO_ADAFRUIT_FEATHER_RP2040) || defined(ARDUINO_GRAND_CENTRAL_M4) || defined(ARDUINO_NRF52840_CIRCUITPLAY)
|
||||||
#define ULISP_I2C1
|
#define ULISP_I2C1
|
||||||
#endif
|
#endif
|
||||||
#if defined(ARDUINO_SAM_DUE) || defined(ARDUINO_TEENSY40) || defined(ARDUINO_TEENSY41)
|
#if defined(ARDUINO_SAM_DUE) || defined(ARDUINO_TEENSY40) || defined(ARDUINO_TEENSY41) || defined(ARDUINO_GRAND_CENTRAL_M4)
|
||||||
#define ULISP_SERIAL3
|
#define ULISP_SERIAL3
|
||||||
#elif defined(ARDUINO_RASPBERRY_PI_PICO) || defined(ARDUINO_RASPBERRY_PI_PICO_W)
|
#elif defined(ARDUINO_RASPBERRY_PI_PICO) || defined(ARDUINO_RASPBERRY_PI_PICO_W)
|
||||||
#define ULISP_SERIAL2
|
#define ULISP_SERIAL2
|
||||||
|
@ -2315,6 +2311,8 @@ void checkanalogread (int pin) {
|
||||||
if (!((pin>=14 && pin<=27) || (pin>=38 && pin<=41))) error(invalidpin, number(pin));
|
if (!((pin>=14 && pin<=27) || (pin>=38 && pin<=41))) error(invalidpin, number(pin));
|
||||||
#elif defined(ARDUINO_RASPBERRY_PI_PICO) || defined(ARDUINO_RASPBERRY_PI_PICO_W) || defined(ARDUINO_ADAFRUIT_FEATHER_RP2040) || defined(ARDUINO_ADAFRUIT_QTPY_RP2040) || defined(ARDUINO_SEEED_XIAO_RP2040)
|
#elif defined(ARDUINO_RASPBERRY_PI_PICO) || defined(ARDUINO_RASPBERRY_PI_PICO_W) || defined(ARDUINO_ADAFRUIT_FEATHER_RP2040) || defined(ARDUINO_ADAFRUIT_QTPY_RP2040) || defined(ARDUINO_SEEED_XIAO_RP2040)
|
||||||
if (!(pin>=26 && pin<=29)) error(invalidpin, number(pin));
|
if (!(pin>=26 && pin<=29)) error(invalidpin, number(pin));
|
||||||
|
#elif defined(ARDUINO_SANTIAGO)
|
||||||
|
if (!((pin>=14 && pin<=21))) error(invalidpin, number(pin));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2369,6 +2367,8 @@ void checkanalogwrite (int pin) {
|
||||||
if (!(pin>=0 && pin<=29)) error(invalidpin, number(pin));
|
if (!(pin>=0 && pin<=29)) error(invalidpin, number(pin));
|
||||||
#elif defined(ARDUINO_RASPBERRY_PI_PICO_W)
|
#elif defined(ARDUINO_RASPBERRY_PI_PICO_W)
|
||||||
if (!((pin>=0 && pin<=29) || pin == 32)) error(invalidpin, number(pin));
|
if (!((pin>=0 && pin<=29) || pin == 32)) error(invalidpin, number(pin));
|
||||||
|
#elif defined(ARDUINO_SANTIAGO)
|
||||||
|
if (!((pin>=0 && pin<=21))) error(invalidpin, number(pin));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3040,7 +3040,7 @@ object *sp_withspi (object *args, object *env) {
|
||||||
object *pair = cons(var, stream(SPISTREAM, pin + 128*address));
|
object *pair = cons(var, stream(SPISTREAM, pin + 128*address));
|
||||||
push(pair,env);
|
push(pair,env);
|
||||||
SPIClass *spiClass = &SPI;
|
SPIClass *spiClass = &SPI;
|
||||||
#if defined(ARDUINO_NRF52840_CLUE) || defined(ARDUINO_GRAND_CENTRAL_M4) || defined(ARDUINO_PYBADGE_M4) || defined(ARDUINO_PYGAMER_M4) || defined(ARDUINO_TEENSY40) || defined(ARDUINO_TEENSY41)
|
#if defined(ULISP_SPI1)
|
||||||
if (address == 1) spiClass = &SPI1;
|
if (address == 1) spiClass = &SPI1;
|
||||||
#endif
|
#endif
|
||||||
spiClass->begin();
|
spiClass->begin();
|
||||||
|
@ -4001,8 +4001,8 @@ object *fn_round (object *args, object *env) {
|
||||||
(void) env;
|
(void) env;
|
||||||
object *arg = first(args);
|
object *arg = first(args);
|
||||||
args = cdr(args);
|
args = cdr(args);
|
||||||
if (args != NULL) return number(myround(checkintfloat(arg) / checkintfloat(first(args))));
|
if (args != NULL) return number(round(checkintfloat(arg) / checkintfloat(first(args))));
|
||||||
else return number(myround(checkintfloat(arg)));
|
else return number(round(checkintfloat(arg)));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Characters
|
// Characters
|
||||||
|
@ -5602,6 +5602,11 @@ const char string241[] PROGMEM = ":gpio-oe";
|
||||||
const char string242[] PROGMEM = ":gpio-oe-set";
|
const char string242[] PROGMEM = ":gpio-oe-set";
|
||||||
const char string243[] PROGMEM = ":gpio-oe-clr";
|
const char string243[] PROGMEM = ":gpio-oe-clr";
|
||||||
const char string244[] PROGMEM = ":gpio-oe-xor";
|
const char string244[] PROGMEM = ":gpio-oe-xor";
|
||||||
|
#elif defined(ARDUINO_SANTIAGO)
|
||||||
|
const char string232[] PROGMEM = ":input";
|
||||||
|
const char string233[] PROGMEM = ":input-pullup";
|
||||||
|
const char string234[] PROGMEM = ":output";
|
||||||
|
const char string235[] PROGMEM = ":output-opendrain";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Documentation strings
|
// Documentation strings
|
||||||
|
@ -6520,6 +6525,11 @@ const tbl_entry_t lookup_table[] PROGMEM = {
|
||||||
{ string242, (fn_ptr_type)(SIO_BASE+SIO_GPIO_OE_SET_OFFSET), REGISTER, NULL },
|
{ string242, (fn_ptr_type)(SIO_BASE+SIO_GPIO_OE_SET_OFFSET), REGISTER, NULL },
|
||||||
{ string243, (fn_ptr_type)(SIO_BASE+SIO_GPIO_OE_CLR_OFFSET), REGISTER, NULL },
|
{ string243, (fn_ptr_type)(SIO_BASE+SIO_GPIO_OE_CLR_OFFSET), REGISTER, NULL },
|
||||||
{ string244, (fn_ptr_type)(SIO_BASE+SIO_GPIO_OE_XOR_OFFSET), REGISTER, NULL },
|
{ string244, (fn_ptr_type)(SIO_BASE+SIO_GPIO_OE_XOR_OFFSET), REGISTER, NULL },
|
||||||
|
#elif defined(ARDUINO_SANTIAGO)
|
||||||
|
{ string232, (fn_ptr_type)INPUT, PINMODE, NULL },
|
||||||
|
{ string233, (fn_ptr_type)INPUT_PULLUP, PINMODE, NULL },
|
||||||
|
{ string234, (fn_ptr_type)OUTPUT, PINMODE, NULL },
|
||||||
|
{ string235, (fn_ptr_type)OUTPUT_OPENDRAIN, PINMODE, NULL },
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -7332,7 +7342,7 @@ void setup () {
|
||||||
initenv();
|
initenv();
|
||||||
initsleep();
|
initsleep();
|
||||||
initgfx();
|
initgfx();
|
||||||
pfstring(PSTR("uLisp 4.4c "), pserial); pln(pserial);
|
pfstring(PSTR("uLisp 4.4d "), pserial); pln(pserial);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Read/Evaluate/Print loop
|
// Read/Evaluate/Print loop
|
||||||
|
|
Loading…
Reference in New Issue