1
0
mirror of https://github.com/PDP-10/klh10.git synced 2026-02-27 01:00:02 +00:00

Merge branch 'master' of github.com:PDP-10/klh10

* 'master' of github.com:PDP-10/klh10:
  FreeBSD build on Cirrus CI.
  Use PKG_CHECK_MODULES to locate libusb-1.0.
  Add DFKFB numbers from a real KL10.
This commit is contained in:
Olaf Seibert
2020-03-28 16:42:32 +01:00
8 changed files with 87 additions and 13 deletions

16
.cirrus.yml Normal file
View File

@@ -0,0 +1,16 @@
env:
CIRRUS_CLONE_DEPTH: 1
ARCH: amd64
task:
freebsd_instance:
image: freebsd-12-0-release-amd64
install_script:
- pkg upgrade -y
- pkg install -y gmake pkgconf autotools
script:
- ./autogen.sh
- mkdir tmp
- cd tmp
- ../configure --enable-lights
- gmake -C bld-ks-its

1
.gitignore vendored
View File

@@ -1,4 +1,5 @@
/configure
/aclocal.m4
bld/*/*.h
bld/*/*.o
bld/*/dpimp

View File

@@ -1,7 +1,7 @@
language: c
dist: trusty
sudo: required
install: sudo apt-get install libusb-1.0-0-dev
install: sudo apt-get install libusb-1.0-0-dev pkg-config
script:
- ./autogen.sh
- mkdir tmp

View File

@@ -19,6 +19,7 @@ builddir=$(pwd)
cd "$srcdir"
srcdir=$(pwd)
aclocal # creates aclocal.m4 from configure.ac
autoconf # creates configure from configure.ac
autoheader # creates src/config.h.in from configure.ac

View File

@@ -103,15 +103,10 @@ AC_CHECK_FUNC([nanosleep],
case "${need_libusb}" in
yes)
# Check if libusb-1.0 is present, otherwise fail.
# CPULIBS is for libraries only needed by the CPU, not by other programs.
SAVE_LIBS="$LIBS"
LIBS=""
AC_CHECK_LIB([usb-1.0], [libusb_get_device_descriptor],
[],
[AC_MSG_ERROR([Lights require libusb-1.0, which I could not find.])]
)
CPULIBS="$LIBS"
LIBS="$SAVE_LIBS"
PKG_CHECK_MODULES([libusb], [libusb-1.0],
[AC_DEFINE([HAVE_LIBUSB_1_0], [1],
[Define if you have libusb-1.0.])],
[AC_MSG_ERROR([Lights require libusb-1.0, which I could not find.])])
;;
esac
@@ -287,6 +282,8 @@ AC_SUBST([CPULIBS])
AC_SUBST([NETLIBS])
AC_SUBST([MAKEFILE], [Makefile])
AC_SUBST([CENVFLAGS])
AC_SUBST([libusb_CFLAGS])
AC_SUBST([libusb_LIBS])
# -------------------------------------------------------------------------
# Output section. State which files are going to be constructed.

View File

@@ -51,6 +51,65 @@ Still, it's fun to see how many multiples of a real KL you can run at.
THE REAL THING
==============
These numbers are from the 1978 EK-0KL20-IN-001 "KL10-Based
DECSYSTEM-20 Installation Manual", pages 10-27 and 10-28.
1 - BASIC CLOCK IS 40 NS.
2 - INDEXING TAKES 40 NS.
3 - INDIRECT TAKES 280 NS.
4 - INDEXING AND INDIRECT TAKES 320 NS.
5 - MOVEI TAKES 320 NS.
6 - MOVE FROM AC TAKES 440 NS.
7 - MOVE FROM MEMORY TAKES 480 NS.
8 - HRR FROM MEMORY TAKES 520 NS.
9 - STEOM 0 TAKES 560 NS.
10 - JRST TAKES 360 NS.
11 - JSR TAKES 680 NS.
12 - PUSHJ TAKES 840 NS.
13 - ADD FROM MEMORY TAKES 520 NS.
14 - MUL (9 ADD/SUB - 18 SHIFTS) TAKES 2.52 uS.
15 - DIV TAKES 5.58 uS.
16 - FIX A FLOATING POINT ONE TAKES 1.04 uS.
17 - FLTR AN INTERGER ONE TAKES 1.84 uS.
18 - FAD (1 RIGHT SHIFT) TAKES 1.88 uS.
19 - FAD (8 SHIFT RIGHT - 3 LEFT) TAKES 2.16 uS.
20 - FMP (7 ADD/SUB - 14 SHIFTS) TAKES 2.80 uS.
21 - FDV TAKES 5.72 uS.
22 - DMOVE FROM MEMORY TAKES 880 NS.
23 - DFAD (1 RIGHT SHIFT) TAKES 2.44 uS.
24 - DFAD (8 SHIFT RIGHT - 1 LEFT) TAKES 2.44 uS.
25 - DFMP (7 ADD/SUB - 32 SHIFTS) TAKES 4.92 uS.
26 - DFDV TAKES 10.32 uS.
27 - CONO PI TAKES 1.92 uS.
28 - CONI PI TAKES 3.36 uS.
29 - DATAO APR TAKES 1.56 uS.
30 - DATAI APR TAKES 1.76 uS.
31 - MOVE TO MEMORY TAKES 680 NS.
32 - LOGICAL SHIFT (35 PLACES LEFT) TAKES 640 NS.
33 - LOGICAL SHIFT (35 PLACES RIGHT) TAKES 760 NS.
34 - LOGICAL SHIFT COMBINED (71 PLACES LEFT) TAKES 1.12 uS.
35 - LOGICAL SHIFT COMBINED (71 PLACES RIGHT) TAKES 1.16 uS.
36 - INCREMENT BYTE POINTER TAKES 1.00 uS.
37 - INCREMENT AND LOAD BYTE TAKES 1.44 uS.
38 - INCREMENT AND DEPOSIT BYTE TAKES 1.80 uS.
39 - JFCL TAKES 880 NS.
40 - CAI TAKES 480 NS.
41 - JUMP TAKES 480 NS.
42 - CAM TAKES 600 NS.
43 - EQV AC TO AC TAKES 480 NS.
44 - EQV MEMORY TO AC TAKES 520 NS.
45 - SETOB TAKES 680 NS.
46 - AOS TO MEMORY TAKES 840 NS.
47 - EXCHANGE AN AC WITH AN AC TAKES 640 NS.
48 - EXCHANGE AN AC WITH MEMORY TAKES 840 NS.
49 - EXECUTE TAKES 640 NS.
50 - BLT MEMORY TO MEMORY TAKES 1.92 uS.
51 - BLT AC TO MEMORY TAKES 1.88 mS.
52 - DATAI TAKES 10.00 uS.
53 - DATAO TAKES 10.00 uS.
KLH's original text follows:
Unfortunately, although I have output logs of DFKFB runs for a
variety of platforms, I do not have one for a real KL10 itself!
Hopefully someone will be able to contribute this from their archives.

View File

@@ -18,14 +18,14 @@
SRC = @top_srcdir@/src
BLDSRC = @top_builddir@/src
CC = @CC@
CFLAGS = -c @CFLAGS@
CFLAGS = -c @CFLAGS@ @libusb_CFLAGS@
CPPFLAGS = @CPPFLAGS@ -I$(BLDSRC) -I$(SRC)
CFLAGS_LINT = -ansi -pedantic -Wall -Wshadow \
-Wstrict-prototypes -Wmissing-prototypes \
-Wmissing-declarations -Wredundant-decls
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
CPULIBS = @CPULIBS@
CPULIBS = @CPULIBS@ @libusb_LIBS@
NETLIBS = @NETLIBS@
prefix = @prefix@

View File

@@ -34,7 +34,7 @@ static int decosfcclossage;
#if KLH10_DEV_LITES /* Moby conditional for entire file */
#if HAVE_LIBUSB_1_0
#include <libusb-1.0/libusb.h>
#include <libusb.h>
#endif
/*
* For now, assume that having <sys/io.h> is equivalent to having