Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Calling bcm_host_get_peripheral_address() in libbcm_host.so from libraspberrypi-dev instead of the hard-coded version we had before, which was apparently copied from old versions of the Pi developer docs. Now following the current advice: https://www.raspberrypi.org/documentation/hardware/raspberrypi/peripheral_addresses.md Doing this in the hopes that it fixes the compatibility problem with the Pi 4, but if it doesn't, this is probably the correct thing anyway. Tested with a Pi 3B+, so checking it in straight on trunk. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
55cfea50279a4078f0656ca252022754 |
User & Date: | tangent 2019-08-03 23:31:46.189 |
Context
2019-08-03
| ||
23:36 | Small fixes to previous for the non-Pi case. check-in: b40c2f5f83 user: tangent tags: trunk | |
23:31 | Calling bcm_host_get_peripheral_address() in libbcm_host.so from libraspberrypi-dev instead of the hard-coded version we had before, which was apparently copied from old versions of the Pi developer docs. Now following the current advice: https://www.raspberrypi.org/documentation/hardware/raspberrypi/peripheral_addresses.md Doing this in the hopes that it fixes the compatibility problem with the Pi 4, but if it doesn't, this is probably the correct thing anyway. Tested with a Pi 3B+, so checking it in straight on trunk. check-in: 55cfea5027 user: tangent tags: trunk | |
2019-07-21
| ||
10:13 | Simplified the logic in tools/mmake for detecting whether GNU make is called as "gmake" or as just "make". check-in: fc2a0c1c8f user: tangent tags: trunk | |
Changes
Changes to Makefile.in.
︙ | ︙ | |||
36 37 38 39 40 41 42 | # Git commit ID and time of the latest version of the SIMH 4 project on # GitHub that has been merged into this source base. SGCID=4e0450cff96830c5aced36928a4427adfc5314f8 SGCTM=2019-04-18T20:03:17-07:00 # C build flags for the PDP-8 simulator and its PiDP-8/I extensions. | | | 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | # Git commit ID and time of the latest version of the SIMH 4 project on # GitHub that has been merged into this source base. SGCID=4e0450cff96830c5aced36928a4427adfc5314f8 SGCTM=2019-04-18T20:03:17-07:00 # C build flags for the PDP-8 simulator and its PiDP-8/I extensions. SIM_CFLAGS := @CFLAGS@ @PI_CFLAGS@ @BUILDMODE@ \ -Wno-unused-result -Wno-parentheses \ -DUSE_READER_THREAD -DHAVE_DLOPEN=$(subst .,,@SH_SOEXT@) -DPIDP8I \ -DSIM_ASYNCH_IO -DHAVE_REGEX_H -DHAVE_GLOB \ -DSIM_GIT_COMMIT_ID=$(SGCID) -DSIM_GIT_COMMIT_TIME=$(SGCTM) \ -D_GNU_SOURCE \ -U__STRICT_ANSI__ \ -I @srcdir@/src/SIMH -I @srcdir@/src/pidp8i -I src -I src/SIMH -I src/pidp8i |
︙ | ︙ | |||
686 687 688 689 690 691 692 | obj/cc8/os8/%.c: @srcdir@/src/cc8/examples/%.c sed '/^#include/d' $< > $@ $(BUILDDIRS): mkdir -p $@ $(PIDP8I_SIM): $(SIM_OBJS) obj/pidp8i/gpio-@LED_DRIVER_MODULE@ls.o | | | | | 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 | obj/cc8/os8/%.c: @srcdir@/src/cc8/examples/%.c sed '/^#include/d' $< > $@ $(BUILDDIRS): mkdir -p $@ $(PIDP8I_SIM): $(SIM_OBJS) obj/pidp8i/gpio-@LED_DRIVER_MODULE@ls.o $(CC) -o $@ @PI_LFLAGS@ $^ $(LIBS) @PI_LIBS@ ln -f bin/pidp8i-sim bin/pdp8 bin/cc8: $(CC8_OBJS) $(CC) -o $@ $^ $(LIBS) bin/d8tape: $(D8TAPE_OBJS) $(CC) -o $@ $^ bin/palbart: $(PALBART_OBJS) $(CC) -o $@ $^ bin/pidp8i-test: obj/misc/test.o obj/pidp8i/gpio-nls.o obj/pidp8i/gpio-common.o $(CC) -o $@ $(CFLAGS) @PI_CFLAGS@ @PI_LFLAGS@ $^ $(LIBS) @PI_LIBS@ -lncurses bin/ptp2txt: obj/misc/ptp2txt.o $(CC) -o $@ $^ ln -f bin/ptp2txt bin/txt2ptp bin/txt2ptp: bin/ptp2txt ln -f bin/ptp2txt bin/txt2ptp bin/deeper: obj/misc/deeper.o obj/pidp8i/gpio-@LED_DRIVER_MODULE@ls.o obj/pidp8i/gpio-common.o $(CC) -o $@ $^ $(LIBS) libexec/scanswitch: obj/misc/scanswitch.o obj/pidp8i/gpio-nls.o obj/pidp8i/gpio-common.o $(CC) -o $@ $(CFLAGS) @PI_CFLAGS@ @PI_LFLAGS@ $^ $(LIBS) @PI_LIBS@ # Reconfigure whenever one of the *.in or autosetup files changes unless # this is "make clean". # # We purposely list only one of the OUTFILES on the left hand side # because to list them all is to invite Make to run N copies of the # configure script in parallel up to the limit of -j or the number of |
︙ | ︙ |
Changes to README.md.
︙ | ︙ | |||
33 34 35 36 37 38 39 40 41 42 43 44 45 46 | somewhere your user has read/write access like `$HOME/src/pidp8i`. * We require several tools and libraries that aren't always installed: * A working C compiler and other standard Linux build tools, such as `make(1)`. * Python's `pexpect` library * The `ncurses` development libraries To install all of this on a Raspbian type OS, say: $ sudo apt update | > > | | | 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | somewhere your user has read/write access like `$HOME/src/pidp8i`. * We require several tools and libraries that aren't always installed: * A working C compiler and other standard Linux build tools, such as `make(1)`. * The Raspberry Pi development libraries * Python's `pexpect` library * The `ncurses` development libraries To install all of this on a Raspbian type OS, say: $ sudo apt update $ sudo apt install build-essential libraspberrypi-dev \ libncurses-dev python-pip $ sudo pip install pexpect [os]: https://tangentsoft.com/pidp8i/wiki?name=OS+Compatibility <a id="unpacking"></a> ## Getting the Software onto Your Pi |
︙ | ︙ |
Changes to auto.def.
︙ | ︙ | |||
343 344 345 346 347 348 349 350 351 352 353 354 355 356 | cc-check-includes time.h cc-check-function-in-lib clock_gettime rt cc-check-functions clock_nanosleep nanosleep usleep cc-check-functions sched_yield cc-with {-includes signal.h} { cc-check-types sighandler_t sig_t } # Ensure we have the libncurses development files installed here, else # pidp8i-test won't build. if {![cc-check-includes curses.h]} { user-error "Could not find curses.h. Try installing libncurses-dev." } elseif {![cc-check-function-in-lib initscr ncurses]} { user-error "Could not find initscr() in libncurses." | > > > > > > > > > > > > > > > > > > > | 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 | cc-check-includes time.h cc-check-function-in-lib clock_gettime rt cc-check-functions clock_nanosleep nanosleep usleep cc-check-functions sched_yield cc-with {-includes signal.h} { cc-check-types sighandler_t sig_t } # Check for libraspberrypi-dev stuff set old_LIBS [get-define LIBS] ;# don't want LIBS modded directly if {![file isdirectory "/opt/vc"]} { msg-result "WARNING: Not building on a Pi or libraspberrypi-dev not installed!" } elseif {![cc-with {-cflags "-L/opt/vc/lib"} { cc-check-function-in-lib bcm_host_get_peripheral_address bcm_host }]} { user-error "Found /opt/vc but cannot link to -lbcm_host!" } elseif {![cc-with {-cflags "-I/opt/vc/include"} { cc-check-includes bcm_host.h }]} { user-error "Found /opt/vc but cannot #include bcm_host.h!" } else { define PI_CFLAGS "-I/opt/vc/include" define PI_LFLAGS "-L/opt/vc/lib" define PI_LIBS "-lbcm_host" } define LIBS $old_LIBS # Ensure we have the libncurses development files installed here, else # pidp8i-test won't build. if {![cc-check-includes curses.h]} { user-error "Could not find curses.h. Try installing libncurses-dev." } elseif {![cc-check-function-in-lib initscr ncurses]} { user-error "Could not find initscr() in libncurses." |
︙ | ︙ |
Changes to src/pidp8i/gpio-common.c.in.
1 2 3 | /* * gpio-common.c: functions common to both gpio.c and gpio-nls.c * | | | 1 2 3 4 5 6 7 8 9 10 11 | /* * gpio-common.c: functions common to both gpio.c and gpio-nls.c * * Copyright © 2015 Oscar Vermeulen, © 2016-2019 by Warren Young * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: |
︙ | ︙ | |||
33 34 35 36 37 38 39 40 41 42 43 44 45 46 | * All of this module's other external interfaces are only called * by the other gpio-* modules, from the GPIO thread. */ #include "pidp8i.h" #include <config.h> #include <pthread.h> #include <sys/file.h> #include <sys/time.h> #include <ctype.h> #include <errno.h> | > > > > | 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | * All of this module's other external interfaces are only called * by the other gpio-* modules, from the GPIO thread. */ #include "pidp8i.h" #include <config.h> #if defined(HAVE_BCM_HOST_H) # include <bcm_host.h> #endif #include <pthread.h> #include <sys/file.h> #include <sys/time.h> #include <ctype.h> #include <errno.h> |
︙ | ︙ | |||
231 232 233 234 235 236 237 | } pidp8i_gpio_present = 0; } } //// bcm_host_get_peripheral_address /////////////////////////////////// | | > | < < < | < < < < < < < < < | 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 | } pidp8i_gpio_present = 0; } } //// bcm_host_get_peripheral_address /////////////////////////////////// // Provide fallback for non-Pi case to avoid a link error. #if !defined(HAVE_BCM_HOST_H) static unsigned bcm_host_get_peripheral_address(void) { } #endif //// DOUBLE BUFFERED DISPLAY MANIPULATION FUNCTIONS //////////////////// //// swap_displays //////////////////////////////////////////////////// // Clear the current "paint-from" display, then exchange the double- // buffered display pointers atomically, saving the current update-to |
︙ | ︙ |