LIB 557 (22Dh) -- GraphWriter ******************************************************************************* * Copyright (c) 2001-2007 by Albert Graef, Johannes Gutenberg University, * Mainz, Germany. * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ******************************************************************************* REVISION HISTORY: (see src/ChangeLog for details) 07 Jan 2007 - 3.0 - 49G+/50G compatibility 17 Feb 2002 - 2.1 - better help function 16 Feb 2002 - 2.0 - more bug fixes and improvements: - all known bugs in the editor (RCL, zoom, some other minor problems in the display routines) have been fixed, as well as the broken EDGE-> and REVGRAPH operations (bad value errors) - good new stuff(TM) in the editor: node and edge label display (thanks to Thomas Rast for insisting ;-), and simplified label entry (the node/edge inform boxes now recognize single label values, and also add a null tag if no tag is given) - overhauled the manual, added bookmarks 11 Feb 2002 - 1.2 - bug fixes (inform boxes) 8 Feb 2002 - 1.1 - bug fix in ADDNODE2, HIST/STO support in browser, overhauled the DIJKSTRA example 7 Feb 2002 - 1.0 - first official release DESCRIPTION: GraphWriter is an interactive application which allows you to create and edit "graphs" -- those abstract mathematical structures consisting of "nodes" and "edges" which pertain to many important applications such as network design and optimisation, scheduling, routing and visualization. GraphWriter makes this interesting area of mathematics come to life on your HP 49G/49G+/50G calculator. To my knowledge it is the first and only graph editor available for *any* calculator. The graph is displayed on the calculator's graphics screen (PICT), using a 2D coordinate system which can be configured by the user. There are two main entry points: GRW creates a new graph, while GRED edits the graph on stack level 1. Graphs are represented in adjacency list form, may contain node and edge labels (as tagged values), and may have multiple edges and loops. A number of user-level operations for use in programming and on the command line are also provided. GraphWriter is distributed under the GPL, Debug4x-based sources can be found in the src.zip file. Documentation in PDF format is in GRW.pdf. The manual is still rather terse, but hopefully enough to get you started. Well, if you're a seasoned 49G user, you probably know how to find your way without the docs. ;-) The present version should work with all calculators of the HP 49 series (49G, 49G+, 50G). To install, transfer the GRW.hp library file to your calc, move the resulting variable to any port (e.g., using the filer), press ON+C to reboot and you should be set. An example implementation of Dijkstra's shortest path algorithm can be found in the examples directory, along with a sample graph ready to be used with that program. These are plain text files which you can transfer to your calc in ASCII mode as usual. Note that this is still BETA SOFTWARE, so MAKE SURE YOU BACK UP YOUR MEMORY BEFORE USING THIS LIBRARY. Bug reports, code donations and all kinds of comments and contributions are welcome, of course. Future releases of this software will be made available from www.hpcalc.org and the GraphWriter website: http://www.musikwissenschaft.uni-mainz.de/~ag/hp49 Enjoy! Dec 2006 Albert Graef Dept. of Music-Informatics Johannes Gutenberg University Mainz Germany Email: ag@muwiinfa.geschichte.uni-mainz.de, Dr.Graef@t-online.de URL: http://www.musikwissenschaft.uni-mainz.de/~ag