DispMod is one of the series of ROBBS modules. ROBBS stands for Rexx Object Building Block System -------------------------------------------------------------------- All parts of this distribution are Copyright Larry Phillips 1988, 1989, and 1990. All rights reserved. You may distribute DispMod sources, executables, documentation, and ARexx examples and utilities via online systems, including BBS systems and commercial telecommunication services, including, but not limited to Compuserve, Bix, People Link, and GEnie, provided no specific charge is made for this distribution, other than normal connect charges. It may be distributed by User Groups and 'freely distributable disk collections', exemplified by the Fred Fish disks. (Thanks Fred!) You may not sell any part of this distribution. If you wish to provide all or part of DispMod in any commercial product, please contact the author for permission. -------------------------------------------------------------------- See the accompanying file 'ROBBS.doc' for a discussion of the ROBBS system of application building. DispMod is a display module that only understands ARexx messages. It allows, under program control (ARexx programs or binary executables), the display of text and the acceptance of keyboard data. It is very limited at this time, because it was intended as part of a series of articles in Transactor for the Amiga, and was kept simple, in the hope that those who like the concept would undertake to make their own improvements. It opens a full 320*200, borderless window on the WorkBench screen, and awaits ARexx messages. Please refer to the following summary, the accompanying detailed command documentation, and the example script (data_entry.rexx) for programming information. ------------------------------------------------------------------ Command Purpose Arguments ------------------------------------------------------------------ TEXT Place characters on the display STRING LTEXT TEXT, with appended linefeed STRING HTEXT Highlighted text (different colour) STRING LHTEXT HTEXT with appended linefeed STRING CRSR Position the cursor on display GETLINE Get a line of text from the keyboard [STRING] TITLE Place a title on the window. STRING STATUS Return info about display -NONE- CONNECT Attach attach keyboard to port PORTNAME COMMAND CTRL Attach display to a control port PORTNAME DIE Unload display module -NONE- REALLY_DIE Special - see note below ---------------------------------------------------------------------- STATUS -- returned from display module as a single string in RESULT Connected port name - where keyboard data will go. Control port name - where all other messages are sent Window - address of display window Console write - address of display console write IO struct See the STATUS documentation for more details. *********************************************************************/ REALLY_DIE: This command is only recognized after the DIE command has been issued. Its purpose is to save the day when, due to some programming error in the script or another program, one or more messages from the display has not been replied to. In this case, it is necessary either to await the reply (or replies) before exiting. If you know that the replies will never come, you can issue the REALLY_DIE command to the display, and it will exit. You will know when you need to issue this command because the display window will not go away when you think it should, and the CLI you started the script from will have a message telling you that there are outstanding commands. Upon receiving the REALLY_DIE command, dispmod will assume you know what you are doing, and will free up the outstanding messages. ************************************************************************* The display module will open a port called 'ROBBS_disp', to which all commands must be sent. This can be accomplished in the normal ARexx manner by using the ADDRESS command in its various forms. By default, the display module will send all 'CTRL' messages to a port called 'ROBBS_ctrl', which must be opened in the ARexx script that controls the display. If you wish to have another port used as the controlling port, you must use the 'CTRL ' command. Please feel free to ask any questions, and to make any suggestions. The following are some possible enhancements to dispmod you might want to try if you are a programmer.: The ability of DispMod to run in multiple incarnations. In particular, the public ports need to have unique names. Commands to allow easy text manipulation, such as erase to EOL, erase to EOS, colour control, etc. The ability to specify numeric fields, aplhanumeric fields, and fields that only accept an arbitrarily limited set of characters under program control. Protected fields. These fields could not be typed into, which would make it easier to create forms for data entry. *********************************************************************** Contents of distribution: Docs (dir) CONNECT.doc CRSR.doc CTRL.doc DIE.doc DispMod.doc GETLINE.doc STATUS.doc TEXT.doc TITLE.doc source (dir) cli_parse.c consoleio.c consoleio.h defs.h dispmod.c Glue.asm makefile rexxglue.o wb_parse.c rexx (dir) data_entry.rexx killdisp.rexx killrobbs.rexx dispmod *********************************************************************** Enjoy! - larry