Test ran at 2025-03-15 01:19:28.531917+00:00

SOLUTION:
blinkenlights=0.2.1: Project to blink LEDs in interesting patterns
Origin: commit 0a94431028e3ee0857637ea72a8ad93608ca94c1 from https://github.com/BrentSeidel/Pi-Mainframe.git
Available when: (case OS is Windows => False, others => True)
Properties:
   Author: Brent Seidel
   Description: Project to blink LEDs in interesting patterns
   Executable: blinkenlights
   License: GPL-3.0-or-later
   Long_Description: This is a complex project involving 3D printing and soldering as well as
software.  Alr will take care of the software dependencies for you, but
you will have to read the README and documentation to find the other parts.

This project is intended to replicate the look and feel of older computers
with the switches and lights.  It uses the simulators from bbs_simcpu to
drive the LEDs and act on the switches.  Using the Intel 8080 simulator,
I was actually able to toggle a bootstrap program in using the panel and
get it to boot CP/M.  A boot loader (boot.ihx) is included.  CP/M is not
included.  There are places on the web where you can find a disassembled
CP/M 2.2.  Then combine it with the BIOS from bbs_simcpu and add it to a
disk image using the loadcpm tool.  If you use the Motorola 68000 simulator,
it will load and run a simple multitasking OS.  The example simulator can
be used to flash the lights in a variaty of ways.

There is a lamp test program in the lamp-test directory that may be useful
for debugging the hardware.

Note that since each cycle of the simulator involves multiple I2C bus
transactions to read switches and set LEDs, any CPU simulation will run
rather slowly.  The intention of this project is more for display than
simulator usage.

There is also a web server that can be used to select the CPU variant.
This is most useful with the example simulator to select the light pattern.

This project runs on a Raspberry Pi 2 (or later).  It will build on most
Unix or Unix-like systems, but unless the hardware interface matches the
Raspberry Pi, it won't run.  You are welcome to try porting it to other
systems, if you like.

   Maintainer: Brent Seidel <brentseidel@mac.com>
   Maintainers_Logins: BrentSeidel
   Name: blinkenlights
   Tag: embedded
   Tag: simulation
   Tag: i8080
   Tag: m68000
   Tag: hardware
   Version: 0.2.1
   Website: https://github.com/BrentSeidel/Pi-Mainframe
Dependencies (direct):
   bbs_embed_common~0.2.0
   bbs_embed_linux~0.2.0
   bbs_simcpu~0.3.2
   bbs_webif~0.1.0
   bbs~0.1.0
Dependencies (solution):
   bbs=0.1.0
   bbs_embed_common=0.2.0
   bbs_embed_linux=0.2.0
   bbs_simcpu=0.3.2
   bbs_webif=0.1.0
Dependencies (graph):
   bbs_embed_common=0.2.0 --> bbs=0.1.0 (~0.1.0)
   bbs_embed_linux=0.2.0  --> bbs=0.1.0 (~0.1.0)
   bbs_embed_linux=0.2.0  --> bbs_embed_common=0.2.0 (~0.2.0)
   bbs_simcpu=0.3.2       --> bbs=0.1.0 (~0.1.0)
   bbs_webif=0.1.0        --> bbs=0.1.0 (~0.1.0)
   blinkenlights=0.2.1    --> bbs=0.1.0 (~0.1.0)
   blinkenlights=0.2.1    --> bbs_embed_common=0.2.0 (~0.2.0)
   blinkenlights=0.2.1    --> bbs_embed_linux=0.2.0 (~0.2.0)
   blinkenlights=0.2.1    --> bbs_simcpu=0.3.2 (~0.3.2)
   blinkenlights=0.2.1    --> bbs_webif=0.1.0 (~0.1.0)


LOG:
Spawning: alr -d -n get --build blinkenlights=0.2.1
Note: Deploying blinkenlights=0.2.1...
Note: Deploying bbs=0.1.0...
Note: Deploying bbs_embed_common=0.2.0...
Note: Deploying bbs_simcpu=0.3.2...
Note: Deploying bbs_webif=0.1.0...
Note: Deploying bbs_embed_linux=0.2.0...
Note: Building blinkenlights=0.2.1/blinkenlights.gpr...
Setup
   [mkdir]        object directory for project BBS
   [mkdir]        library directory for project BBS
   [mkdir]        object directory for project bbs_embed_common
   [mkdir]        library directory for project bbs_embed_common
   [mkdir]        object directory for project bbs_embed_linux
   [mkdir]        library directory for project bbs_embed_linux
   [mkdir]        object directory for project bbs_simcpu
   [mkdir]        library directory for project bbs_simcpu
   [mkdir]        object directory for project bbs_webif
   [mkdir]        library directory for project bbs_webif
   [mkdir]        object directory for project blinkenlights
