Documentation for Mr SQUIGGLE - Winsock point-to-point blackboard Last changed 12 Mar 94 Introduction ------------ Mr Squiggle is a Windows 3.1/WINSOCK based point-to-point electronic blackboard. It allows 2 people connected via the Internet to share a common drawing surface, a bit like Microsoft's Paintbrush (probably Registered Names and/or Trademarks of Microsoft Corp). The name "Mr Squiggle" (probably a Registered Name or Trademark of the Australian Broadcasting Corporation (ABC)) comes from a very popular children's program shown in Australia since the 1960's. It's star is a floppy sort of puppet with a very long pencil for a nose. At the start of each program, he flies down from the moon in his faithful rocket, and is met by his human assistant ("Miss Pat", "Miss Jane", ...) and his earth based, personality-filled "Blackboard". Children mail in bits of paper with random sorts of "squiggles", and Mr Squiggle, with a few deft strokes from his nose/pencil, miraculously creates funny drawings, such as an elephant making a peanut-butter sandwich, or a butterfly knitting a scarf. More often than not, the squiggle must be rotated before the picture becomes recognizable. If you are one of the small group of people who can draw better than they can talk, and who likes using a mouse to draw, then you might like Mr Squiggle. This Mr Squiggle is a program written entirely in Microsoft's Visual Basic 3, Professional Edition. Installation and Use -------------------- The release directory contains: - squiggle.doc - this documentation - squiggle.zip - Windows 3.1 files in pkzip format You must have successfully installed a "winsock" TCP/IP stack before Mr Squiggle can be run. 1 Copy squiggle.zip to your PC and unzip it into an arbitrary directory. 2 Some Visual Basic V3 executables/libraries must be copied to the windows system directory: - vbwsk.vbx (winsock VB control copyright Brian Syme) - threed.vbx - cmdialog.vbx - vbrun300.dll 3 The squiggle.ini file should be copied to the windows directory. 4 The Mr Squiggle executable (squiggle.exe) should be defined to the program manager (no working directory is required). On starting for the first time, define your local friendly name using the Configure Menu and add a few definitions for other users of Mr Squiggle which you can draw with. A definition consists of: - a friendly name, which appears later in the open connection list box - the machine name (as known to DNS or whatever else your winsock program uses to resolve names) - the Mr Squiggle TCP/IP port number which you will attempt to connect to on the other machine (defaults to "4253") Press "ADD" to add a new definition to the list of other host definitions. If you want to change an existing definition, click it and then click "MODIFY" (or double click the definition) - the definition will be removed from the top list and be made available for editing - dont forget to press "ADD" to reinsert it in the list of other host definitions. To make the changes permanent, you must press the big "OK" button on the bottom of the configuration form. When you start Mr Squiggle, you should probably put it into "listening" mode, so that other users may contact you. This is done by choosing "Connection" and then "Wait for Connection". The little status message should change to "listening", indicating that you Winsock stack is now listening for a connection on your behalf. The port that you listen on defaults to "4253", but this can be changed by manually editing your windows directory squiggle.ini file. If you want to initiate a connection with another listening Mr Squiggle user, simple choose "Connection" and then "Call Another Mr Squiggle". If you were previously in a "listening" state, you will first need to choose "Connection" and then "Disconnect" to release the "listening" mode. Having chosen "Call Another Mr Squiggle", you will be presented with a list box containing the friendly names from the "Configure" panel. Simply click an entry, and then click "Connect". Mr Squiggle will then attempt to contact the previously configured machine and port. If it is successful, the little status message will change to "Connected to ", and the Blackboard form will be displayed! The Blackboard form is deliberately meant to look like the Microsoft Paintbrush program, but it is not as fully featured. Still, you can draw lines, boxes, circles, select colours and fonts, and erase previous work. The drawing area can be cleared and a funny option ("Draw Options", "Overlay") toggles how shapes appear on top of one another. When you are finished, click Exit on the Blackboard! Availability ------------- Written by Kent Fitch, ITSB, CSIRO Australia kent.fitch@its.csiro.au Copyright CSIRO 1994, all rights reserved (must not be stolen or resold). Executables and doco in the public domain, source code available for a donation to CSIRO. Use at your own risk. CSIRO is the largest publicly funded scientific research organization in the world. It operates a large variety of research programs at sites across Australia. The home ftp site for Mr Squiggle is commsun.its.csiro.au, in anon ftp directory csiro/msdos/squiggle History ------- Versions: 02Jan94 Beta 0.00 14Feb94 Beta 0.10 convert to VBWSK.VBX, numerous bug fixes, robustness improvements 06Mar94 Beta 0.22 change to half-duplex, token passing (see bug list) new tools - outline (cut/copy/paste/delete) - rounded rect - paint roller - spray can file load/save bitmaps (but load can be slow!) 07Mar94 Beta 0.23 tiny weeny bug fixed 12Mar94 Beta 0.24 "send beep" added Acknowledgements ---------------- Mr Squiggle originally used my own VB-Winsock Interface code, but I decided to check out Brian Syme's VBWSK.VBX, release 0.3, as it enabled me to remove a lot of VB code, which I thought might offset the disadvantage of not having the full flexibility of the WINSOCK interface and the source code for the WINSOCK interface code. It works very well! Thank you, Brian, for putting this VBX in the public domain. Mark Eldridge, from CSIRO, for lots of good ideas & encouragement. Microsoft VISUAL BASIC developers WINSOCK specification designers Bugs/Limitations ---------------- 1. Not all the Paintbrush tools are implemented 2. No notification is received if a font is used which is not available on the other machine. 3. Blackboard cant be resized. 4. Undo only remembers last drawing action, and only works on some drawing tools. 5. Character tool processing is very limited - no tab, backspace.... 6. Only 50 other Mr Squiggle hosts can be configured. 7. Local friendly name is not transmitted to other host. 8. Cant have a 3-, 4- or more-way Mr Squiggle session. 9. Current version can not interoperate with versions below 0.22 10. Bitmap "load" function takes quite a long time to transmit loaded bitmap. 11. A very conservative communications strategy has been taken, which has temporarily changed data transfer to "half-duplex" with token passing. As soon as I understand why the read socket event procedure doesnt get called when it gets flooded with data and the application is on a model screen (such as font or color selection), token passing will be removed, and we'll go back to full-duplex.