414 lines
12 KiB
Diff
414 lines
12 KiB
Diff
diff -Naur a/data/m_ps.fnt b/data/m_ps.fnt
|
|
--- a/data/m_ps.fnt 1969-12-31 19:00:00.000000000 -0500
|
|
+++ b/data/m_ps.fnt 2017-12-19 22:33:27.691556645 -0500
|
|
@@ -0,0 +1,35 @@
|
|
+ 1 0013 1947 1 5 5 1 4.5.1 0 0 0 1 Times-Roman
|
|
+ 2 0013 1947 1 7 5 1 4.5.1 0 0 0 1 Times-Bold
|
|
+ 3 0013 1947 2 5 5 1 4.5.1 0 0 0 1 Times-Italic
|
|
+ 4 0013 1947 2 7 5 1 4.5.1 0 0 0 1 Times-BoldItalic
|
|
+ 5 0013 1921 1 5 5 1 5.1.2 0 0 0 1 Helvetica
|
|
+ 6 0013 1921 1 7 5 1 5.1.2 0 0 0 1 Helvetica-Bold
|
|
+ 7 0013 1921 2 5 5 1 5.1.2 0 0 0 1 Helvetica-Oblique
|
|
+ 8 0013 1921 2 7 5 1 5.1.2 0 0 0 1 Helvetica-BoldOblique
|
|
+ 9 0013 1970 1 5 5 1 4.6.5 0 0 0 1 Courier
|
|
+ 10 0013 1970 1 7 5 1 4.6.5 0 0 0 1 Courier-Bold
|
|
+ 11 0013 1970 2 5 5 1 4.6.5 0 0 0 1 Courier-Oblique
|
|
+ 12 0013 1970 2 7 5 1 4.6.5 0 0 0 1 Courier-BoldOblique
|
|
+ 13 0013 1650 1 5 5 1 8.2.0 0 0 0 91 Symbol
|
|
+ 14 0013 1087 1 5 5 1 4.4.2 0 0 0 1 AvantGarde-Book
|
|
+ 15 0013 1087 2 5 5 1 4.4.2 0 0 0 1 AvantGarde-BookOblique
|
|
+ 16 0013 1087 1 6 5 1 4.4.2 0 0 0 1 AvantGarde-Demi
|
|
+ 17 0013 1087 2 6 5 1 4.4.2 0 0 0 1 AvantGarde-DemiOblique
|
|
+ 18 0013 1097 1 6 5 1 4.5.2 0 0 0 1 Bookman-Demi
|
|
+ 19 0013 1097 2 6 5 1 4.5.2 0 0 0 1 Bookman-DemiItalic
|
|
+ 20 0013 1097 1 4 5 1 4.5.2 0 0 0 1 Bookman-Light
|
|
+ 21 0013 1097 2 4 5 1 4.5.2 0 0 0 1 Bookman-LightItalic
|
|
+ 22 0013 1921 1 5 3 1 5.1.2 0 0 0 1 Helvetica-Narrow
|
|
+ 23 0013 1921 2 7 3 1 5.1.2 0 0 0 1 Helvetica-Narrow-Bold
|
|
+ 24 0013 1921 1 7 3 1 5.1.2 0 0 0 1 Helvetica-Narrow-BoldOblique
|
|
+ 25 0013 1921 2 5 3 1 5.1.2 0 0 0 1 Helvetica-Narrow-Oblique
|
|
+ 26 0013 1106 1 5 5 1 4.1.3 0 0 0 1 NewCenturySchlbk-Roman
|
|
+ 27 0013 1106 2 5 5 1 4.1.3 0 0 0 1 NewCenturySchlbk-Italic
|
|
+ 28 0013 1106 1 7 5 1 4.1.3 0 0 0 1 NewCenturySchlbk-Bold
|
|
+ 29 0013 1106 2 7 5 1 4.1.3 0 0 0 1 NewCenturySchlbk-BoldItalic
|
|
+ 30 0013 1276 1 5 5 1 4.4.2 0 0 0 1 Palatino-Roman
|
|
+ 31 0013 1276 2 5 5 1 4.4.2 0 0 0 1 Palatino-Italic
|
|
+ 32 0013 1276 1 7 5 1 4.4.2 0 0 0 1 Palatino-Bold
|
|
+ 33 0013 1276 2 7 5 1 4.4.2 0 0 0 1 Palatino-BoldItalic
|
|
+ 34 0013 1810 1 5 5 1 8.0.0 0 0 0 92 ZapfDingbats
|
|
+ 35 0013 1193 2 5 5 1 6.1.1 0 0 0 1 ZapfChancery-MediumItalic
|
|
diff -Naur a/include/mach.h b/include/mach.h
|
|
--- a/include/mach.h 1969-12-31 19:00:00.000000000 -0500
|
|
+++ b/include/mach.h 2017-12-19 22:34:41.145556770 -0500
|
|
@@ -0,0 +1,33 @@
|
|
+/* RAL-CGM Interpreter header file
|
|
+ *
|
|
+ * Linux specific setting for CGM interpreter
|
|
+ */
|
|
+
|
|
+/* Define Machine */
|
|
+
|
|
+#define LINUX
|
|
+
|
|
+/* Define Graphics system(s) */
|
|
+
|
|
+#define POSTSCRIPT
|
|
+#define BEZIER
|
|
+#define HERSHEY
|
|
+#define XW
|
|
+
|
|
+#define DATADIR "../data/"
|
|
+
|
|
+#define NAMELGTH 32
|
|
+#define EXTLGTH 8
|
|
+
|
|
+#define Posint64 unsigned long long
|
|
+#define MALLOCH
|
|
+#include <stdlib.h>
|
|
+
|
|
+#ifdef CGMOXW_C /* X-Window specific settings */
|
|
+
|
|
+#include <X11/cursorfont.h>
|
|
+#include <X11/Xlib.h>
|
|
+#include <X11/Xutil.h>
|
|
+#include <X11/Xatom.h>
|
|
+
|
|
+#endif
|
|
diff -Naur a/src/Makefile b/src/Makefile
|
|
--- a/src/Makefile 1969-12-31 19:00:00.000000000 -0500
|
|
+++ b/src/Makefile 2017-12-19 22:35:58.377556901 -0500
|
|
@@ -0,0 +1,333 @@
|
|
+# RAL-CGM Interpreter source Makefile: @(#) Makebase version 3.4
|
|
+#
|
|
+# Name of executable module (usually ../bin/ralcgm)
|
|
+#
|
|
+MODULE = ../bin/ralcgm
|
|
+#
|
|
+# Name of callable library (Optional) (usually ../bin/libcgm.a)
|
|
+#
|
|
+LIB = ../bin/libcgm.a
|
|
+#
|
|
+# Include file directory (usually ../include)
|
|
+#
|
|
+INCLUDE = ../include
|
|
+#
|
|
+# Data files directory (usually ../data)
|
|
+#
|
|
+DATADIR = ../data
|
|
+#
|
|
+# Main Interpreter object file (usually cgmmain.o)
|
|
+#
|
|
+MAIN = cgmmain.o
|
|
+#
|
|
+#
|
|
+#
|
|
+MAKEFILE = Makefile
|
|
+#
|
|
+# CGM input encoding - Object files
|
|
+# Include here files for each encoding that
|
|
+# may need to be processed; usually
|
|
+# cgmichar.o cgmitext.o cgmibin.o
|
|
+#
|
|
+INPUT = cgmichar.o cgmitext.o cgmibin.o
|
|
+#
|
|
+# CGM output encoding - Object files
|
|
+# Include here files for each encoding that
|
|
+# may be generated; usually
|
|
+# cgmochar.o cgmotext.o cgmobin.o
|
|
+#
|
|
+OUTPUT = cgmochar.o cgmotext.o cgmobin.o
|
|
+#
|
|
+# User callable Library (comment out if not required)
|
|
+#
|
|
+CGMLIB = cgmlib.o
|
|
+#
|
|
+# Optional Drivers
|
|
+#
|
|
+# IGL - Iris Graphics Library
|
|
+# PS - PostScript
|
|
+# XW - X-Windows
|
|
+# VID - Topaz Library
|
|
+#
|
|
+IGL = cgmoigl.o
|
|
+PS = cgmops.o
|
|
+XW = cgmoxw.o
|
|
+VID = cgmotpz.o
|
|
+TEK = cgmotek.o
|
|
+HPGL = cgmohpgl.o
|
|
+#
|
|
+# List of driver files to be used in generating the $(MODULE).
|
|
+#
|
|
+# The possible candidates are:
|
|
+#
|
|
+# $(OUTPUT) list of CGM output encodings defined above
|
|
+# $(IGL) Iris graphics library
|
|
+# $(XW) X-Windows
|
|
+# $(PS) PostScript
|
|
+# $(HPGL) HPGL
|
|
+# $(TEK) Tektronix 4200
|
|
+# $(VID) Video system
|
|
+#
|
|
+DRIVERS = $(PS) $(XW) $(HPGL) $(TEK)
|
|
+#
|
|
+# Input utilities Object files
|
|
+# These provides random access input and convenient
|
|
+# handling of input attributes
|
|
+#
|
|
+ERRUTILS = cgmerr.o
|
|
+ERRINCLUDES = $(INCLUDE)/cgmerr.h
|
|
+
|
|
+FILEUTILS = cgmfile.o
|
|
+FILEINCLUDES = $(INCLUDE)/cgmfile.h
|
|
+
|
|
+GENUTILS = $(FILEUTILS) $(ERRUTILS)
|
|
+GENINCS = $(FILEINCLUDES) \
|
|
+ $(ERRINCLUDES)
|
|
+
|
|
+RANUTILS = cgmrand.o cgmprof.o
|
|
+INPUTILS = cgminput.o
|
|
+#
|
|
+# Output utility Object files (only needed with output drivers)
|
|
+# These provide emulation of GDPs, filled areas
|
|
+# and other graphical operations. Not needed by all drivers
|
|
+# currently cgmgdp.o is used by XW, IGL & VID
|
|
+# cgmfill.o & cgmgraph.o are used by IGL only
|
|
+#
|
|
+ATTUTILS = cgmatt.o
|
|
+GDPUTILS = cgmgdp.o
|
|
+FILUTILS = cgmpoly.o cgmtrap.o cgmfill.o cgmgraph.o
|
|
+COLRUTILS = cgmcolr.o
|
|
+CELLUTILS = cgmcell.o
|
|
+PTSUTILS = cgmpts.o
|
|
+#
|
|
+OUTUTILS = $(ATTUTILS) $(GDPUTILS) $(FILUTILS) $(COLRUTILS) $(CELLUTILS) $(PTSUTILS)
|
|
+#
|
|
+# Text utility Object files
|
|
+# These provide software emulation of text and
|
|
+# generally useful text facilities.
|
|
+#
|
|
+# cgmtext.o - general text utility - PS & XW
|
|
+# cgmfont.o - general font utility - PS & XW
|
|
+# cgmbez.o - Bezier text - if wanted
|
|
+# cgmher.o - Hershey text - if wanted
|
|
+#
|
|
+FNTUTILS = cgmfont.o
|
|
+FNTINCLUDES = $(INCLUDE)/cgmfont.h
|
|
+TEXTUTILS = cgmtext.o
|
|
+TEXTINCLUDES = $(INCLUDE)/cgmtext.h
|
|
+#
|
|
+BEZIER = genbez
|
|
+BEZUTILS = cgmbez.o
|
|
+BEZLINK = $(BEZIER).o
|
|
+BEZDATA = $(DATADIR)/*.bfs
|
|
+BEZINCLUDES = $(INCLUDE)/cgmbez.h
|
|
+#
|
|
+HERSHEY = genher
|
|
+HERUTILS = cgmher.o
|
|
+HERLINK = $(HERSHEY).o
|
|
+HERDATA = $(DATADIR)/*.hfs
|
|
+HERINCLUDES = $(INCLUDE)/cgmher.h
|
|
+#
|
|
+# TXTSYS settings, supported text systems are:
|
|
+#
|
|
+# $(HERSHEY)
|
|
+# $(BEZIER)
|
|
+#
|
|
+TXTSYS = $(BEZIER) $(HERSHEY)
|
|
+#
|
|
+# TXTUTILS settings, supported text utilities are:
|
|
+#
|
|
+# $(HERUTILS)
|
|
+# $(BEZUTILS)
|
|
+# List of utility modules required;
|
|
+#
|
|
+TXTUTILS = $(BEZUTILS) $(HERUTILS)
|
|
+#
|
|
+#
|
|
+CGMUTILS = $(RANUTILS)\
|
|
+ $(INPUTILS)\
|
|
+ $(GENUTILS)\
|
|
+ $(OUTUTILS)\
|
|
+ $(TXTUTILS)\
|
|
+ $(TEXTUTILS)\
|
|
+ $(FNTUTILS)
|
|
+#
|
|
+# Set up names for the modules that make up `ralcgm' and `cgmlib'.
|
|
+#
|
|
+RALCGM = $(INPUT)\
|
|
+ $(OUTPUT)\
|
|
+ $(DRIVERS)\
|
|
+ $(CGMUTILS)
|
|
+
|
|
+LIBCGM = $(CGMLIB)\
|
|
+ $(OUTPUT)\
|
|
+ $(DRIVERS)\
|
|
+ $(INPUTILS)\
|
|
+ $(GENUTILS)\
|
|
+ $(OUTUTILS)\
|
|
+ $(TXTUTILS)\
|
|
+ $(TEXTUTILS)\
|
|
+ $(FNTUTILS)
|
|
+#
|
|
+# Local flags for Compiler (system dependent)
|
|
+#
|
|
+# Examples: (Iris 3130) -Zf -g -p
|
|
+# (Iris 4D) -O
|
|
+# (GNU C on Topaz) -O -m68881 -g
|
|
+# (Sun 3) -O -fswitch
|
|
+# (Sun 4) -O
|
|
+# (Unicos) -O -g
|
|
+#
|
|
+CFLAGS = -c -DPOSTSCRIPT="" -DXW="" -DHPGL="" -DTEK4200="" -DBEZIER="" -DHERSHEY=""
|
|
+#
|
|
+# Local flags for Linker (system dependent)
|
|
+# For X-windows, add some extra libraries (comment out otherwise)
|
|
+#
|
|
+# Examples: (Iris 3130) -Zg -lm
|
|
+# (Iris 4D) -lm -lgl_s -lX11_s -lc_s
|
|
+# (Topaz) -lE -lmalloc -lm
|
|
+# (Sun 3 or 4) -lm -lX11 -lc
|
|
+# (Unicos) -lm -lX11 -lnet -lc
|
|
+# (Unicos - scc) -lm -lX11 -lnet -lsc
|
|
+#
|
|
+LFLAGS = -lm -lX11
|
|
+#
|
|
+# Common include files
|
|
+#
|
|
+GENINCLUDES = $(INCLUDE)/cgmmach.h $(INCLUDE)/mach.h \
|
|
+ $(INCLUDE)/cgmtypes.h \
|
|
+ $(INCLUDE)/cgmstruc.h \
|
|
+ $(INCLUDE)/cgmelem.h \
|
|
+ $(INCLUDE)/cgmpar.h \
|
|
+ $(INCLUDE)/cgmtran.h \
|
|
+ $(INCLUDE)/cgmatt.h
|
|
+#
|
|
+# List of includes for the text system; must match the text utility
|
|
+# .o files given above.
|
|
+#
|
|
+INCLUDES = $(GENINCLUDES) $(TXTINCLUDES) $(FNTINCLUDES) \
|
|
+ $(BEZINCLUDES) $(HERINCLUDES) $(GENINCS)
|
|
+#
|
|
+# Define various commands in just one place.
|
|
+#
|
|
+# for Unicos LINK = segldr
|
|
+# AR = bld rv
|
|
+# all others LINK = cc $(LFLAGS)
|
|
+# AR = ar rv
|
|
+#
|
|
+COMPILE = cc
|
|
+LINK = cc
|
|
+AR = ar crs
|
|
+#
|
|
+# Main dependencies (should not need altering)
|
|
+
|
|
+ralcgm: $(MODULE) $(TXTSYS)
|
|
+ @echo "$(MODULE) is now made"
|
|
+
|
|
+cgmlib: $(LIB) $(TXTSYS)
|
|
+ @echo "$(LIB) is now made"
|
|
+
|
|
+iutils: $(INPUTILS) $(GENUTILS)
|
|
+
|
|
+outils: $(OUTUTILS)
|
|
+
|
|
+tutils: $(TXTUTILS)
|
|
+
|
|
+clean:
|
|
+ rm -f *.o core a.out $(TXTSYS)
|
|
+
|
|
+$(MODULE): $(MAIN) $(RALCGM)
|
|
+ $(LINK) $(MAIN) $(RALCGM) $(LFLAGS) -o $(MODULE)
|
|
+ chmod 755 $(MODULE)
|
|
+
|
|
+$(LIB): $(LIBCGM)
|
|
+ $(AR) $(LIB) $(LIBCGM)
|
|
+ chmod 644 $(LIB)
|
|
+
|
|
+# include file dependencies
|
|
+
|
|
+$(MAIN): $(INCLUDE)/cgminit.h $(GENINCLUDES) $(MAKEFILE)
|
|
+
|
|
+$(CGMLIB): $(INCLUDE)/cgmlib.h $(INCLUDE)/cgminit.h $(INCLUDE)/cgmin.h \
|
|
+ $(GENINCLUDES) $(MAKEFILE)
|
|
+
|
|
+$(INPUT) $(INPUTILS) $(RANUTILS): $(INCLUDE)/cgmin.h $(GENINCLUDES) $(MAKEFILE)
|
|
+
|
|
+$(GENUTILS): $(GENINCLUDES)
|
|
+
|
|
+$(OUTPUT) $(OUTUTILS): $(GENINCLUDES) $(MAKEFILE)
|
|
+
|
|
+$(DRIVERS): $(INCLUDE)/cgmout.h \
|
|
+ $(INCLUDES) \
|
|
+ $(MAKEFILE)
|
|
+
|
|
+$(FNTUTILS): $(FNTINCLUDES) \
|
|
+ $(INCLUDE)/cgmufont.h \
|
|
+ $(TXTINCLUDES) \
|
|
+ $(MAKEFILE)
|
|
+
|
|
+$(TEXTUTILS): $(TEXTINCLUDES) \
|
|
+ $(FNTINCLUDES) \
|
|
+ $(MAKEFILE)
|
|
+
|
|
+$(ERRUTILS): $(ERRINCLUDES) \
|
|
+ $(GENINCLUDES) \
|
|
+ $(MAKEFILE)
|
|
+
|
|
+$(BEZUTILS): $(BEZINCLUDES) \
|
|
+ $(INCLUDE)/cgmubez.h \
|
|
+ $(GENINCLUDES) \
|
|
+ $(MAKEFILE)
|
|
+
|
|
+$(BEZIER): $(BEZLINK) \
|
|
+ $(GENINCS) \
|
|
+ $(INCLUDE)/cgmubez.h \
|
|
+ $(BEZDATA) \
|
|
+ $(MAKEFILE)
|
|
+ $(LINK) $(BEZLINK) $(GENUTILS) $(LFLAGS) -o $(BEZIER)
|
|
+ ./$(BEZIER)
|
|
+ chmod 644 $(DATADIR)/*.bfb $(DATADIR)/fontdir.bez
|
|
+
|
|
+$(HERUTILS): $(HERINCLUDES) \
|
|
+ $(INCLUDE)/cgmuher.h \
|
|
+ $(GENINCLUDES) \
|
|
+ $(MAKEFILE)
|
|
+
|
|
+$(HERSHEY): $(HERLINK) \
|
|
+ $(GENINCS) \
|
|
+ $(INCLUDE)/cgmuher.h \
|
|
+ $(HERDATA) \
|
|
+ $(MAKEFILE)
|
|
+ $(LINK) $(HERLINK) $(GENUTILS) $(LFLAGS) -o $(HERSHEY)
|
|
+ ./$(HERSHEY)
|
|
+ chmod 644 $(DATADIR)/*.hfb $(DATADIR)/fontdir.her
|
|
+
|
|
+$(IGL): $(INCLUDE)/cgmigl.h \
|
|
+ $(INCLUDE)/cgmgdp.h \
|
|
+ $(INCLUDE)/cgmfill.h \
|
|
+ $(INCLUDE)/cgmgraph.h \
|
|
+ $(INCLUDE)/cgmpoly.h \
|
|
+ $(INCLUDE)/cgmtrap.h
|
|
+
|
|
+$(PS): $(INCLUDE)/cgmps.h \
|
|
+ $(INCLUDE)/cgmgdp.h \
|
|
+ $(INCLUDE)/cgmpoly.h \
|
|
+ $(INCLUDE)/cgmtrap.h
|
|
+
|
|
+$(XW): $(INCLUDE)/cgmxw.h \
|
|
+ $(INCLUDE)/cgmgdp.h
|
|
+
|
|
+$(HPGL): $(INCLUDE)/cgmhpgl.h \
|
|
+ $(INCLUDE)/cgmgdp.h \
|
|
+ $(INCLUDE)/cgmcolr.h
|
|
+
|
|
+$(TEK): $(INCLUDE)/cgmtek.h \
|
|
+ $(INCLUDE)/cgmgdp.h \
|
|
+ $(INCLUDE)/cgmcolr.h \
|
|
+ $(INCLUDE)/cgmcell.h \
|
|
+ $(INCLUDE)/cgmpts.h
|
|
+
|
|
+.c.o:
|
|
+ $(COMPILE) $(CFLAGS) -I$(INCLUDE) $<
|
|
+
|
|
+.SUFFIXES: .c .o
|