MENU of MISCELLANEOUS UTILITIES: copyright (C) 1983 by E. E. Bergmann COREDUMP and RESTORE LISTFILE LOAD SHOWCODE and NOSHOWCODE % ="comments" TOP10 and NEXT10 DIS ="the disassembler" to examine STACK and RSTACK TRACE of procedures HELP : :: ********************************************************* * * * PISTOL-Portably Implemented Stack Oriented Language * * Version 2.0 * * (C) 1983 by Ernest E. Bergmann * * Physics, Building #16 * * Lehigh Univerisity * * Bethlehem, Pa. 18015 * * * * Permission is hereby granted for all reproduction and * * distribution of this material provided this notice is * * included. * * * ********************************************************* : :: COREDUMP saves an image of PISTOL's memory as a file named with the string previously placed on top of the stack. (for an example see "GETTING STARTED", near the start of this documentation). RESTORE takes the file whose name is on the top of stack and "restores" the memory image that had been previously saved by a COREDUMP command. (for an example see "GETTING STARTED", near the start of this documentation). : :: LISTFILE opens a new file with the name that was on the top of stack. This new file can be written into to keep a record of the terminal session (using the boolean: LIST). For example, to record portions of the terminal session in a file named "DIALOG": X> 'DIALOG LISTFILE X> LIST ON . . (recorded) . X> LIST OFF . . (not recorded) . X> LIST ON . . (recorded) . etc. : :: LOAD is used to take a PISTOL source file whose name is pointed to by the top of stack. If given a line number instead of a filename, it will access the edit buffer instead. : :: SHOWCODE makes pistol display the contents of its compile buffer after every compilation. It is most useful when you are trying to estimate where special patching needs to be done, such as done by ARGPATCH (see the definitions in PBASE for this one!). To stop showing code you should use: NOSHOWCODE turns off the SHOWCODE, described immediately above. : :: % is the comment delimiter; the compiler ignores remaining text to the end of the current line. Do not shun its use in creating PISTOL source files; PISTOL is NOT self documenting! : :: To name the ten most recent definitions one should type: TOP10 . It will display the information and leave on stack the address of the 11th most recent definition. To name further definitions, one can type NEXT10 which takes the address off of the stack and names the next ten definitions. In turn, it leaves the address of the 21th most recent definition on stack. : :: One can dis-assemble a definition using the word, DIS . For example: X> 'TOP10 DIS produces the result: 'TOP10 : CURRENT W@ NEXT10 ; Not all definitions are disassembled so faithfully. : :: To examine the stack in a non-destructive manner, one can use the word, STACK. It will display the number of items in the stack and their values. For testing definitions it is useful to check the stack before and after the definition has been invoked. To examine the contents of the return stack in a non-destructive manner, one can use the word, RSTACK . : :: If the definition appears to be faulty, it is often useful to debug it by tracing the program flow through the definition and the state of the stack at intermediate steps. This can be accomplished automatically by the use of the word, TRACE. For example, to trace the action of DDUP one can type: X> 1 2 'DDUP TRACE : :: HELP If typed with no parameters placed on the stack it accesses this file (PISTOL.HLP) and permits the user to access various partitions in a menu driven manner. It may also be used to access other files by the user placing the name of the file on stack. For example, the user can access the file named "io": X> 'IO HELP The files accessed in this manner should contain partitioning information in the form of lines that start with a variable number of ':'; examine the PISTOL.HLP file for examples of partitioning and subpartitioning. :