Test ran at 2025-03-15 00:36:11.048202+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 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_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_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