Compile
   [Ada]          blinkenlights.adb
   [Ada]          bbs-web-internal.adb
   [Ada]          bbs-web-svg.adb
   [Ada]          bbs-web.adb
   [Ada]          bbs-web-http.adb
   [Ada]          bbs-web-files.adb
   [Ada]          bbs-web-html.adb
   [Ada]          bbs-web-server.adb
   [Ada]          bbs-sim_cpu-msc6502.adb
   [Ada]          bbs-sim_cpu-m68000-line_d.adb
   [Ada]          bbs-sim_cpu-m68000-line_9.adb
   [Ada]          bbs-sim_cpu-m68000-line_8.adb
   [Ada]          bbs-sim_cpu-m68000-line_c.adb
   [Ada]          bbs-sim_cpu-m68000.adb
   [Ada]          bbs-sim_cpu-m68000-line_6.adb
   [Ada]          bbs-sim_cpu-m68000-line_5.adb
   [Ada]          bbs-sim_cpu-m68000-line_7.adb
   [Ada]          bbs-sim_cpu-m68000-line_3.adb
   [Ada]          bbs-sim_cpu-m68000-line_4.adb
   [Ada]          bbs-sim_cpu-m68000-line_1.adb
   [Ada]          bbs-sim_cpu-m68000-line_2.adb
   [Ada]          bbs-sim_cpu-m68000-line_b.adb
   [Ada]          bbs-sim_cpu-m68000-exceptions.adb
   [Ada]          bbs-sim_cpu-m68000-line_0.adb
   [Ada]          bbs-sim_cpu-m68000-line_e.adb
   [Ada]          bbs-sim_cpu-i8080-z80.adb
   [Ada]          bbs-sim_cpu-i8080.adb
   [Ada]          bbs-sim_cpu-serial.adb
   [Ada]          bbs-sim_cpu-serial-telnet.adb
   [Ada]          bbs-sim_cpu-clock.adb
   [Ada]          bbs-sim_cpu-serial-mux.adb
   [Ada]          bbs-sim_cpu-disk.adb
bbs-sim_cpu-serial-telnet.adb:143:39: warning: "sock_com" may be referenced before it has a value [enabled by default]
   [Ada]          bbs-sim_cpu-example.adb
   [Ada]          bbs-sim_cpu.adb
   [C]            errors.c
   [Ada]          bbs-embed-led.adb
bbs-sim_cpu-serial-mux.adb:165:39: warning: "sock_com" may be referenced before it has a value [enabled by default]
   [Ada]          bbs-embed-spi-linux.adb
   [Ada]          bbs-embed-gpio-linux.adb
   [Ada]          bbs-embed-bbb.ads
   [Ada]          bbs-embed-gpio-linux_sysfs.adb
   [Ada]          bbs-embed-i2c-linux.adb
   [Ada]          bbs-embed-rpi.ads
   [Ada]          bbs-embed-ain-linux.adb
   [Ada]          bbs-embed-linux.adb
   [Ada]          bbs-embed-log-linux.adb
   [Ada]          bbs-embed-pwm.adb
   [Ada]          bbs-embed-i2c-l3gd20h.adb
   [Ada]          bbs-embed-i2c-mcp23017.adb
   [Ada]          bbs-embed-spi.ads
   [Ada]          bbs-embed-i2c-bmp180.adb
   [Ada]          bbs-embed-ain.ads
   [Ada]          bbs-embed-i2c-pca9685.adb
   [Ada]          bbs-embed-i2c-mcp4725.adb
   [Ada]          bbs-embed-i2c.ads
   [Ada]          bbs-embed-i2c-devices.ads
   [Ada]          bbs-embed.ads
   [Ada]          bbs-embed-gpio-tb6612.adb
   [Ada]          bbs-embed-i2c-bme280.adb
   [Ada]          bbs-embed-i2c-ads1015.adb
   [Ada]          bbs-embed-i2c-mcp23008.adb
   [Ada]          bbs-embed-gpio.ads
   [Ada]          bbs-embed-i2c-lsm303dlhc.adb
   [Ada]          bbs-embed-spi-ra8875.adb
   [Ada]          bbs-embed-log.ads
   [Ada]          bbs.ads
   [Ada]          bbs-units.adb
   [Ada]          i2c.adb
   [Ada]          panel.adb
