![]() |
LambLisp 01 Red Fox Alpha
From AI to Actuator
|
Functions | |
| Sexpr_t | mop3_cio_digitalRead (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec) |
| Sexpr_t | mop3_cio_digitalWrite (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec) |
| Sexpr_t | mop3_cio_pinMode (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec) |
| Sexpr_t | mop3_cio_analogRead (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec) |
| Sexpr_t | mop3_cio_analogWrite (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec) |
| Sexpr_t | mop3_cio_delay_ms (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec) |
| Sexpr_t | mop3_cio_delay_us (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec) |
| Sexpr_t | mop3_cio_analogReadResolution (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec) |
| Sexpr_t | mop3_cio_analogReference (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec) |
| Sexpr_t | mop3_cio_analogWriteResolution (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec) |
| Sexpr_t | mop3_cio_noTone (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec) |
| Sexpr_t | mop3_cio_pulseIn (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec) |
| Sexpr_t | mop3_cio_pulseInLong (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec) |
| Sexpr_t | mop3_cio_shiftIn (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec) |
| Sexpr_t | mop3_cio_shiftOut (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec) |
| Sexpr_t | mop3_cio_tone (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec) |
| Sexpr_t | mop3_cio_bit (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec) |
| Sexpr_t | mop3_cio_bitClear (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec) |
| Sexpr_t | mop3_cio_bitRead (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec) |
| Sexpr_t | mop3_cio_bitSet (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec) |
| Sexpr_t | mop3_cio_bitWrite (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec) |
| Sexpr_t | mop3_cio_highByte (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec) |
| Sexpr_t | mop3_cio_lowByte (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec) |
| Sexpr_t | mop3_cio_attachInterrupt (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec) |
| Sexpr_t | mop3_cio_detachInterrupt (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec) |
| Sexpr_t | mop3_cio_digitalPinToInterrupt (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec) |
| Sexpr_t | mop3_cio_interrupts (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec) |
| Sexpr_t | mop3_cio_noInterrupts (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec) |
| Sexpr_t | CommonIO_install_mop3 (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec) |
LambLisp GPIO & Basic I/O builtins.
| Sexpr_t mop3_cio_digitalRead | ( | Lamb & | lamb, |
| Sexpr_t | sexpr, | ||
| Sexpr_t | env_exec ) |
Read digital pin state; returns #t if HIGH, #f if LOW.
| Sexpr_t mop3_cio_digitalWrite | ( | Lamb & | lamb, |
| Sexpr_t | sexpr, | ||
| Sexpr_t | env_exec ) |
Write digital pin HIGH/LOW. Level is Scheme-truthy (only #f is LOW) with one pragmatic extension: a NUMERIC ZERO also drives LOW. So (digitalWrite p #f) and (digitalWrite p 0) both give LOW; (digitalWrite p #t) and (digitalWrite p 1) give HIGH.
| Sexpr_t mop3_cio_pinMode | ( | Lamb & | lamb, |
| Sexpr_t | sexpr, | ||
| Sexpr_t | env_exec ) |
Configure a pin as INPUT, INPUT_PULLUP, or OUTPUT.
| Sexpr_t mop3_cio_analogRead | ( | Lamb & | lamb, |
| Sexpr_t | sexpr, | ||
| Sexpr_t | env_exec ) |
Read analog pin; returns raw ADC integer value.
| Sexpr_t mop3_cio_analogWrite | ( | Lamb & | lamb, |
| Sexpr_t | sexpr, | ||
| Sexpr_t | env_exec ) |
Write analog PWM value to pin.
| Sexpr_t mop3_cio_delay_ms | ( | Lamb & | lamb, |
| Sexpr_t | sexpr, | ||
| Sexpr_t | env_exec ) |
Delay execution by the given number of milliseconds.
| Sexpr_t mop3_cio_delay_us | ( | Lamb & | lamb, |
| Sexpr_t | sexpr, | ||
| Sexpr_t | env_exec ) |
Delay execution by the given number of microseconds.
| Sexpr_t mop3_cio_analogReadResolution | ( | Lamb & | lamb, |
| Sexpr_t | sexpr, | ||
| Sexpr_t | env_exec ) |
Set ADC resolution in bits (stub – platform-dependent).
| Sexpr_t mop3_cio_analogReference | ( | Lamb & | lamb, |
| Sexpr_t | sexpr, | ||
| Sexpr_t | env_exec ) |
Set ADC voltage reference (stub – platform-dependent).
| Sexpr_t mop3_cio_analogWriteResolution | ( | Lamb & | lamb, |
| Sexpr_t | sexpr, | ||
| Sexpr_t | env_exec ) |
Set DAC/PWM resolution in bits (stub – platform-dependent).
| Sexpr_t mop3_cio_noTone | ( | Lamb & | lamb, |
| Sexpr_t | sexpr, | ||
| Sexpr_t | env_exec ) |
Stop tone generation on a pin (stub). noTone had a backend all along – both the vendor core and LLArduino provide it – so the stub was silently discarding a call that would have worked.
| Sexpr_t mop3_cio_pulseIn | ( | Lamb & | lamb, |
| Sexpr_t | sexpr, | ||
| Sexpr_t | env_exec ) |
Measure a pulse on a pin; returns duration in microseconds (stub).
| Sexpr_t mop3_cio_pulseInLong | ( | Lamb & | lamb, |
| Sexpr_t | sexpr, | ||
| Sexpr_t | env_exec ) |
Like pulseIn but supports longer pulses (stub).
| Sexpr_t mop3_cio_shiftIn | ( | Lamb & | lamb, |
| Sexpr_t | sexpr, | ||
| Sexpr_t | env_exec ) |
Shift in a byte of data one bit at a time (stub).
| Sexpr_t mop3_cio_shiftOut | ( | Lamb & | lamb, |
| Sexpr_t | sexpr, | ||
| Sexpr_t | env_exec ) |
Shift out a byte of data one bit at a time (stub).
| Sexpr_t mop3_cio_tone | ( | Lamb & | lamb, |
| Sexpr_t | sexpr, | ||
| Sexpr_t | env_exec ) |
Generate a square wave tone on a pin at the given frequency and optional duration (ms).
| Sexpr_t mop3_cio_bit | ( | Lamb & | lamb, |
| Sexpr_t | sexpr, | ||
| Sexpr_t | env_exec ) |
Return a bitmask with only bit n set (stub). These seven were registered but returned #UNDEF on EVERY target, including the ESP32 boards – callable, documented, and silently useless. They are pure arithmetic with no hardware behind them, so there was never a platform reason for the stub. Found by the LLArduino conformance suite on its first run. DIVERGENCE FROM ARDUINO, STATED: Arduino's bitSet/bitClear/bitWrite are MACROS that MUTATE their first argument in place. Scheme has no integer to mutate, so these RETURN the new value and the caller rebinds. Same result, different shape; a sketch ported verbatim must assign.
| Sexpr_t mop3_cio_bitClear | ( | Lamb & | lamb, |
| Sexpr_t | sexpr, | ||
| Sexpr_t | env_exec ) |
Clear a specific bit in an integer (stub).
| Sexpr_t mop3_cio_bitRead | ( | Lamb & | lamb, |
| Sexpr_t | sexpr, | ||
| Sexpr_t | env_exec ) |
Read a specific bit from an integer (stub).
| Sexpr_t mop3_cio_bitSet | ( | Lamb & | lamb, |
| Sexpr_t | sexpr, | ||
| Sexpr_t | env_exec ) |
Set a specific bit in an integer (stub).
| Sexpr_t mop3_cio_bitWrite | ( | Lamb & | lamb, |
| Sexpr_t | sexpr, | ||
| Sexpr_t | env_exec ) |
Write a specific bit in an integer (stub).
| Sexpr_t mop3_cio_highByte | ( | Lamb & | lamb, |
| Sexpr_t | sexpr, | ||
| Sexpr_t | env_exec ) |
Return the high byte of a two-byte integer (stub).
| Sexpr_t mop3_cio_lowByte | ( | Lamb & | lamb, |
| Sexpr_t | sexpr, | ||
| Sexpr_t | env_exec ) |
Return the low byte of a two-byte integer (stub).
| Sexpr_t mop3_cio_attachInterrupt | ( | Lamb & | lamb, |
| Sexpr_t | sexpr, | ||
| Sexpr_t | env_exec ) |
Attach an ISR to a digital pin interrupt (stub).
| Sexpr_t mop3_cio_detachInterrupt | ( | Lamb & | lamb, |
| Sexpr_t | sexpr, | ||
| Sexpr_t | env_exec ) |
Detach the ISR from a digital pin interrupt (stub).
| Sexpr_t mop3_cio_digitalPinToInterrupt | ( | Lamb & | lamb, |
| Sexpr_t | sexpr, | ||
| Sexpr_t | env_exec ) |
Return the interrupt number for a given digital pin (stub).
| Sexpr_t mop3_cio_interrupts | ( | Lamb & | lamb, |
| Sexpr_t | sexpr, | ||
| Sexpr_t | env_exec ) |
Re-enable interrupts globally (stub).
| Sexpr_t mop3_cio_noInterrupts | ( | Lamb & | lamb, |
| Sexpr_t | sexpr, | ||
| Sexpr_t | env_exec ) |
Disable interrupts globally (stub).
| Sexpr_t CommonIO_install_mop3 | ( | Lamb & | lamb, |
| Sexpr_t | sexpr, | ||
| Sexpr_t | env_exec ) |
s + ascii.dec(), never d, for an LL_int32 – int32_t is long on the xtensa toolchain and int on x86-64, so a fixed specifier is UB on one of them.