Please see the Poll.C file to see how to write Paragon doors and access Paragon's DoorControl message port. The following is a listing of all the message port commands (some which are not shown in Poll.C). Updated November 12, 1989 for Version 2.0. doormsg->command == 1 Outputs the value of doormsg->string. Sends out a terminating cr/lf sequence if doormsg->data == 1. Returns a value less than 0 in doormsg->data if the user aborted the output with ^C. doormsg->command == 2 Outputs doormsg->string to the screen only. doormsg->command == 3 Outputs a single character (the value of doormsg->data) to the serial port. doormsg->command == 4 Outputs a single character (the value of doormsg->data) to the screen. doormsg->command == 5 Outputs a single character (the value of doormsg->data) to the screen and the serial port. doormsg->command == 6 Outputs doormsg->string. Will prompt input from user. Will not allow input to exceed doormsg->data characters in length. Will return the input string in doormsg->string. doormsg->command == 7 Same as #6, but it automatically handles command stacking. doormsg->command == 8 Outputs doormsg->string. Will "hotkey" for a character, and return it in the first array element of doormsg->string. doormsg->command == 9 Commands Paragon that the user is to be hung up on. The carrier flag will be set to true; the door program must still handle closing up as normal! doormsg->command == 10 Displays a text file with the name doormsg->string. doormsg->command == 11 Finds out if the file doormsg->string is currently accessible by the system. Returns 1 in doormsg->data if it is available, -1 if it is locked or not found. This also handles wildcard ("*") and joker ("?") search templates. doormsg->string will return with the name of the file if wildcard template search was used. doormsg->command == 12 Edits the file called doormsg->string, and will not allow the file to exceed doormsg->data lines in length. doormsg->command == 13 Returns certain values in doormsg->data depending on the value passed in doormsg->data. 1: User's access level, 2: Expert mode, 3: Net credits, 4: Number of calls, 5: Calls to system, 6: Graphics mode, 7: minutes remaining, 8: screen columns, 9: screen rows. doormsg->command == 14 Returns certain strings in doormsg->string depending on the value passed in doormsg->data. 1: User's name, 2: User's password, 3: User's address, 4: User's city, 5: User's state, 6: User's postal/zip code, 7: path to the doors, 8: main BBS path, 9: date, 10: time. doormsg->command == 15 Changes the user's access level to doormsg->data. doormsg->command == 16 Similar to #14, except it set's that string to the whatever doormsg->string is. doormsg->command == 17 Returns a random number from 0 to doormsg->data in doormsg->data. doormsg->command == 18 Reset loss of carrier state; makes Paragon think no carrier was lost. doormsg->command == 19 Show graphic text file doormsg->string with correct extension based on user's graphics mode. doormsg->command == 20 Shut down DoorControl. The door is now completed; the door should now end. Paragon will continue as normal. doormsg->command == 21 Add doormsg->data to the number of minutes user has remaining. If this value is negative, it will subtract minutes from the user's time.