MSWLogo is an interpreted language based on Logo, with a GUI front end. It was developed by George Mills at MIT. Its core is the same as UCBLogo by Brian Harvey. It is free software, with source available, in Borland C++.
MSWLogo supports multiple turtles, and 3D Graphics. MSWLogo allows input from COM ports and LPT ports. MSWLogo also supports a windows interface thus I/O is available through this GUI- and keyboard and mouse events can trigger interrupts. Simple GIF animations may also be produced on MSWLogo version 6.5 with the gifsave command. The program is also used for educational purposes. Jim Muller wrote The Great Logo Adventure, a complete Logo manual using MSWLogo as the demonstration language.
MSWLogo has evolved into FMSLogo: An Educational Programming Environment, a free, open source implementation of the Logo programming language for Microsoft Windows. It is released under the GPL and is mainly developed and maintained by David Costanzo.
MSWLogo, as of v6.5b, has following support of various functionality:
- Supports TCP/IP WinSock Networking.
- Supports Win16, Win32 and Win32s.
- Supports Text in all available fonts and sizes.
- Supports 1024 independent Turtles.
- Supports Bitmapped Turtles.
- Supports Cut, Paste and stretching bitmaps.
- Supports Clipboard Text and Bitmaps.
- Supports MIDI devices.
- Supports Direct I/O for Controlling External hardware.
- Supports Serial and Parallel Port communications.
- Supports Zooming.
- Supports Tail recursion (optimizes most recursive functions).
- Supports User error handling.
- Supports "Standard" Logo parsing.
- Supports Save and restore images in .BMP format files.
- Supports 1, 4, 8, 16, 24 bits per pixels colors.
- Supports standard Windows Hypertext Help.
- Supports standard Windows Printing.
- Supports separate library and work area.
- Supports construction of Windows Dialog Boxes.
- Supports Event Driven programming (Mouse, KeyBoard, Timer).
- Supports MultiMedia Devices (.WAV sound files, CD-ROM control etc.)
- Supports Event Timers allowing multiprocessing.
- Supports 3D Perspective drawing (Wireframe and Solids).
- Supports Animated GIF generation.
|FORWARD||fd||FORWARD(space)<no. of steps to move forward>||Used to move the turtle front for no. of times specified||"forward 100" or "fd 100"|
|BACK||bk||BACK(space) <no.of steps to move backwards>||Used to move the turtle back for no. of times specified||"back 100" or "bk 100"|
|RIGHT||rt||RIGHT(space) <degrees to rotate towards right||Used to turn the turtle right for no. of degrees specified||"right 228" or "rt 228"|
|LEFT||lt||LEFT(space) <degrees to rotate towards left >||Used to turn the turtle right for no. of degrees specified||"left 228" or "lt 228"|
|HOME||home||home||It just comes to the center of the screen but does not cleans the screen||"home"|
|CLEAN||ct cs||clean||It cleans the screen of trails but the turtle does not come to the center of the screen||"clean"|
|CLEARSCREEN||CS||CLEARSCREEN||It cleans the screen of trails and comes to the center of the screen||"cs"|
|HIDETURTLE||HT||Hide Turtle||It hides the turtle and helps to view a clear drawing on the screen.||"ht"|
|SHOWTURTLE||ST||show turtle||It shows the turtle after it is hidden from the screen.||"st"|
|PENUP||PU||(set) pen up||It sets the turtle to move without drawing.||"pu"|
|PENDOWN||PD||(resets) pen||Resets to a drawing pen when ordered to move.||"pd"|
|CLEARTEXT||CT||clear text||It clears all the text in the command screen.||"ct"|
|CIRCLE||repeat 360 [FD (desired length in number of pixels divided by 360) RT or LT 1]||Circle||It makes a circle.||"circle"|
|pattern||pay||pattern||it makes a pattern.||"pattern"|