
   Power LOGO
   Release 1.3
   Copyright 1992
   by  Gary Teachout


[1mWhats new to release 1.3, November 1992

Bugs fixed:[0m

   Conflicts between the "word" primitive and the garbage collector, could
   trash the workspace. This would add garbage to the end of an existing
   list. And a related problem would set the high order bit in one of the
   system interupt vectors.

   The "clean" primitive now works in all draw modes (before it would just
   make a mess if the window was in compliment mode).

   Tabs are now converted to spaces when loading or reading files.

   Another bug in the garbage collector could corrupt the spelling and the
   contents of words. This would happen with large programs, or when a lot
   of words were defined.

   The "word" primitive would add an extra quote to quoted words, and an
   extra colon to dotted words.

   Primitive, keyword, and buried names are no longer allowed as names of
   local variables.

   Files created with the 'save', or 'fprintout' primitives would sometimes
   contain lines longer than 1000 characteres. Such files were not
   compatible with the 'load' primitive.

   The 'new' primitive would not close turtles properly, which would lead
   to a system crash.

   An instruction with too many optional inputs would sometimes give the
   wrong error message.

   Random numbers are much more random.

[1mNew primitives:[0m

   >>                number number number ( number ... )
      Output true if the rest of the inputs are between the first two.

   >>=               number number number ( number ... )
      Output true if the rest of the inputs are between or equal to
      the first two.

   acos              cosine
      Inverse cosine, output angle of cosine.

   allocchip         bytes ( pred )
      Allocate chip memory, output pointer, for sound waveform data, etc.
      'pred' indicates whether you want LOGO to deallocate it
      automatically.

   allocmem          bytes ( pred )
      Allocate memory, output pointer, for messages, arrays, etc.
      'pred' indicates whether you want LOGO to deallocate it
      automatically.

   allocstring       object ( pred )
      Create an ARexx argstring, output pointer.
      'pred' indicates whether you want LOGO to deallocate it
      automatically.

   asin              sine
      Inverse sine, output angle of sine.

   break
      Jump out of looping primitives ("repeat", "while", and "dowhile").

   closepalette      pred
      Close the palette tool.

   continue
      Skip to next pass in looping primitives.

   convertstring     string
      Output list of contents from an argstring.

   dec               name
      Decrement variable.

   ellipse           window x y w h
      Draw ellipse.

   findport          port-name
      Output pointer to the message port if it exists. Output null pointer
      (@0) if the port does not exist.

   freemem           pointer ( pred )
      Deallocate memory allocated by "allocchip", "allocmem", or
      "allocstring". 'pred' indicates whether this is from LOGOs
      user memory list.

   getmessage
      Output pointer to next message at the host port, wait if its empty.

   getreply
      Output pointer to next message at the reply port, wait if its empty.

   hostport          ( port-name )
      Without an input, outputs the name of the host port.
      With an input, changes the name of the host port.

   inc               name
      Increment variable.

   intuition
                     12 window
      Make window, the active window.
                     13 window menu item subitem
      Set menu checkmark.
                     14 window menu item subitem
      Clear menu checkmark.

   launch            run-list
      Add run-list to a queue to be executed once prior to
      returning to top level.

   messagep
      Output true if the host port is not empty. 

   movecommand       screen ( left top width height )
      Move the LOGO command window to another screen.

   openpalette       pred screen ( le te )
      Open the palette tool, output window pointer.

   palettep          ( window )
      Test to see if the palette tool is open, or wait for it to be
      closed, and or output how it was closed.

   replymessage      message
      Return a message received at the host port.

   replyp
      Output true if the reply port is not empty. 

   sendmessage       port-name message ( pred )
      Send a message to the specified message port. 'pred' indicates
      whether or not you want a reply.

   system
                     15
      Output a real pointer to the command window.
                     16
      Output a real pointer to the workbench screen.
                     17
      Output launch list.
                     18
      Output char demon list.
                     19
      Output close demon list.
                     20
      Output menu demon list.
                     21
      Output mouse demon list.
                     22
      Output host port demon list.
                     23
      Output reply port demon list.

   whenmessage       run-list
      Set demon to respond when the host port is not empty.

   whenreply         run-list
      Set demon to respond when the reply port is not empty.


[1mOther changes:[0m

   LOGO should now recognize PAL, or NTSC systems, and adjust the defaults
   for screen size, and turtle aspect ratio.

   Menus have been cleaned up, and may be any color.

   The "peek", and "poke" primitives, now accept an offset as an optional
   input. "poke" no longer accepts multiple numbers.

   Most primitives that expect integer inputs now truncate (round toward
   zero) all nonintegers. Previously 'item', 'repitem', 'represt',
   and 'restof' would round up for lists and down for words. 'psum' and
   'random' would give strange results with nonintegers.


[1mWhats new to release 1.2, February 1992

Bugs fixed:[0m

   After using "erase" in a large program LOGO would sometimes erase most
   of the variables in the workspace.

   Some primitives that output lists (tpos, cursor...) would sometimes
   output something LOGO could not recognize. When this happend you would
   get some error, the words "bad lnode", and some numbers.

   A word contaning just a period (.) is no longer converted to the number
   zero (0).

   The garbage collector would sometimes set the high order bit in one of
   the system interupt vectors.

   The "closeturtle" primitive would sometimes close more turtles than
   specified, or cause LOGO to lock up.

   The "sleep" primitive would not work following any command window text
   output (print, printout, type, ect.).


[1mNew primitives:[0m

   floodpc           window X Y
      Flood fill pixel color. Recolor in all directions from X, Y all
      adjacent pixels the same color as X, Y.

   sound             sound-list sound-list sound-list sound-list
      Play sounds and music on all four of the Amiga audio channels.


[1mOther changes:[0m

   The "floodol" primitive is many times faster than it was.

   All arithmetic now uses the Amiga "mathieeedoubbas.library", this
   includes automatic support for 6888x.

   The "fprint" primitive used to write one word from a list at a time, it
   now writes in larger blocks. This makes output to the SPEAK: device
   much smoother.

   You may now open turtles with their sense of left and right reversed.

   The "copyrect" primitive now accepts a minterm input, allowing
   complement and other effects.

   The "rgb", and "setrgb" primitives now recognize the null pointer (@0)
   as the workbench screen.


[1mWhats new to release 1.1, December 1990

Bugs fixed:[0m

   Some primitives used to crash if LOGO ran out of memory.

   Some primitive operations could trash the workspace. This is the one
   that mysteriously replaced parts of lists with garbage from other lists.

   Local variables were not always popped on exit from a procedure.

   The "filelist", "screenlist", "turtlelist", and "windowlist" primitives
   used to output references to LOGO internal lists. This could cause a
   problem when LOGO changed one of these lists after the user had an
   external reference to it. They now output copies of these lists.


[1mNew primitives:[0m

   argslist
      Output list of startup arguments (Workbench or CLI).

   cd                ( path )
      Set or output the current directory.

   dir               ( path )
      Output list of contents of the specified directory or the current
      directory.

   freadbyte         file
      Output one byte number read from file, Output the empty list if end
      of file.

   fwritebyte        file number ( number ... )
      Write one byte numbers to file.

   saveicon          file-name ( default-tool tool-types )
      Attach icon to file.


[1mOther changes:[0m

   Infinite lists (circularly defined lists) can cause some primitives to
   get stuck in a loop, the break key (Control-G) will now abort these.

   The "asave" primitive has been eliminated.

   The "erase" primitive will no longer erase buried names.

   The "freadlist" primitive now outputs the empty word if at end of file.

   The "save" primitive now saves the file with a project icon.


