From decwrl!ucbvax!tut.cis.ohio-state.edu!cs.utexas.edu!uunet!allbery Mon May 15 07:39:52 PDT 1989 Article 871 of comp.sources.misc: Path: decwrl!ucbvax!tut.cis.ohio-state.edu!cs.utexas.edu!uunet!allbery From: allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc) Newsgroups: comp.sources.misc Subject: v06i102: glib part 1 of 15 Message-ID: <54812@uunet.UU.NET> Date: 15 May 89 03:37:44 GMT Sender: allbery@uunet.UU.NET Reply-To: lee@uhccux.uhcc.Hawaii.Edu (Greg Lee ) Lines: 1937 Approved: allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc) Posting-number: Volume 6, Issue 102 Submitted-by: lee@uhccux.uhcc.Hawaii.Edu (Greg Lee ) Archive-name: glib/part01 This is an alpha distribution (v. 1.6) of glib, an editor and librarian for synthesizer patches by Tim Thompson with modifications by Steve Falco, Michael Kesti, Alan Bland, Greg Lee, Scott Snyder, and Mark Rinfret. There are 15 shar files. Greg Lee, lee@uhccux.uhcc.hawaii.edu, May 7, 1989 #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh 'AmiAztec-make' <<'END_OF_FILE' X# $Id: AmiAztec-make,v 1.6 89/05/06 17:13:04 lee Exp $ X# Mark Rinfret X# $Log: AmiAztec-make,v $ X# Revision 1.6 89/05/06 17:13:04 lee X# rel. to comp.sources.misc X# X# X# this makefile is for the AMIGA using Aztec C X# X X#Define the following flag if you want statistics gathering: X#STATS = -DSTATISTICS XSTATS = XSYNTHS = -DCZ1 XCFLAGS = -B +L $(SYNTHS) -E200 -n $(STATS) XCC = cc X X# OBJ = machdep.o glib.o list.o dx100.o tx81z.o tx81p.o dw8000.o yama_com.o\ X# k5.o cz1.o amigadir.o X X# CZ1-only build (be sure to change list.c #defines): XOBJ = machdep.o glib.o list.o cz1.o amigadir.o X X# OBJ = machdep.o glib.o list.o k5.o X Xglib : menutoc $(OBJ) X ln -w -g -o glib $(OBJ) -lc32 X Xmachdep.h: amigmach.h X copy amigmach.h machdep.h X Xmachdep.o: machdep.c machdep.h X Xmachdep.c: amigmach.c X copy amigmach.c machdep.c X X# This doesn't appear to work for Aztec's make. ? X# .mnu.c: X# @rm -f $@ X# menutoc <$*.mnu >$@ X Xmenutoc: menutoc.o X ln -w -g -o menutoc menutoc.o -lc32 X Xmenutoc.c: menutoc.l X flex menutoc.l X copy clone lex.yy.c menutoc.c X Xcz1.c: cz1.mnu menutoc X menutoc cz1.c X Xcz1.o: cz1.c X X X X END_OF_FILE if test 1153 -ne `wc -c <'AmiAztec-make'`; then echo shar: \"'AmiAztec-make'\" unpacked with wrong size! fi # end of 'AmiAztec-make' fi if test -f 'MANIFEST' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'MANIFEST'\" else echo shar: Extracting \"'MANIFEST'\" \(3707 characters\) sed "s/^X//" >'MANIFEST' <<'END_OF_FILE' X File Name Archive # Description X----------------------------------------------------------- X AmiAztec-make 1 X CHANGES 2 note recent modifications X DX-README 2 notes on DX7 version X MANIFEST 1 This shipping list X Makefile 1 for Ultrix X PORTING 6 how to implement a version for a new synth X README 1 X README.arp 1 doc on Dave Weiler's arp modification X ReadMe.CZ1 1 X amigadir.c 1 Unix-like dir access for Amiga X amigadir.h 1 Unix-like dir access for Amiga X amigmach.c 7 X amigmach.h 1 X amigmake 1 X ctomenu.l 2 (f)lex program partially translates old C X cz.h 2 CZ1/CZ101 support X cz1.mnu 12 CZ1/CZ101 support X d10pat.mnu 4 Roland D10 "synth" module X d10rsu.mnu 3 Roland D10 "synth" module X d10tim.mnu 4 Roland D10 "synth" module X d10ton.c 3 misc. Roland ton routines X d10tra.mnu 5 Roland D10 "synth" module X d10tva.mnu 2 Roland D10 "synth" module X d10tvf.mnu 2 Roland D10 "synth" module X d10urp.mnu 7 Roland D10 "synth" module X d10wfg.mnu 2 Roland D10 "synth" module X dep5.mnu 8 DEP5 synth module X dw8000.mnu 5 Yamaha synth module X dx100.mnu 1 Yamaha synth module X dx7.mnu 9 DX7 synth module X dx7s.mnu 10 DX7s synth module (requires dx7.mnu) X glib.1 3 man page X glib.c 15 the editor X glib.h 1 shared data between editor and synth modules X glib.man 4 preformatted man page X glibinit.dp5 4 required for DEP5 X k1multi.mnu 6 K1 "synth" module for multi patches X k1single.mnu 2 K1 "synth" module for single patches X k1vis.c 3 K1 display routines for patch edit screens X k1vis.h 1 include for k1vis.c (made: make k1vis.h) X k5multi.mnu 1 K5 "synth" module for multi patches X k5single.mnu 5 K5 "synth" module for multi patches X list.c 4 tells editor which synth modules to use X mac-glib.r 1 X mac-mach.c 3 X mac-mach.h 1 X mac-make.uu 1 X mac-mdr.a 8 X mac-mdr.h 1 X mac-vt.c 9 X mac-vt.h 1 X makevish.l 1 (f)lex program makes (k1)vis.h (from (k1)vis.c) X menutoc.c 11 constructed from menutoc.l with flex X menutoc.l 7 (f)lex program translates .menu files to C X patchlevel.h 1 record number of patches applied X pc-ints.asm 6 X pc-mach.c 6 ibmpc X pc-mach.h 2 ibmpc X pc-readme 1 X pc-tcc.mak 1 makefile for Turbo C X smp1.arc.uu 14 sample patch files X smp2.arc.uu 13 sample patch files X st-mach.c 2 atari st X st-mach.h 1 atari st X tx81p.mnu 8 Yamaha synth module X tx81z.mnu 3 Yamaha synth module X unix-mach.c 3 Unix routines (midi io routines stubbed) X unix-mach.h 1 Unix defines X vis.c 5 D10 display routines for patch edit screens X vis.h 1 include for vis.c (made: make vis.h) X yama_com.c 10 misc. Yamaha routines END_OF_FILE if test 3707 -ne `wc -c <'MANIFEST'`; then echo shar: \"'MANIFEST'\" unpacked with wrong size! fi # end of 'MANIFEST' fi if test -f 'Makefile' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'Makefile'\" else echo shar: Extracting \"'Makefile'\" \(3731 characters\) sed "s/^X//" >'Makefile' <<'END_OF_FILE' X# $Id: Makefile,v 1.6 89/05/06 17:13:07 lee Exp $ X# Glib, Unix version for Kawai K1, etc. X# Greg Lee, lee@uhccux.uhcc.hawaii.edu X# Feb, 1989 X# adapted from Tim Thompson's program and Michael Kesti's version X# $Log: Makefile,v $ X# Revision 1.6 89/05/06 17:13:07 lee X# rel. to comp.sources.misc X# X# X XLEX = flex XLEXLIB = X# to use lex instead of flex: X#LEX = lex X#LEXLIB = -ll X X# defines for CFLAGS (below): X# BSD for fopen with mode 'r'/'w' instead of 'rb'/'wb' X# ULTRIX enables curses no()/nonl() fix X# ARROW for use of arrow keys X# SSS to enable speed-up code in glib.c X# X# and uncomment one set of the following for supported synths: X X# Remove '#' from next 5 lines for Roland D-10: X#SYNTHS = -DROLANDD10 X#SYNTHOBJ = vis.o d10pat.o d10tim.o d10ton.o d10wfg.o d10tvf.o d10tva.o \ X# d10rsu.o d10urp.o d10tra.o X#SYNTHC = d10pat.c d10tim.c d10wfg.c d10tvf.c d10tva.c \ X# d10rsu.c d10urp.c d10tra.c # vis.h X X# Remove '#' from next 4 lines for various Yamaha, K5, etc.: X#SYNTHS = -DTX81Z -DTX81ZPERF -DDX100 -DDW8000 -DKAWAIK5 -DDEP5 X#SYNTHOBJ = dx100.o tx81z.o tx81p.o dw8000.o yama_com.o \ X# k5single.o k5multi.o dep5.o X#SYNTHC = dx100.c tx81z.c tx81p.c dw8000.c k5single.c k5multi.c dep5.c X X# Remove '#' from next 3 lines for DX7: X#SYNTHS = -DDX7 -DDX7S X#SYNTHOBJ = dx7.o dx7s.o X#SYNTHC = dx7.c dx7s.c X X# Remove '#' from next 3 lines for Kawai K1: X#SYNTHS = -DKAWAIK1 X#SYNTHOBJ = k1vis.o k1multi.o k1single.o X#SYNTHC = k1multi.c k1single.c # k1vis.h X X# Remove '#' from next 3 lines for CZ1: X#SYNTHS = -DCZ1 X#SYNTHOBJ = cz1.o X#SYNTHC = cz1.c X XDEFNS = -DBSD -DULTRIX -DARROW -DSSS $(SYNTHS) XCFLAGS = -O $(DEFNS) X XOBJ = machdep.o glib.o list.o $(SYNTHOBJ) X XLIBS = -lcurses -ltermcap -lm X X.SUFFIXES: .mnu X Xglib : menutoc $(SYNTHC) $(OBJ) X $(CC) -s $(OBJ) $(LIBS) -o glib X @echo "Make complete." X Xlint: $(SYNTHC) X @rm -f lintlog X lint -phbv -Dlint $(DEFNS) glib.c list.c $(SYNTHC) \ X machdep.c $(LIBS) >lintlog X# add yama_com.c above to lint dx100, etc. version X Xmachdep.c: unix-mach.c machdep.h X rm -f machdep.c X ln -s unix-mach.c machdep.c X Xmachdep.h: unix-mach.h X rm -f machdep.h X ln -s unix-mach.h machdep.h X Xmachdep.o : machdep.c glib.h /usr/include/ctype.h \ X /usr/include/curses.h /usr/include/sys/termio.h X# On the UNIX PC (at least mine), cbreak() and nocbreak() aren't in X# libcurses.a so this hack (-DFAKECBREAK) is one way out. X# On the UNIX PC, add a -DFAKECBREAK to the following line X# cc $(CFLAGS) -c machdep.c -DFAKECBREAK X $(CC) $(CFLAGS) -c machdep.c X X.mnu.c: X @rm -f $@ X menutoc $*.mnu >$@ X Xmenutoc: menutoc.c X $(CC) -s -o menutoc menutoc.c $(LEXLIB) X Xmenutoc.c: menutoc.l X touch menutoc.c X# to revise menutoc, substitute for above: X#menutoc.c: menutoc.l X# $(LEX) menutoc.l X# mv lex.yy.c menutoc.c X X# to automate construction of k1vis.h: X#k1vis.h: k1vis.c makevish X# rm -f k1vis.h X# makevish k1vis.h X X# to automate construction of vis.h: X#vis.h: vis.c makevish X# rm -f vis.h X# makevish vis.h X Xmakevish: makevish.l X $(LEX) makevish.l X $(CC) -o makevish lex.yy.c $(LEXLIB) X Xctomenu: ctomenu.l X $(LEX) ctomenu.l X $(CC) -o ctomenu lex.yy.c $(LEXLIB) X Xclean: X rm -f *.o lex.yy.c $(SYNTHC) makevish \ X machdep.c machdep.h menutoc core MANIFEST.BAK *.hdr X Xshar: X rm -f glib.shar.* X makekit -m -nglib.shar. X Xglib.o: glib.h Xlist.o: glib.h Xmachdep.o: glib.h Xyama_com.o: glib.h Xcz1.o: glib.h cz.h Xd10pat.o: glib.h vis.h Xd10rsu.o: glib.h vis.h Xd10tim.o: glib.h vis.h Xd10ton.o: glib.h Xd10tra.o: glib.h vis.h Xd10tva.o: glib.h vis.h Xd10tvf.o: glib.h vis.h Xd10urp.o: glib.h vis.h Xd10wfg.o: glib.h vis.h Xdep5.o: glib.h Xdw8000.o: glib.h Xdx100.o: glib.h Xdx7.o: glib.h Xdx7s.o: glib.h Xk1multi.o: glib.h k1vis.h Xk1single.o: glib.h k1vis.h Xk5multi.o: glib.h Xk5single.o: glib.h Xtx81p.o: glib.h Xtx81z.o: glib.h END_OF_FILE if test 3731 -ne `wc -c <'Makefile'`; then echo shar: \"'Makefile'\" unpacked with wrong size! fi # end of 'Makefile' fi if test -f 'README' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'README'\" else echo shar: Extracting \"'README'\" \(2050 characters\) sed "s/^X//" >'README' <<'END_OF_FILE' X X XThis is an alpha distribution of glib, an editor and librarian for Xsynthesizer patches by Tim Thompson with modifications by Steve Falco, XMichael Kesti, Alan Bland, Greg Lee, Scott Snyder, and Mark Rinfret. XSome of the code was originally written by Steve Frysinger (moss!spf), XJohn Helton, and James Gosling. (I may have misattributed authorship Xof some files -- please tell me.) X XSample patch files are arc'd and uuencoded in the file samples.arc.uu. X XIt compiles and the editing and file parts work (seemingly) under Unix X(Ultrix). Midi communications with a synth are not implemented, Xhowever. Previous versions, including midi communication, have Xapparently worked for Ibmpc's, Atari st, Apple Macintosh, and Amiga. XThe source for these pc's is included, but I don't know whether it works Xwith this version. At the very least, in most cases the makefiles will Xhave to be updated. The most recently worked on pc versions are the Xones for Amiga-CZ1 and TurboC-Dx7, so they are the most likely to work Xas is. X XThe U and D commands (dump/undump midi commands to file) are implemented Xonly for the Unix version. The relevant code in unix-mach.c would Xhave to be merged into the various ...mach.c files. X XTo compile the Unix BSD Ultrix version, first uncomment some lines in Xthe Makefile (as noted there), depending on which synths you want glib Xto handle, then type 'make'. For other varieties of Unix, remove X'-DULTRIX' or '-DBSD' from CFLAGS in the Makefile, and hope for the Xbest. This will probably work for the ATT 3b1. For the various little Xpc's, consult the information in the PORTING document, in ReadMe.CZ1, Xand in DX-README (for the Dx7). NB: For the TURBO-C plus DX7 Xversion, one must uncomment #pragma directives in two places in file Xdx7.mnu. X XFor instructions for use, see glib.man (troff source in glib.1). XFor porting to new synths, see PORTING. X XFixes, code for other pc's or synthesizers, suggestions, complaints Xcan be sent to me or posted, as you think best. X X Greg Lee, lee@uhccux.uhcc.hawaii.edu, April 28, 1989 END_OF_FILE if test 2050 -ne `wc -c <'README'`; then echo shar: \"'README'\" unpacked with wrong size! fi # end of 'README' fi if test -f 'README.arp' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'README.arp'\" else echo shar: Extracting \"'README.arp'\" \(1469 characters\) sed "s/^X//" >'README.arp' <<'END_OF_FILE' XADDITION OF ARP FILE REQUESTER TO GLIB X XThe file machdep.c (Amiga version) has been modified to use the ARP Xfile requester if the symbol ARP is defined. X Xe.g. to compile machdep.c using Lattice 5.02 use: X lc -cw -dARP machdep X XThe boolean variable FileRequestImminent is set to TRUE if the subroutine Xwindstr(s) is called with the first 9 characters of the string "s" equal Xto "File name"; i.e., it looks for the "File name --> " prompt. X XIf FileRequestImminent is TRUE when the subroutine windgets(s), is called, Xthen the ARP file requester is invoked and the resultant file name is Xreturned in the string s. FileRequestImminent is set to FALSE so that Xsubsequent calls to windgets(s) do not invoke the ARP file requester, Xunless preceeded by another file name prompt. X XThe above works only if "glib.c" sticks more or less to the following Xmethod of getting the file name: X message("File name --> "); X windgets(fname); X XWhen linking, if ARP is defined, it is necessary to use the ARP startup Xcode "arpc.o" instead of the usual "c.o", and to include LIB:arp.lib, Xe.g.: X XFROM LIB:arpc.o+glib.o+d10pat.o+ etc. XTO glib XLIB LIB:arp.lib LIB:lc.lib LIB:amiga.lib X XIf the program is compiled to use the ARP file requester, and is then Xrun on a system which does not have "arp.library" in libs:, then it Xwill gracefully exit with an error message (as with other ARP programs). X X Dave Weiler X #513, 918-16 Ave NW X CALGARY, Alberta X Canada T2M 0K3 X (403) 295-3084 X bix: dweiler END_OF_FILE if test 1469 -ne `wc -c <'README.arp'`; then echo shar: \"'README.arp'\" unpacked with wrong size! fi # end of 'README.arp' fi if test -f 'ReadMe.CZ1' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'ReadMe.CZ1'\" else echo shar: Extracting \"'ReadMe.CZ1'\" \(2671 characters\) sed "s/^X//" >'ReadMe.CZ1' <<'END_OF_FILE' X XAbout the CZ1 segment of GLIB: X------------------------------ XMark Rinfret, 04/24/89 X X XI am releasing this to the public, even though it is not finished. I've Xdone the really hard grunt work. Some polishing is definitely in order. X XI developed this on an Amiga 1000 using Aztec C, 3.6b. Alan Bland gets Xthe credit for the Amiga support routines. I added in some portable Xdirectory routines that I obtained from Usenet and a couple of mods Xto amiga-mach.c and glib proper. X XThe CZ1 is a nice synth, but its MIDI encodings are a nightmare. I Xhaven't done so much bit-diddling since I worked on military Xsystems as a civil servant! If you see code in cz1.c that appears to do Xreally strange things, that's because it does really strange things. XOne of the problems I encountered was with the Aztec compiler and Xalignment of the patch data structure. I would like to have used a better Xdefinition of the patch structure, but the compiler insisted on inserting Xextra alignment bytes in my preferred representation. X XI've experienced timeouts when downloading bulk patch data from the Xsynth. The download sequence might get as high as say, voice 33, and Xthen time out on me. I might have to retry a couple of times, but I Xalways eventually complete the sequence. This may be a problem isolated Xto my particular setup, but if you experience similar problems, please Xlet me know. X XYou'll notice a couple of "#ifdef undef" statements in the cz1.c module. XI was going to include settings for Glide, Portamento, etc., and then Xrealized that these are really "operational" parameters rather than Xinformation that's kept with the patch data. There really should be Xanother segment for controlling the thousand other features of the CZ1. XI was primarily interested in using GLIB for creating/managing patches. X[These settings are now included in the menu (there is no file cz1.c Xanymore), but are not stored in the patch file. -- gl] X XIf you peruse the source, you will find some references to the CZ-101 Xin the cz.h header file. That's a throwback to an earlier age. If Xsomeone decides to implement a CZ-101 segment, he/she should not Xtake any of the CZ-101 stuff for granted. Though the CZ-1 and CZ-101 Xare of the same family, I used sysex messages not available to the XCZ-101. X XThat about wraps it. If you have any comments/questions/suggestions/changes, Xplease get in touch with me. You can reach me at one of the following: X X Mark R. Rinfret X work - 401-849-9390 (0700-1700) X home - 401-846-7639 (1900-2200) X Usenet - mrr@amanpt1.Newport.RI.US X ...!rayssd!galaxia!amanpt1!mrr X X BIX - markr (I seldom go there) X CIS - 72017, 136 (ditto) X X END_OF_FILE if test 2671 -ne `wc -c <'ReadMe.CZ1'`; then echo shar: \"'ReadMe.CZ1'\" unpacked with wrong size! fi # end of 'ReadMe.CZ1' fi if test -f 'amigadir.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'amigadir.c'\" else echo shar: Extracting \"'amigadir.c'\" \(2519 characters\) sed "s/^X//" >'amigadir.c' <<'END_OF_FILE' X/* $Id: amigadir.c,v 1.6 89/05/06 17:13:09 lee Exp $ X * X * ndir - routines to simulate the 4BSD new directory code for AmigaDOS. X */ X#include "dir.h" X XDIR * Xopendir(dirname) X char *dirname; X{ X register DIR *my_dir, *AllocMem() ; X struct FileLock *Lock(), *CurrentDir() ; X X if ((my_dir = AllocMem((long) sizeof(DIR), 0L)) == NULL) return NULL ; X X X if (((my_dir -> d_lock = Lock(dirname, ACCESS_READ)) == NULL) X /* If we can't examine it */ X || !Examine(my_dir -> d_lock, &(my_dir -> d_info)) X /* Or it's not a directory */ X || (my_dir -> d_info . fib_DirEntryType < 0)) { X FreeMem(my_dir, (long) sizeof(DIR)) ; X return NULL ; X } X return my_dir ; X } X Xstruct direct * Xreaddir(my_dir) DIR *my_dir; { X static struct direct result ; X X if (!ExNext(my_dir -> d_lock, &(my_dir -> d_info))) return NULL ; X X result.d_reclen = result.d_ino = 1 ; /* Not NULL! */ X (void) strcpy(result.d_name, my_dir -> d_info.fib_FileName) ; X result.d_namlen = strlen(result.d_name) ; X return &result ; X } X Xvoid Xclosedir(my_dir) DIR *my_dir; { X X UnLock(my_dir -> d_lock) ; X FreeMem(my_dir, (long) sizeof(DIR)) ; X } X/* X * telldir and seekdir don't work quite right. The problem is that you have X * to save more than a long's worth of stuff to indicate position, and it's X * socially unacceptable to alloc stuff that you don't free later under X * AmigaDOS. So we fake it - you get one level of seek, and dat's all. X * As of now, these things are untested. X */ X#define DIR_SEEK_RETURN ((long) 1) /* Not 0! */ Xlong Xtelldir(my_dir) X DIR *my_dir; X{ X my_dir -> d_seek = my_dir -> d_info ; X return (long) DIR_SEEK_RETURN ; X} X Xvoid Xseekdir(my_dir, where) X DIR *my_dir; long where; X{ X if (where == DIR_SEEK_RETURN) X my_dir -> d_info = my_dir -> d_seek ; X else /* Makes the next readdir fail */ X setmem((char *) my_dir, sizeof(DIR), 0) ; X} X Xvoid Xrewinddir(my_dir) X DIR *my_dir; X{ X X if (!Examine(my_dir -> d_lock, &(my_dir -> d_info))) X setmem((char *) my_dir, sizeof(DIR), 0) ; X} X#ifdef TEST X/* X * Simple code to list the files in the argument directory, X * lifted straight from the man page. X */ X#include Xvoid Xmain(argc, argv) int argc; char **argv; { X register DIR *dirp ; X register struct direct *dp ; X register char *name ; X X if (argc < 2) name = "" ; X else name = argv[1] ; X X if ((dirp = opendir(name)) == NULL) { X fprintf(stderr, "Bogus! Can't opendir %s\n", name) ; X exit(1) ; X } X X for (dp = readdir(dirp); dp != NULL; dp = readdir(dirp)) X printf("%s ", dp -> d_name) ; X closedir(dirp); X putchar('\n') ; X } X#endif TEST X END_OF_FILE if test 2519 -ne `wc -c <'amigadir.c'`; then echo shar: \"'amigadir.c'\" unpacked with wrong size! fi # end of 'amigadir.c' fi if test -f 'amigadir.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'amigadir.h'\" else echo shar: Extracting \"'amigadir.h'\" \(1801 characters\) sed "s/^X//" >'amigadir.h' <<'END_OF_FILE' X/* $Id: amigadir.h,v 1.6 89/05/06 17:13:10 lee Exp $ X */ X#ifndef DIR_H X#define DIR_H X X#ifndef EXEC_TYPES_H X#include "exec/types.h" X#endif X X#ifndef LIBRARIES_DOS_H X#include "libraries/dos.h" X#endif X X#ifndef LIBRARIES_DOSEXTENS_H X#include "libraries/dosextens.h" X#endif X/* X * MAXNAMELEN is the maximum length a file name can be. The direct structure X * is lifted form 4BSD, and has not been changed so that code which uses X * it will be compatable with 4BSD code. d_ino and d_reclen are unused, X * and will probably be set to some non-zero value. X */ X#define MAXNAMLEN 31 /* AmigaDOS file max length */ X Xstruct direct { X ULONG d_ino ; /* unused - there for compatability */ X USHORT d_reclen ; /* ditto */ X USHORT d_namlen ; /* length of string in d_name */ X char d_name[MAXNAMLEN + 1] ; /* name must be no longer than this */ X}; X/* X * The DIRSIZ macro gives the minimum record length which will hold X * the directory entry. This requires the amount of space in struct direct X * without the d_name field, plus enough space for the name with a terminating X * null byte (dp->d_namlen+1), rounded up to a 4 byte boundary. X */ X X#undef DIRSIZ X#define DIRSIZ(dp) \ X ((sizeof(struct direct) - (MAXNAMLEN+1)) + (((dp) -> d_namlen+1 + 3) &~ 3)) X/* X * The DIR structure holds the things that AmigaDOS needs to know about X * a file to keep track of where it is and what it's doing. X */ X Xtypedef struct { X struct FileInfoBlock d_info , /* Default info block */ X d_seek ; /* Info block for seeks */ X struct FileLock *d_lock ; /* Lock on directory */ X } DIR ; X Xextern DIR *opendir(/* char * */); Xextern struct direct *readdir(/* DIR * */) ; Xextern long telldir(/* DIR * */) ; Xextern void seekdir(/* DIR *, long */) ; Xextern void rewinddir(/* DIR * */) ; Xextern void closedir(/* DIR * */) ; X#endif DIR_H END_OF_FILE if test 1801 -ne `wc -c <'amigadir.h'`; then echo shar: \"'amigadir.h'\" unpacked with wrong size! fi # end of 'amigadir.h' fi if test -f 'amigmach.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'amigmach.h'\" else echo shar: Extracting \"'amigmach.h'\" \(358 characters\) sed "s/^X//" >'amigmach.h' <<'END_OF_FILE' X/* $Id: amigmach.h,v 1.6 89/05/06 17:13:11 lee Exp $ X * X * GLIB - a Generic LIBrarian and editor for synths X * X * Machine dependent stuff. X * X * Amiga version X * Alan Bland X * $Log: amigmach.h,v $ X * Revision 1.6 89/05/06 17:13:11 lee X * rel. to comp.sources.misc X * X */ X X#include X X#define INT16 int X X#define STATMIDI statmidi() X#define AMIGA END_OF_FILE if test 358 -ne `wc -c <'amigmach.h'`; then echo shar: \"'amigmach.h'\" unpacked with wrong size! fi # end of 'amigmach.h' fi if test -f 'amigmake' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'amigmake'\" else echo shar: Extracting \"'amigmake'\" \(477 characters\) sed "s/^X//" >'amigmake' <<'END_OF_FILE' X# $Id: amigmake,v 1.6 89/05/06 17:13:11 lee Exp $ X# Alan Bland X# $Log: amigmake,v $ X# Revision 1.6 89/05/06 17:13:11 lee X# rel. to comp.sources.misc X# X# X# this makefile is for the AMIGA using the LMK utility and Lattice 5.02 X# X XOBJ = machdep.o glib.o list.o dx100.o tx81z.o tx81p.o dw8000.o yama_com.o k5.o X# OBJ = machdep.o glib.o list.o k5.o X X.c.o : X lc:lc -cw -cs -v $* X Xglib : $(OBJ) X lc:blink from lib:c.o $(OBJ) lib lib:lc.lib lib:amiga.lib \ X batch nodebug to glib END_OF_FILE if test 477 -ne `wc -c <'amigmake'`; then echo shar: \"'amigmake'\" unpacked with wrong size! fi # end of 'amigmake' fi if test -f 'dx100.mnu' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'dx100.mnu'\" else echo shar: Extracting \"'dx100.mnu'\" \(4111 characters\) sed "s/^X//" >'dx100.mnu' <<'END_OF_FILE' X/* $Id: dx100.mnu,v 1.6 89/05/06 17:13:22 lee Exp $ X * GLIB - a Generic LIBrarian and editor for synths X * X * DX-100 routines X * Tim Thompson X * modifications: Greg Lee X * $Log: dx100.mnu,v $ X * Revision 1.6 89/05/06 17:13:22 lee X * rel. to comp.sources.misc X * X */ X X#define OVERLAY1 X X#include "glib.h" X#include X Xchar *visnum(), *visonoff(), *vism3num(), *viswave(), *vismono(); Xchar *visfreq(), *visdx1a(); X X#define RESERVESIZE 0 X X/* This array contains arbitrary screen labels */ Xstruct labelinfo Ldx100[] = { X#MENU X X Algorithm % X ========= X X Dcy Lev Dcy De Out Amp Eg Key Key X OP Atk 1 1 2 Rls Freq tun Lvl Vel Mod Bia Rat Scl X -- --- --- --- --- --- ---- --- --- --- --- --- --- --- X 1 % % % % % % % % % % % % % X 2 % % % % % % % % % % % % % X 3 % % % % % % % % % % % % % X 4 % % % % % % % % % % % % % X X Feedback % Mono/Poly % X-------------------------+ Transpose % Amp Mod Depth % XN = set name q = quit | LFO Speed % Amp Mod Sense % Xh = left l = right | LFO Delay % Pitch Mod Depth % Xk = up j = down | LFO Wave % Pitch Mod Sense % XK = incr J = decr | LFO Sync % Mod Pitch Range % Xspace = play auto-note | Pitch Bend % Mod Amp Range % X | Port. Time % Breath Pitch % XAuto-Note: | Port. Mode % Breath Amp % X Pitch % Vol % | Port. Foot % Breath Pitch Bias % X Dur % Chan % | Sus. Foot % Breath EG Bias % X | X#END X-1,-1,NULL X}; X Xstruct paraminfo Pdx100[] = { X/* XNAME TYPE POS MAX OFFSET MASK SHIFT ADHOC X */ X#O algorithm dx1a %% 7 0 X#O op1attack num %% 31 0 X#O op1decay1 num %% 31 0 X#O op1level1 num %% 15 0 X#O op1decay2 num %% 31 0 X#O op1release num %% 31 0 X#O op1freq freq %% 63 0 X#O op1detune m3num %% 6 0 X#O op1outlevel num %% 99 0 X#O op1velocity num %% 7 0 X#O op1ampmod onoff %% 1 0 X#O op1egbias num %% 7 0 X#O op1keyrate num %% 3 0 X#O op1keyscale num %% 99 0 X#O op2attack num %% 31 0 X#O op2decay1 num %% 31 0 X#O op2level1 num %% 15 0 X#O op2decay2 num %% 31 0 X#O op2release num %% 31 0 X#O op2freq freq %% 63 0 X#O op2detune m3num %% 6 0 X#O op2outlevel num %% 99 0 X#O op2velocity num %% 7 0 X#O op2ampmod onoff %% 1 0 X#O op2egbias num %% 7 0 X#O op2keyrate num %% 3 0 X#O op2keyscale num %% 99 0 X#O op3attack num %% 31 0 X#O op3decay1 num %% 31 0 X#O op3level1 num %% 15 0 X#O op3decay2 num %% 31 0 X#O op3release num %% 31 0 X#O op3freq freq %% 63 0 X#O op3detune m3num %% 6 0 X#O op3outlevel num %% 99 0 X#O op3velocity num %% 7 0 X#O op3ampmod onoff %% 1 0 X#O op3egbias num %% 7 0 X#O op3keyrate num %% 3 0 X#O op3keyscale num %% 99 0 X#O op4attack num %% 31 0 X#O op4decay1 num %% 31 0 X#O op4level1 num %% 15 0 X#O op4decay2 num %% 31 0 X#O op4release num %% 31 0 X#O op4freq freq %% 63 0 X#O op4detune m3num %% 6 0 X#O op4outlevel num %% 99 0 X#O op4velocity num %% 7 0 X#O op4ampmod onoff %% 1 0 X#O op4egbias num %% 7 0 X#O op4keyrate num %% 3 0 X#O op4keyscale num %% 99 0 X#O feedback num %% 7 0 X#O playmode mono %% 1 0 X#O transpose num %% 45 0 X#O amoddepth num %% 99 0 X#O lfospeed num %% 99 0 X#O amodsens num %% 3 0 X#O lfodelay num %% 99 0 X#O pmoddepth num %% 99 0 X#O lfowave wave %% 3 0 X#O pmodsens num %% 7 0 X#O lfosync onoff %% 1 0 X#O modprange num %% 99 0 X#O pitchbend num %% 12 0 X#O modarange num %% 99 0 X#O portatime num %% 99 0 X#O breathprange num %% 99 0 X#O portmode num %% 1 0 X#O breatharange num %% 99 0 X#O autovol num %% 127 -63 X#O autopitch num %% 127 -60 X#O portfoot onoff %% 1 0 X#O breathpbias num %% 99 0 X#O autochan num %% 16 -1 *5 X#O autodur num %% 20 -5 *5 X#O susfoot onoff %% 1 0 X#O breathegbias num %% 99 0 XNULL,NULL,-1,-1,-1,-1,visnum,0,0,0,0 X}; X END_OF_FILE if test 4111 -ne `wc -c <'dx100.mnu'`; then echo shar: \"'dx100.mnu'\" unpacked with wrong size! fi # end of 'dx100.mnu' fi if test -f 'glib.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'glib.h'\" else echo shar: Extracting \"'glib.h'\" \(3792 characters\) sed "s/^X//" >'glib.h' <<'END_OF_FILE' X/* $Id: glib.h,v 1.6 89/05/06 17:13:25 lee Exp $ X * X * GLIB - a Generic LIBrarian and editor for synths X * Tim Thompson X * modifications: Kesti, Lee X * $Log: glib.h,v $ X * Revision 1.6 89/05/06 17:13:25 lee X * rel. to comp.sources.misc X * X */ X X#include X#include "machdep.h" X X#define EOX 0xf7 X#define MOUSE -2 X X#ifndef BUFSIZ X#define BUFSIZ 512 X#endif X X/* If a machine needs to do something special to read/write a binary file, */ X/* this is a hook that a machdep.h can override to do what it needs to. */ X/* For example, see the Atari ST version of machdep.h */ X#ifndef OPENBINFILE X#define OPENBINFILE(f,file,mode) f=fopen(file,mode) X#endif X X X#ifndef OPENTEXTFILE X#define OPENTEXTFILE(f,name,mode) f=fopen(name,mode) X#endif X X/* Seconds before we give up trying to read something */ X#define TIMEOUT 5 X X#define NUMONSCREEN 12 X/* position of first voice row */ X#define FIRSTROW 10 X#define LEFTSIDE 2 X#define RIGHTSIDE 55 X#define YANKROW 12 X#define YANKCOL 31 X#define LIBBANKS 3 X#define NOREDRAW 0 X#define REDRAW 1 X X#define ctl(x) (x&037) X X#define CH_REDRAW '\014' X X#define CH_INC 'K' X#define CH_INC2 'I' X#define CH_INC3 '>' X#define CH_DEC 'J' X#define CH_DEC2 'M' X#define CH_DEC3 '<' X#define CH_SAME 'S' X X#define CH_LEFT 'h' X#define CH_DOWN 'j' X#define CH_UP 'k' X#define CH_RIGHT 'l' X/* for arrow key support to work, next 4 defines X * can't be changed (unless code in unix-mach.c is modified) X */ X#define ALTCH_LEFT ctl('b') X#define ALTCH_DOWN ctl('n') X#define ALTCH_UP ctl('p') X#define ALTCH_RIGHT ctl('f') X X#define SCR_DOWN '\04' X#define SCR_UP '\025' X X#define STR_LEFT "h" X#define STR_DOWN "j" X#define STR_UP "k" X#define STR_RIGHT "l" X X#define VOICEBYTE(d,v,n) (*((d)+(v)*Voicesize+(n))) X Xstruct paraminfo { X char *p_name; X char *p_label; X INT16 p_lrow; /* position for printing name */ X INT16 p_lcol; X INT16 p_vrow; /* position for printing value */ X INT16 p_vcol; X char *((*p_tovis)()); X INT16 p_min; X INT16 p_max; X INT16 p_val; X INT16 p_flags; X}; X Xstruct labelinfo { X INT16 l_row; X INT16 l_col; X char *l_text; X}; X Xstruct editinfo { X char *ed_name; /* Synth name */ X struct paraminfo *ed_params; /* list of parameters */ X struct labelinfo *ed_labels; /* screen labels in edit mode */ X INT16 ed_nvoices; /* number of voices */ X INT16 ed_vsize; /* size of each voice data, in bytes */ X INT16 ed_nsize; /* name size */ X int ed_dataid; /* data ID */ X int (*ed_din)(); /* copy voice data into paraminfo array */ X int (*ed_dout)(); /* copy voice data out of paraminfo array */ X int (*ed_sedit)(); /* send 1 voice to synth edit buffer */ X int (*ed_sone)(); /* send 1 voice to a synth (permanent) patch*/ X int (*ed_sbulk)(); /* send bulk voice data */ X int (*ed_gbulk)(); /* get bulk voice data */ X char *(*ed_nof)(); /* get name of a voice out of data */ X int (*ed_snof)(); /* set name of a voice in data */ X char *(*ed_numof)(); /* convert voice number to on-screen text */ X int (*ed_cvtnum)(); /* convert visable voice number to std. format */ X int (*ed_cvtanum)(); /* convert alphanumeric voice number to std. format */ X}; X Xstruct peredinfo { X char *ed_libdata; /* memory for library banks */ X char *ed_syndata; /* memory for synth bank */ X char *ed_yankdata; /* memory for yank buffer */ X INT16 ed_libindex; /* voice number of topmost displayed lib voice*/ X INT16 ed_synindex; /* ditto for synth side */ X INT16 ed_channel; /* MIDI channel # */ X INT16 ed_erow; X INT16 ed_ecol; X}; X Xextern struct paraminfo *P; Xextern struct labelinfo *L; Xextern struct editinfo E[]; Xextern int Rows, Cols, Channel, Nvoices, Voicesize, Redraw, DataID; Xextern char *Reason, *Synthname; X Xchar *bankvoice(); Xvoid setval(); Xint getval(); Xchar *malloc(), *alloc(), *nextls(); XFILE *fopen(); Xchar *strcat(), *strcpy(); Xlong milliclock(); X Xextern int synthinfileflag; Xextern int synthoutfileflag; END_OF_FILE if test 3792 -ne `wc -c <'glib.h'`; then echo shar: \"'glib.h'\" unpacked with wrong size! fi # end of 'glib.h' fi if test -f 'k1vis.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'k1vis.h'\" else echo shar: Extracting \"'k1vis.h'\" \(511 characters\) sed "s/^X//" >'k1vis.h' <<'END_OF_FILE' Xchar *visnum(); Xchar *vispnum(); Xchar *vispan(); Xchar *vispoly(); Xchar *visvelosw(); Xchar *vismode(); Xchar *vistwofour(); Xchar *vismute(); Xchar *vispolym(); Xchar *visvbwh(); Xchar *viscrv(); Xchar *viskeyshift(); Xchar *visfinetune(); Xchar *viscpitch(); Xchar *vislpitch(); Xchar *visonoff(); Xchar *visonoffk1(); Xchar *visonoffk2(); Xchar *visonoffk3(); Xchar *visonoffk4(); Xchar *viscsfnk1(); Xchar *viscsfnk2(); Xchar *viscsfnk3(); Xchar *viscsfnk4(); Xchar *visam1(); Xchar *visam3(); Xchar *visifosh(); Xchar *viswave(); END_OF_FILE if test 511 -ne `wc -c <'k1vis.h'`; then echo shar: \"'k1vis.h'\" unpacked with wrong size! fi # end of 'k1vis.h' fi if test -f 'k5multi.mnu' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'k5multi.mnu'\" else echo shar: Extracting \"'k5multi.mnu'\" \(1511 characters\) sed "s/^X//" >'k5multi.mnu' <<'END_OF_FILE' X/* $Id: k5multi.mnu,v 1.6 89/05/06 17:13:29 lee Exp $ X * GLIB - a Generic LIBrarian and editor for synths X * X * Kawai K-5 Librarian - handles (SINGLE and) MULTI patches. X * Functions are annotated if they work for SINGLE, MULTI, or both kinds. X * Full editing not implemented - there are zillions of parameters, X * and the huge LCD on the K-5 is actually quite easy to read and use. X * X * Alan Bland - att!druwy!mab X * $Log: k5multi.mnu,v $ X * Revision 1.6 89/05/06 17:13:29 lee X * rel. to comp.sources.misc X * X */ X X#define OVERLAY2 X X#include "glib.h" X X#define K5SINGLE 0 X#define K5MULTI 1 X#define K5MAGIC 0x5a3c X X#define NERRS 5 X#define RESERVESIZE 0 X Xextern char *visnum(); X X X/* This array contains arbitrary screen labels (MULTI) */ Xstruct labelinfo Lk5m[] = { X#MENU X X X X Sorry, no edit capability implemented for the K-5 yet. X X X X X X X X X X X X +-------------------------+--------------+ X |Space = Play Note | Auto-Note | X | | | X |h = left q = quit |Pitch % | X |j = down N = Set Name |Volume % | X |k = up J = Decrement |Duration % | X |l = right K = Increment |Channel % | X | | | X +-------------------------+--------------+ X#END X-1,-1,NULL X}; X Xstruct paraminfo Pk5m[] = { X/* XNAME TYPE POS MAX OFFSET MASK SHIFT ADHOC X */ X#O autopitch num %% 127 -60 X#O autovol num %% 127 -63 X#O autodur num %% 20 -5 *5 X#O autochan num %% 16 -1 *5 XNULL,NULL,-1,-1,-1,-1,visnum,0,0,0,0 X}; X END_OF_FILE if test 1511 -ne `wc -c <'k5multi.mnu'`; then echo shar: \"'k5multi.mnu'\" unpacked with wrong size! fi # end of 'k5multi.mnu' fi if test -f 'mac-glib.r' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'mac-glib.r'\" else echo shar: Extracting \"'mac-glib.r'\" \(4012 characters\) sed "s/^X//" >'mac-glib.r' <<'END_OF_FILE' X/* $Id: mac-glib.r,v 1.6 89/05/06 17:13:31 lee Exp $ X * glib.r - glib resources X * X * SAF 3/7/88 (Steven Falco) X * $Log: mac-glib.r,v $ X * Revision 1.6 89/05/06 17:13:31 lee X * rel. to comp.sources.misc X * X */ X X#include "Types.r" X X/* These define's are used in the MENU resources to disable specific X menu items. */ X#define AllItems 0b1111111111111111111111111111111 /* 31 flags */ X#define MenuItem1 0b00001 X#define MenuItem2 0b00010 X#define MenuItem3 0b00100 X#define MenuItem4 0b01000 X#define MenuItem5 0b10000 X Xtype 'GLIB' as 'STR '; X Xresource 'GLIB' (0) { X "GLib Version 1.0"; X}; X Xresource 'BNDL' (128) { X 'GLIB', /* our signature */ X 0, X { X 'ICN#', X { X 0, 128; /* glib's icon */ X 1, 129 /* dumps' icon */ X }; X 'FREF', X { X 0, 128; /* glib's type */ X 1, 129 /* dumps' type */ X } X } X}; X Xresource 'ICN#' (128) { X { /* array: 2 elements */ X /* [1] */ X $"0000 0000 0000 0000 0000 0000 003F 8000" X $"007F C000 00E0 E000 0180 3000 0180 1800" X $"0398 CC00 0700 0E00 0707 0E00 0710 4E00" X $"0388 8C00 11C7 1800 18F0 3000 1C3F E000" X $"0E0F C000 0706 0000 03FF FF00 01FF FF80" X $"0006 0180 0006 0180 0006 0000 001F F000" X $"003F F800 0070 1C00 00E0 0C00 00C0 0C00" X $"00C0 0C00 00F0 0F00 00F0 0F00 0000 0000", X /* [2] */ X $"0000 0000 007F C000 00FF E000 01FF F000" X $"03FF F800 07FF FC00 0FFF FE00 1FFF FF00" X $"3FFF FF80 7FFF FF80 7FFF FF80 7FFF FF80" X $"7FFF FF80 7FFF FF80 7FFF FF80 7FFF FFC0" X $"7FFF FFE0 7FFF FFE0 3FFF FFE0 1FFF FFE0" X $"0FFF FFE0 07FF FFE0 03FF FFE0 03FF FFE0" X $"03FF FFE0 03FF FFE0 03FF FFE0 03FF FFE0" X $"03FF FFE0 03FF FFE0 03FF FFE0 03FF FFE0" X } X}; X Xresource 'ICN#' (129) { X { /* array: 2 elements */ X /* [1] */ X $"0000 0000 0000 0000 0000 0000 0000 0000" X $"0000 0000 0003 F000 0043 FFC0 0063 0FC0" X $"01F3 0000 01FB 0000 01F3 F000 0063 FFC0" X $"0043 0FC0 0003 0000 0003 0000 0003 0000" X $"0003 0400 0003 0C00 007B 1FC0 00FF 3FC0" X $"01FF 1FC0 01FF 0C00 01FF 0400 00FE 0000" X $"007C 0000 0000 0000 0000 0000 0000 0000" X $"0000 0000 0000 0000 0000 0000 0000 0000", X /* [2] */ X $"0000 0000 0000 0000 0000 0000 0000 0000" X $"03FF FFE0 03FF FFE0 03FF FFE0 03FF FFE0" X $"03FF FFE0 03FF FFE0 03FF FFE0 03FF FFE0" X $"03FF FFE0 03FF FFE0 03FF FFE0 03FF FFE0" X $"03FF FFE0 03FF FFE0 03FF FFE0 03FF FFE0" X $"03FF FFE0 03FF FFE0 03FF FFE0 03FF FFE0" X $"03FF FFE0 03FF FFE0 0000 0000 0000 0000" X $"0000 0000 0000 0000 0000 0000 0000 0000" X } X}; X Xresource 'FREF' (128) { X 'APPL', 0, "" X}; X Xresource 'FREF' (129) { X 'TEXT', 1, "" X}; X Xresource 'DLOG' (128, "About GLibI") { X {66, 102, 224, 400}, X dBoxProc, visible, noGoAway, 0x0, 128, "" X}; X Xresource 'DITL' (128) { X { X/* 1 */ {130, 205, 150, 284}, X button { X enabled, X "Continue" X }; X/* 2 */ {94, 28, 115, 301}, /* memory amount */ X staticText { X disabled, X "" X }; X/* 3 */ {8, 14, 27, 169}, X staticText { X disabled, X "GLib Version 1.0" X }; X/* 4 */ {32, 29, 50, 195}, X staticText { X disabled, X "Author: Tim Thompson" X }; X/* 5 */ {55, 28, 73, 299}, X staticText { X disabled, "Macintosh conversion: Steven A. Falco" X } X } X}; X Xresource 'MENU' (128, "Apple", preload) { X 128, textMenuProc, X AllItems & ~MenuItem2, /* Disable item #2 */ X enabled, apple, X { X "About GLibI", X noicon, nokey, nomark, plain; X "-", X noicon, nokey, nomark, plain X } X}; X Xresource 'MENU' (129, "File", preload) { X 129, textMenuProc, X allEnabled, X enabled, "File", X { X "Quit", X noicon, "Q", nomark, plain X } X}; X Xresource 'MENU' (130, "Edit", preload) { X 130, textMenuProc, X allEnabled, X enabled, "Edit", X { X "Undo", X noicon, "Z", nomark, plain; X "-", X noicon, nokey, nomark, plain; X "Cut", X noicon, "X", nomark, plain; X "Copy", X noicon, "C", nomark, plain; X "Paste", X noicon, "V", nomark, plain; X "Clear", X noicon, nokey, nomark, plain X } X}; X Xresource 'SIZE' (-1) { X dontSaveScreen, X ignoreSuspendResumeEvents, X enableOptionSwitch, X canBackground, /* sort-of :-) */ X notMultiFinderAware, X 300032, /* preferred size */ X 300032 /* minimum size */ X}; END_OF_FILE if test 4012 -ne `wc -c <'mac-glib.r'`; then echo shar: \"'mac-glib.r'\" unpacked with wrong size! fi # end of 'mac-glib.r' fi if test -f 'mac-mach.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'mac-mach.h'\" else echo shar: Extracting \"'mac-mach.h'\" \(1520 characters\) sed "s/^X//" >'mac-mach.h' <<'END_OF_FILE' X/* $Id: mac-mach.h,v 1.6 89/05/06 17:13:32 lee Exp $ X * GLIB - a Generic LIBrarian and editor for synths X * X * Machine dependent stuff. X * X * Macintosh version X * Steven Falco X * $Log: mac-mach.h,v $ X * Revision 1.6 89/05/06 17:13:32 lee X * rel. to comp.sources.misc X * X */ X X#define macintosh X/* X * You must also chose a development system. X * Currently, only MPW is supported. See machdep.c and vt.c for more X * information. Note that INT16 must be defined as a 16-bit (or larger) X * integer. In MPW (my development system), a short is 16 bits. X * X * Steve Falco, moss!saf X */ X#define MPW X/* any others? */ X X/* overlay directives for compiler */ X#ifdef OVERLAY1 X#define __SEG__ over1 X#endif X#ifdef OVERLAY2 X#define __SEG__ over2 X#endif X X#include X#include X#include X#include X#include X#include X#include X X#define SIGNATURE 'GLIB' X#define FSFCBLen 0x3f6 X X#define INT16 short X XOSErr GetFinfo(), SetFinfo(); X X/* X * MPW doesn't set the file type. This tends to be important so we X * do it manually... X */ X#define SET_TEXT(filename) \ X{ \ X FInfo myfinfo; \ X switch(GetFInfo(filename, 0, &myfinfo)) { \ X case noErr: \ X myfinfo.fdType = 'TEXT'; \ X myfinfo.fdCreator = SIGNATURE; \ X SetFInfo(filename, 0, &myfinfo);\ X break; \ X default: \ X fprintf(stderr,"Cannot set file type for %s\n", filename); \ X break; \ X } \ X} X X#define STATMIDI (midi_rxst==MIDI_NE?1:0) X X#define STATTXBF (midi_txst==MIDI_NE?1:0) END_OF_FILE if test 1520 -ne `wc -c <'mac-mach.h'`; then echo shar: \"'mac-mach.h'\" unpacked with wrong size! fi # end of 'mac-mach.h' fi if test -f 'mac-make.uu' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'mac-make.uu'\" else echo shar: Extracting \"'mac-make.uu'\" \(1659 characters\) sed "s/^X//" >'mac-make.uu' <<'END_OF_FILE' Xbegin 644 mac-make XM(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C XM(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(PTC(%=!4DY)3D<@+2!42$E3($9) XM3$4@0T].5$%)3E,@4U!%0TE!3"!#2$%204-415)3($]55%-)1$4@5$A%($Y/ XM4DU!3" C#2,@05-#24D@4D%.1T4N("!$3TXG5"!%1$E4($E4($580T505"!/ XM3B!!($U!0TE.5$]32"$A(2$@(" @(" @(" @(" @(",-(R,C(R,C(R,C(R,C XM(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C XM(R,C(R,C(R,C(R,C(PTC#2,@;F]T92 M('1H:7,@:7,@<')E='1Y(&1I9F9E XMV-L:6)R87)I XM97-]8W)U;G1I;64N;R"V#0D@("![8VQI8G)AV-L:6)R87)I97-]8VEN=&5R9F%C92YO(+8-"2 @('MC;&EBV-L:6)R87)I97-];&EB8RYO#0U34D,@/2!D XM=S@P,# N8R!G;&EB+F,@9VQI8BYH(&=L:6(N#@Q<"YC+F\@='@X,7HN8RYO(+8-"0EY86UA7V-O;2YC+F\@ XM;6%C:&1E<"YC+F\-"0D-9VQI8B#$Q"!G;&EB+G(-"7)E>B!G;&EB+G(@+6\@ XM9VQI8@T)#6=L:6(@Q,0@>T]"2GT@9VQI8BYR('M,24)3?0T);&EN:R![3T)* XM?2![3$E"4WT@+6\@9VQI8@T-9VQI8BYS:&%R(,0@>U-20WT-"7-H87(@>U-2 X.0WT@/B!G;&EB+G-H87)I X Xend END_OF_FILE if test 1659 -ne `wc -c <'mac-make.uu'`; then echo shar: \"'mac-make.uu'\" unpacked with wrong size! fi # end of 'mac-make.uu' fi if test -f 'mac-mdr.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'mac-mdr.h'\" else echo shar: Extracting \"'mac-mdr.h'\" \(810 characters\) sed "s/^X//" >'mac-mdr.h' <<'END_OF_FILE' X/* $Id: mac-mdr.h,v 1.6 89/05/06 17:13:34 lee Exp $ X * mdr.h - header file for stuff that uses the midi driver X * X * Steven A. Falco 7/30/87 X * $Log: mac-mdr.h,v $ X * Revision 1.6 89/05/06 17:13:34 lee X * rel. to comp.sources.misc X * X */ X X#define MIDI_NE 0 /* queue has 1 or more bytes available */ X#define MIDI_EM (-1) /* queue is empty */ X Xextern void midi_init(); /* set up hardware & software */ Xextern void midi_reset(); /* unset - very important to avoid crashes */ Xextern void midi_tx(); /* send a byte (but declare arg as a long) */ Xextern long midi_rx(); /* get a byte (returns -1 on "nothing available" */ Xextern char midi_txst; /* transmit queue state (flags above) */ Xextern char midi_rxst; /* receive queue state */ Xextern long midi_time; /* relative time in mS (5 mS granularity) */ END_OF_FILE if test 810 -ne `wc -c <'mac-mdr.h'`; then echo shar: \"'mac-mdr.h'\" unpacked with wrong size! fi # end of 'mac-mdr.h' fi if test -f 'mac-vt.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'mac-vt.h'\" else echo shar: Extracting \"'mac-vt.h'\" \(2039 characters\) sed "s/^X//" >'mac-vt.h' <<'END_OF_FILE' X/* $Id: mac-vt.h,v 1.6 89/05/06 17:13:35 lee Exp $ X * vt.h - definitions for the vt100-like console device handler X * X * Steven A. Falco 4/30/87 X * $Log: mac-vt.h,v $ X * Revision 1.6 89/05/06 17:13:35 lee X * rel. to comp.sources.misc X * X */ X X#ifndef EOF X#define EOF -1 X#endif X X/* this structure defines one member of the _StdDevs array. This is X * similar to the Unix concept of bdevsw and cdevsw. X */ Xtypedef struct { X int name; /* 'CONS' for the console */ X int (*l_access)(); /* NOT the same as open - can do mv or rm also */ X int (*l_close)(); /* close */ X int (*l_read)(); /* read */ X int (*l_write)(); /* write */ X int (*l_ioctl)(); /* ioctl */ X} DEVSW; X Xextern DEVSW _StdDevs[]; X X/* this structure defines one member of the file table. I believe X * the table is dynamically allocated for 200 bytes at a time or X * 10 entries. But _lockedHandle may return words or something else. X */ Xtypedef struct { X short flags; /* high byte sometimes has fileno */ X short errcode; /* a MacOS error code */ X DEVSW *handler; /* a pointer to our _StdDevs array entry */ X int z; /* unknown */ X int count; /* read or write count desired. <-- --> */ X char *buffer; /* buffer pointer to use. <-- --> */ X} IOSTR; X X/* look up a file number in the file table and return a pointer to the X * entry. Pass in -1 to get a new entry. NOTE - the ADDRESS of the X * file number is passed - NOT the file number itself. I wonder why? X */ XIOSTR *_getIOPort(); X X/* these are the low-level entry points to link the driver (handler) X * into the system. They require strange input arguments and always X * return 0 on success. Don't call them directly... X */ Xextern vt_faccess(); Xextern vt_close(); Xextern vt_read(); Xextern vt_write(); Xextern vt_ioctl(); X X/* these are the ultra-low level calls that do all the work. You can X * call them directly to avoid all the IntEnv overhead. See vt.c for X * the input and output specifications. X */ Xextern vt_open(); Xextern vt_getch(); Xextern vt_peekch(); Xextern vt_putch(); Xextern vt_cooked(); Xextern vt_raw(); END_OF_FILE if test 2039 -ne `wc -c <'mac-vt.h'`; then echo shar: \"'mac-vt.h'\" unpacked with wrong size! fi # end of 'mac-vt.h' fi if test -f 'makevish.l' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'makevish.l'\" else echo shar: Extracting \"'makevish.l'\" \(345 characters\) sed "s/^X//" >'makevish.l' <<'END_OF_FILE' X%{ X/* $Id: makevish.l,v 1.6 89/05/06 17:13:36 lee Exp $ X * Greg Lee X * $Log: makevish.l,v $ X * Revision 1.6 89/05/06 17:13:36 lee X * rel. to comp.sources.misc X * X */ X int i; X%} X X%% X X^"char *"[ \t\n]*"vis"[0-9A-Za-z_]+[ ]*"(" { X i = 6; X while (yytext[i++] != 's') ; X printf("char *vis%s);\n", yytext+i); X}; X X. ; X\n ; X X%% Xmain() { yylex(); } END_OF_FILE if test 345 -ne `wc -c <'makevish.l'`; then echo shar: \"'makevish.l'\" unpacked with wrong size! fi # end of 'makevish.l' fi if test -f 'patchlevel.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'patchlevel.h'\" else echo shar: Extracting \"'patchlevel.h'\" \(21 characters\) sed "s/^X//" >'patchlevel.h' <<'END_OF_FILE' X#define PATCHLEVEL 6 END_OF_FILE if test 21 -ne `wc -c <'patchlevel.h'`; then echo shar: \"'patchlevel.h'\" unpacked with wrong size! fi # end of 'patchlevel.h' fi if test -f 'pc-readme' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'pc-readme'\" else echo shar: Extracting \"'pc-readme'\" \(225 characters\) sed "s/^X//" >'pc-readme' <<'END_OF_FILE' X XThe DOS support for glib requires the Turbo C compiled and the XMicrosoft Assembler (specifically, I have Turbo C 2.0 and MASM 4.0). XCopy pc-mach.h to machdep.h, pc-mach.c to machdep.c, pc-tcc.mak to Xmakefile, and type make. END_OF_FILE if test 225 -ne `wc -c <'pc-readme'`; then echo shar: \"'pc-readme'\" unpacked with wrong size! fi # end of 'pc-readme' fi if test -f 'pc-tcc.mak' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'pc-tcc.mak'\" else echo shar: Extracting \"'pc-tcc.mak'\" \(2436 characters\) sed "s/^X//" >'pc-tcc.mak' <<'END_OF_FILE' X# $Id: pc-tcc.mak,v 1.6 89/05/06 17:13:41 lee Exp $ X# X# Glib, Turbo C version for Kawai K1, etc. X# Scott Snyder X# $Log: pc-tcc.mak,v $ X# Revision 1.6 89/05/06 17:13:41 lee X# rel. to comp.sources.misc X# X# added defs for CZ1 X# X# adapted from Tim Thompson's program X# with modifications by Michael Kesti and Greg Lee X X# works with TC v2.0 X XMODEL=l X XLEX = flex XLEXLIB = X# to use lex instead of flex: X#LEX = lex X#LEXLIB = -ll X X# defines for CFLAGS (below): X# BSD for fopen with mode 'r'/'w' instead of 'rb'/'wb' X# ULTRIX enables curses no()/nonl() fix X# ARROW for use of arrow keys (probably only bsd) X# and uncomment one set of the following for supported synths: X X# Remove '#' from next 5 lines for Roland D-10: X#SYNTHS = -DROLANDD10 X#SYNTHOBJ = vis.obj d10pat.obj d10tim.obj d10ton.obj d10wfg.obj d10tvf.obj \ X# d10tva.obj d10rsu.obj d10urp.obj d10tra.obj X#SYNTHC = d10pat.c d10tim.c d10wfg.c d10tvf.c d10tva.c \ X# d10rsu.c d10urp.c d10tra.c # vis.h X X# Remove '#' from next 4 lines for various Yamaha, K5, etc.: X#SYNTHS = -DTX81Z -DTX81ZPERF -DDX100 -DDW8000 -DKAWAIK5 -DDEP5 X#SYNTHOBJ = dx100.obj tx81z.obj tx81p.obj dw8000.obj yama_com.obj X# k5single.obj k5multi.obj dep5.obj X#SYNTHC = dx100.c tx81z.c tx81p.c dw8000.c k5single.c k5multi.c dep5.c X X# Remove '#' from next group of lines for Yamaha DX7, DX7s: XSYNTHS = -DDX7 -DDX7S XSYNTHOBJ = dx7.obj dx7s.obj XSYNTHC = dx7.c dx7s.c X X# Remove '#' from next 3 lines for Kawai K1: X#SYNTHS = -DKAWAIK1 X#SYNTHOBJ = k1vis.o k1multi.o k1single.o X#SYNTHC = k1multi.c k1single.c # k1vis.h X X# Remove '#' from next 3 lines for CZ1: X#SYNTHS = -DCZ1 X#SYNTHOBJ = cz1.o X#SYNTHC = cz1.c X X# X# Define SSS to enable speed-up code in glib.c X# X XCFLAGS = -N -m$(MODEL) -DSSS $(SYNTHS) X XGLIBOBJ = glib.obj machdep.obj list.obj pc-ints.obj X XOBJ = $(GLIBOBJ) $(SYNTHOBJ) X XH = glib.h machdep.h vis.h X X.mnu.c: X menutoc $*.mnu $*.c X X.c.obj: X tcc -c $(CFLAGS) $. X X.c.exe: X tcc -N $. X Xglib.exe : menutoc.exe $(SYNTHC) $(OBJ) X tcc -m$(MODEL) $(OBJ) X Xmachdep.c: pc-mach.c X copy pc-mach.c machdep.c X Xmachdep.h: pc-mach.h X copy pc-mach.h machdep.h X Xmachdep.obj: machdep.c $(H) X Xglib.obj: glib.c $(H) X Xlist.obj: list.c $(H) X Xdx100.obj: dx100.c $(H) X Xtx81z.obj: tx81z.c $(H) X Xtx81p.obj: tx81p.c $(H) X Xdw8000.obj: dw8000.c $(H) X Xyama_com.obj: yama_com.c $(H) X Xdx7.obj: dx7.c $(H) X Xdx7s.obj: dx7s.c $(H) X Xk5single.obj: k5single.c $(H) X Xk5multi.obj: k5multi.c $(H) X Xpc-ints.obj: pc-ints.asm X masm /mx pc-ints; END_OF_FILE if test 2436 -ne `wc -c <'pc-tcc.mak'`; then echo shar: \"'pc-tcc.mak'\" unpacked with wrong size! fi # end of 'pc-tcc.mak' fi if test -f 'st-mach.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'st-mach.h'\" else echo shar: Extracting \"'st-mach.h'\" \(414 characters\) sed "s/^X//" >'st-mach.h' <<'END_OF_FILE' X/* X * GLIB - a Generic LIBrarian and editor for synths X * X * Machine dependent stuff. X * X * Atari ST version X */ X X#define INT16 int X X#include X#include X#include X X#define CONSOLE 2 X#define MIDI 3 X X#ifdef OVERLAY1 Xoverlay "over1" X#endif X X#ifdef OVERLAY2 Xoverlay "over2" X#endif X X#define OPENBINFILE(f,name,mode) f=fopen(name,mode[0]=='r'?"br":"bw") X X#define STATMIDI (Bconstat(MIDI)) END_OF_FILE if test 414 -ne `wc -c <'st-mach.h'`; then echo shar: \"'st-mach.h'\" unpacked with wrong size! fi # end of 'st-mach.h' fi if test -f 'unix-mach.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'unix-mach.h'\" else echo shar: Extracting \"'unix-mach.h'\" \(338 characters\) sed "s/^X//" >'unix-mach.h' <<'END_OF_FILE' X/* $Id: unix-mach.h,v 1.6 89/05/06 17:13:46 lee Exp $ X * GLIB - a Generic LIBrarian and editor for synths X * X * Machine dependent stuff. X * X * Unix version X * Tim Thompson X * $Log: unix-mach.h,v $ X * Revision 1.6 89/05/06 17:13:46 lee X * rel. to comp.sources.misc X * X */ X X#define INT16 int X X#define STATMIDI (statmidi()) X#define UNIX END_OF_FILE if test 338 -ne `wc -c <'unix-mach.h'`; then echo shar: \"'unix-mach.h'\" unpacked with wrong size! fi # end of 'unix-mach.h' fi if test -f 'vis.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'vis.h'\" else echo shar: Extracting \"'vis.h'\" \(764 characters\) sed "s/^X//" >'vis.h' <<'END_OF_FILE' X/* $Id: vis.h,v 1.6 89/05/06 17:13:47 lee Exp $ X * Revision 1.5 89/04/25 15:54:39 Michael_Kesti X * $Log: vis.h,v $ X * Revision 1.6 89/05/06 17:13:47 lee X * rel. to comp.sources.misc X * X */ Xchar *vispan(); Xchar *visreverbtype(); Xchar *visreverbtime(); Xchar *visreverblevel(); Xchar *vispatchlevel(); Xchar *viskeymode(); Xchar *vissplit(); Xchar *vistonegroup(); Xchar *visrtone(); Xchar *vistonenum(); Xchar *viskeyshift(); Xchar *visfinetune(); Xchar *visbendrange(); Xchar *visassignmode(); Xchar *vistonebal(); Xchar *visstruct(); Xchar *vispmute(); Xchar *visenvmode(); Xchar *viscpitch(); Xchar *vispkeyfol(); Xchar *vistkeyfol(); Xchar *viswavebank(); Xchar *vispcmnum(); Xchar *visvelsens(); Xchar *visenvlev(); Xchar *visbiaslev(); Xchar *visbiaspd(); Xchar *vistvablev(); END_OF_FILE if test 764 -ne `wc -c <'vis.h'`; then echo shar: \"'vis.h'\" unpacked with wrong size! fi # end of 'vis.h' fi echo shar: End of archive 1 \(of 15\). cp /dev/null ark1isdone MISSING="" for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 15 archives. rm -f ark[1-9]isdone ark[1-9][0-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0