FMSLogo 8.0.0
------------------------------------------------------------------------
I. Kit Description/Location
II. New features/bugs fixed
III. Standard features
IV. Recommended usage
V. Reporting bugs
VI. Sources
VII. Minimum System Requirements
VIII. Acknowledgements
I. Kit Description/Location (https://sourceforge.net/projects/fmslogo)
fmslogo-8.0.0.exe - Installer for the Logo environment
fmslogo-8.0.0.zip - ZIP of the Logo environment
II. New features/bugs fixed
Changed in 8.0.0
o Implement Feature #123; Added support for Unicode.
This introduced the following breaking changes:
- CHAR now wraps at 65536, instead of 256.
- ASCII and RAWASCII now output numbers from 0-65535 (Unicode BMP).
This may result in a different number for most characters outside of the
ASCII range.
- BACKSLASHEDP now outputs TRUE for characters created from code points in
the Private Use Area of Unicode, instead of ones in the range of ASCII
control characters. Similarly, when RAWASCII inputs such characters
it outputs large numbers from the Private Use Area, instead of small ones
from the range of ASCII control characters.
- If a file is opened in text mode and includes a byte order mark at the
beginning, then SETWRITEPOS 0 and SETREADPOS 0 now set the position to
after the byte order mark, instead of before it.
- OPENREAD, OPENAPPEND, and OPENUPDATE in text modes now infer the character
encoding from the presence of a byte order mark (BOM) character. This
results in different characters being read from any text file which has a
BOM. OPENUPDATE honors this encoding when writing, resulting in different
bytes being written for any file that includes a BOM.
- When OPENWRITE or OPENAPPEND create text files, they encode all data as
UTF-8 and write a BOM at the beginning, whereas previously they created
empty files (no BOM) and encoded data in the system default code page.
- NETCONNECTSENDVALUE and NETACCEPTSENDVALUE now convert from Unicode to
the default Windows system code page before transmission.
NETCONNECTRECEIVEVALUE and NETACCEPTRECEIVEVALUE do the reverse.
- The "B" output type for DLLCALL uses the lower byte as each character
in the returned word. This may result in differences for any bytes
written to these buffers which are outside the ASCII range.
- Files created with DRIBBLE now begin with a byte order mark and are
encoded in UTF-8. Before, there was no BOM and the file was encoded
in default system Windows code page.
o Fix Bug #553; The MESSAGEBOX dialog no longer appear over the commander
when it's minimized or hidden (and no longers crashes on Windows XP).
o Fix Bug #552; PORTOPEN now reports an error if the port cannot be opened.
o Fix Bug #551; Esscaped newline characters now SAVE as "\n" instead of as a
backslash followed by a literal newline character.
o Fix Bug #548; BITCUT/BITCOPY/BITPASTE/BITPASTETOBITINDEX now throw errors
instead of showing a modal dialog boxes and throwing a stopping error.
o Fix Bug #547; The PORT API now throws port-specific errors instead of
showing a modal dialog boxes and throwing a stopping error.
o Fix Bug #546; The NET API now throws network-specific errors instead of
showing a modal dialog boxes and throwing a stopping error. It is also
no longer an error to run NETCONNECTOFF when the client isn't on or to
run NETACCEPTOFF when the server isn't on.
o Fix Bug #545; MCI now throws a new MCI-specific error when the MCI
subsystem returns an error instead of showing a modal dialog box and
throwing a "Stopping" error.
o Fix Bug #544; SOUND throws a "doesn't like" error when given bad input
instead of showing a modal dialog box. It also no longer plays any
sound if there's a non-integer member of its input list.
o Fix Bug #543; POLYSTART and POLYEND now throw "Invalid State" errors
when called at incorrect times and no longer display dialog boxes.
o Fix Bug #541; The installer once again aborts if FMSLogo is running.
o Fix Bug #533; ELLIPSEARC and ELLIPSEARC2 now treat the angles correctly.
This may change the behavior of programs which give angles that aren't
multiples of 90 degrees.
o Fix Bug #530; Using the File API to open the clipboard with anything other
than OPENREAD or OPENWRITE in text mode no longer crashes.
o Fix Bug #494; ELLIPSEARC2 now leaves at the point where the ellipse stopped.
Also, when a negative x.semiaxis (the third input) is given, ELLIPSEARC2
now draws the arc tangent to the turtle in the oppose direction, instead of
jumping to the other side of the ellipse. This may change the behavior of
programs which give angles that aren't multiples of 90 degrees or negative
x.semiaxis inputs.
o Fix Bug #329; SAVE and LOAD can now correctly preserve arrays with CHAR 0,
CHAR 13, CHAR 26, and CHAR 29.
o Fix Bug #321; SCROLLBARSET now uses the value returned from :ERRACT when
the third input (max) isn't larger than the second input (min).
o Fix Bug #186; NETACCEPTON and NETCONNECTON no longer run the :sendready
instruction list when the remote host initiates a half-close.
o Fix Bug #182; NETACCEPTON can now accept multiple connections (in serial)
without having to call NETSHUTDOWN after each one.
o Fix Bug #555; Timer event #16, no longer yields by default. This fixes a
regression introduced when FMSLogo was ported to wxwidgets (7.0.0).
o Improvements to the manual, including fixing Bug #542.
For the history of changes across all versions of FMSLogo, see
https://sourceforge.net/p/fmslogo/source/HEAD/tree/logo/trunk/src/CHANGELOG.TXT
III. Standard features
FMSLogo supports:
o TCP/IP WinSock Networking
o Text in all available fonts and sizes
o multiple independent Turtles
o Bitmapped Turtles
o Cut, Paste and stretching bitmaps
o Clipboard Text and Bitmaps
o MIDI devices
o Direct I/O for Controlling External hardware
o Serial and Parallel Port communications
o Zooming
o Tail recursion (optimizes most recursive functions)
o User error handling
o "Standard" Logo parsing
o Floodfill
o Save and load images as .BMP or .GIF
o Standard Windows Hypertext Help
o Standard Windows Printing
o Construction of Windows Dialog Boxes
o Event Driven programming (Mouse, Keyboard, Timer)
o MultiMedia Devices (.WAV sound files, CD-ROM control, etc.)
o Event Timers allowing multiprocessing
o 3D Perspective drawing (Wireframe and Solids)
o Animated GIF generation
IV. Recommended usage
For ages 6 and up
o Beginner - Forward 100, Right 90
o Proficient - Explore mathematics, art, music, robotics, language, and more
o Expert - Create games
V. Reporting bugs
Report bugs at https://sourceforge.net/p/fmslogo/bugs/
VI. Sources
Source code is available. It's your legal right! See LICENSE.TXT.
FMSLogo is built with:
o MinGW w64 (compiler)
o wxWidgets (GUI toolkit)
o DocBook, xsltproc, and Microsoft Help Workshop (for online help)
o Nullsoft Scriptable Install System (NSIS) (for the installer)
VII. Minimum System Requirements
Windows XP with 512 MB RAM
VIII. Acknowledgements
I wish to extend my sincerest thanks to everyone who has used, supported,
criticized, praised, filed a bug on, or otherwise contributed to either
FMSLogo or MSWLogo.
Thanks to:
Alexandre Soares
Andreas Micheler
Andrzej Pruszynski
Andy Owen
Anthony Barnett
Ayurzanaeva Aryuna
Bertrand Carette
Bob Gorman
Bruce Mardle
Carl Bogardus
Clem Rutter
Daniel Ajoy
Domagoj Kuna
Francesco Simone Carta
Hensley Bass
Igor Baglaev
Jan Grabe
Jason Gervich
Jelko Urbancic
Jim Foster
Juan J. Paredes G.
Kari Hoijarvi
Lion Nik Kucev
Lionel Laske
Manfred Zindel
Michael Malin
Mike Sandy
Narayanan Chitoor
Pachleng
Pavel Boytchev
Peter De Wachter
Ralf Kurth
Relja Medic
Rosario Ruiz
Sascha Zindel
Serio Adamo
Stefano Federici
Stephan Vogel
Tankhasaev Ayur
Theodoros Chatzigiannakis
Special thanks to:
George Mills
Brian Harvey
Jim Muller
Erich Neuwirth
Yehuda Katz