panel.ads:32:03: warning: in instantiation at bbs-sim_cpu-disk.ads:264 [-gnatw.q]
panel.ads:32:03: warning: record layout may cause performance issues [-gnatw.q]
panel.ads:32:03: warning: in instantiation at bbs-sim_cpu-disk.ads:264 [-gnatw.q]
panel.ads:32:03: warning: component "drive_info" whose length depends on a discriminant [-gnatw.q]
panel.ads:32:03: warning: in instantiation at bbs-sim_cpu-disk.ads:264 [-gnatw.q]
panel.ads:32:03: warning: comes too early and was moved down [-gnatw.q]
Build Libraries
   [gprlib]       Bbs.lexch
   [gprlib]       BBS-embed.lexch
   [archive]      libBbs.a
   [index]        libBbs.a
   [gprlib]       BBS-embed-linux.lexch
   [archive]      libBBS-embed.a
   [index]        libBBS-embed.a
   [gprlib]       bbs_simcpu.lexch
   [gprlib]       bbs_web.lexch
   [archive]      libBBS-embed-linux.a
   [archive]      libbbs_simcpu.a
   [archive]      libbbs_web.a
   [index]        libBBS-embed-linux.a
   [index]        libbbs_web.a
   [index]        libbbs_simcpu.a
Bind
   [gprbind]      blinkenlights.bexch
   [Ada]          blinkenlights.ali

--  The following additional restrictions may be applied to this partition:
pragma Restrictions (Simple_Barriers);
pragma Restrictions (Pure_Barriers);
pragma Restrictions (No_Access_Parameter_Allocators);
pragma Restrictions (No_Asynchronous_Control);
pragma Restrictions (No_Coextensions);
pragma Restrictions (No_Default_Stream_Attributes);
pragma Restrictions (No_Dynamic_Accessibility_Checks);
pragma Restrictions (No_Dynamic_Attachment);
pragma Restrictions (No_Dynamic_Cpu_Assignment);
pragma Restrictions (No_Dynamic_Priorities);
pragma Restrictions (No_Entry_Calls_In_Elaboration_Code);
pragma Restrictions (No_Entry_Queue);
pragma Restrictions (No_Exception_Registration);
pragma Restrictions (No_Fixed_Io);
pragma Restrictions (No_Implicit_Heap_Allocations);
pragma Restrictions (No_Implicit_Task_Allocations);
pragma Restrictions (No_Implicit_Protected_Object_Allocations);
pragma Restrictions (No_Initialize_Scalars);
pragma Restrictions (No_Local_Tagged_Types);
pragma Restrictions (No_Local_Timing_Events);
pragma Restrictions (No_Local_Protected_Objects);
pragma Restrictions (No_Multiple_Elaboration);
pragma Restrictions (No_Protected_Type_Allocators);
pragma Restrictions (No_Requeue_Statements);
pragma Restrictions (No_Specific_Termination_Handlers);
pragma Restrictions (No_Stream_Optimizations);
pragma Restrictions (No_Tagged_Type_Registration);
pragma Restrictions (No_Task_Allocators);
pragma Restrictions (No_Task_Attributes_Package);
pragma Restrictions (No_Task_At_Interrupt_Priority);
pragma Restrictions (No_Task_Termination);
pragma Restrictions (No_Terminate_Alternatives);
pragma Restrictions (Static_Priorities);
pragma Restrictions (Static_Storage_Size);
pragma Restrictions (Immediate_Reclamation);
pragma Restrictions (No_Implementation_Identifiers);
pragma Restrictions (No_Implementation_Units);
pragma Restrictions (No_Unrecognized_Aspects);
pragma Restrictions (No_Unrecognized_Pragmas);
pragma Restrictions (No_Wide_Characters);
pragma Restrictions (Static_Dispatch_Tables);
pragma Restrictions (Max_Protected_Entries => 0);
pragma Restrictions (Max_Select_Alternatives => 3);
pragma Restrictions (Max_Task_Entries => 3);
pragma Restrictions (Max_Asynchronous_Select_Nesting => 0);
Link
   [link]         blinkenlights.adb

blinkenlights=0.2.1 successfully retrieved and built.
Dependencies were solved as follows:

   + bbs              0.1.0 (new)
   + bbs_embed_common 0.2.0 (new)
   + bbs_embed_linux  0.2.0 (new)
   + bbs_simcpu       0.3.2 (new)
   + bbs_webif        0.1.0 (new)
Found declared GPR file: blinkenlights.gpr