Votes / Statistics
Hits: 333
Downloads: 160
Votes: 0
Your vote:
My Atarimania
Bookmark and Share
Comments (0)

Screenshots - EdScheme

EdScheme atari screenshot
EdScheme atari screenshot

Information - EdScheme

GenreProgramming - LanguageYear1989
Language[unknown]PublisherLambda Publications
DeveloperSchemers, Inc.Distributor-
ControlsKeyboard, Mouse, OtherCountryUnited Kingdom
Box / InstructionsEnglishSoftwareEnglish


SerialST TypeST, STe / 0.5MB
ResolutionMedium / HighNumber of Disks1 / Single Sided / HD Installable
Dumpdownload atari EdScheme Download / PastiMIDI

Instructions - EdScheme

*                                                                          *
*                           EdScheme for the Atari                         *
*                                                                          *

(c) Schemers Inc, Fort Lauderdale, FL, Release 3.2, 1990

Distributed by 

           Lambda Publications 
           194 Cheney Manor Road
           Swindon, Wiltshire


   1.  Disk contents.
   2.  Running EdScheme.            
   3.  Command line parameters.
   4.  Strings.
   5.  Additional functions.
   6.  Editor commands.
   7.  Graphics functions.
   8.  Addendum to documentation.

*                            1. Disk Contents.                            *

   The implementation disk contains the following files:

       README     This file of up-to-date information

       EDS.TTP    EdScheme (with editor and graphics interface)
       EDSR.TTP   Restricted EdScheme (with neither editor nor graphics,
                  for use in machines with very limited memory)

       SHELP.TXT  Editor help file

       GAME.S     Documented Scheme program for playing a game involving AI
                  and object-oriented programming

*                       2. Running EdScheme                               *

   To run EdScheme from the desktop, double click on the EDS.TTP
   Not that EdScheme programs may be iterruptedby pressing th
   key marked 'Esc'.
*                        3. Command line parameters                       *

   The following command line parameters are permitted:

    a. File names.  Scheme files named in the command line are loaded and
       compiled (just as though their contents were typed into EdScheme via
       the keyboard), in the order in which they appear, when EdScheme is
       invoked. For example, invoking EdScheme by typing

                          init code\myfile

       causes EdScheme to load and compile the files INIT and 

    b. Workspace parameters, one or more of

                 -b  -c  -d  -g  -i  -m  -n  -o  -p  -r 

       followed by an integer x, as described below.

       Note: These parameters are set automatically by EdScheme.  Most users
       will never have cause to amend any of these values.

       Param  Description

       -bx    Sets the workspace available for backtraces to x in bytes.
              If backtraces are not to be used, x may be set to a low value,
              (to create more space for the garbage collector, for example.)
              x must be a positive, non-zero integer.
              Default value: 512

       -cx    Sets the maximum permitted number of simultaneously active
              continuations.  (See also '-nx'.)  x must be non-zero.
              Default value: 8

       -dx    Sets the compiler workspace to x in bytes.  (When compiling
              truly massive expressions, the compiler may run out of
              workspace.  Use this parameter to increase the workspace if
              necessary.)  x must be non-zero.
              Default value: 8192

       -ix    If x is 1, causes EdScheme to print a table displaying its
              memory allocations (after taking into account any changes
              made by other command line parameters).  If x is zero, no
              table is displayed.
              Default value: 0

       -mx    Sets the maximum permitted number of simultaneously open files
              to x.  x must be non-zero.
              Default value: 8

       -nx    Sets the continuation workspace to x in bytes.  If EdScheme
              generates the message 'Cannot create continuation' in response
              to a call to the function 'call/cc', and the number of
              continuations created is less than the maximum permitted (see
              parameter '-cx' above), then the continuation workspace should
              be increased.  x must be non-zero.
              Default value: 1024

       -ox    Sets the oblist space to x, in bytes.  x should never be less
              Default value: 16384.

       -px    Sets the maximum permitted number of nested repeat-loops.
              Default value: 8

       -rx    Sets the maximum permitted recursion depth, to x.  That is,
              it sets the maximum number of full recursive (as opposed to 
              tail recursive) calls that are permitted before EdScheme
              generates a 'too complex' error.  
              Note: It is highly unlikely that most users will ever need 
              to increase this figure.   The most likely cause of a 
              'too complex' error is that a fully recursive function 
              has failed to terminate properly.  However, it may 
              sometimes be useful to decrease the maximum recursion
              depth, since this a convenient means of releasing memory space
              (see the example immediately below).  Note that x should never
              be set less than 150.
              Default value: 1024

       For example, typing the command line parameters

                     init -o32000 myfile -r512

       at the * prompt causes EdScheme to set the oblist length
       to 32000 bytes, the maximum recursion depth to 512, and to read
       and compile the files INIT and MYFILE.

       If there is insufficient space to implement the workspace requests,
       EdScheme displays the mesage

                         memory error: not enough

       and aborts.

*                             4. Strings                                  *

   Release 3.2 has an additional primitive S-expression category designed
   to allow strings of characters, including special characters, to be
   entered without the need for slashification.  Such `strings' are
   enclosed in double quotation marks.  So, for example, the funcional

            (define A "A cat sat on the mat")

   defines the variable 'A' to be the string  'A cat sat on the mat'. Strings
   are disjoint from other primitive data types; the predicate function
   'string?' takes any S-expression as its only input and returns the atom
   't' if and only if its input is a string.

   For the most part, strings may be manipulated as though they are atoms;
   thus strings are suitable inputs for the functions 'implode', 'explode',
   'load', 'display', 'open-output-file', and so on.  Strings are printed
   with the enclosing quotes unless displayed using the functions 'display'
   and 'turtle-display', when the quotes are omitted.  For example, suppose
   the variable 'A' is defined as above:

           ==> A
           "A cat sat on the mat"
           ==> (begin (display A) (fresh-line))
           A cat sat on the mat

*                         5. Additional Functions                         *

   The following additional functions are provided to allow EdSchemer's to 
   take advantage of the abilities of the Atari ST computer.  (Certain
   of EdScheme's core functions have been given extra inputs in order to 
   take full advantage of the facilities; these are also described
   below.)  Additional graphics functions are described in Section 7.  Note
   that EdScheme may be interrupted by pressing the 'Esc' key.
    run-time  The no-input primitive function 'run-time' returns the current
              value of the system clock.
         dir  The functional expression '(dir)' returns a list containing
              the names of the files in the current directory.  The
              functional expression of the form '(dir atom)' returns a
              list of the files in the directory named by 'atom'.  For
              example, '(dir 'mydir)' lists the files in 'mydir'.

     delete!  Takes two inputs, the first of which may be any S-expression 
              r and the second of which must be a list s.  It returns the
              list s with each occurrence of the S-expression r removed.
              (The symbol '!', pronounced 'bang' by Schemers, indicates
              that, like other bang functions, delete! may change the list
              given as its second input.  In other words, the expression
                  (let ((s '(a b c d e f g)))
                    (let ((result (delete! 'c s)))

              does not evaluate to the list '(a b c d e f g)' as might be
              expected since the function delete! has the side effect
              of modifying the list s.   

     string?  A one-input predicate function that returns the atom 't' if and
              only if its input is a string.

print-length  Inputs any S-expression and returns the number of symbols that
              are needed to print it on the screen.  For example,

                        (print-length '(a b c)) ==> 7

     palette  This function does not behave as described in the
              documentation.  In particular, th second input to the function
              must be a list containing exactly three numbers corresponding
              to the required red, green and blue components, respectively.
              For example, the expression 
                        (palette 1 (32 64 128))

              defines colour 1 to have red, green and blue components
              of 32, 64 and 128 respectively.

 get-palette  Returns a list containing three numbers, being the
              red, green, and blue components, respectively, of the colour
              given as the first component.

   mouse-off  No inputs.  Turns off the mouse pointer (equivalent to 
              the VDI function v_hide_c).
    mouse-on  Takes one optional input, an integer n.  Turns on th mouse
              pointer.  (Equivalent to the VDI function v_show_c with 
              the reset input set to n.  If the input is omitted, n is 
              assumed to b zero.) 
get-mouse-state  Returns a list containing exactly two S-expressions, 
                1. A pair giving the curret coordinates of the mouse, and
                2. A number indicating the current button state.
              See VDI function vq_mouse in th Atari documentation for more
  screen-red  On colour systems, behaves as described in the documentation.
              However, in monochrome systems, the value of this variable
              is used to determine the text font effect used for 
              printing S-expressions.
screen-black  On colour systems, behaves as described in the documentation.
              However, in monochrome systems, the value of this variable
              is used to determine the text font effect used for 
              printing functional expressions.
screen-colourless  On colour systems, behaves as described in the 
              documentation.  However, in monochrome systems, the
              value of this variable is used to determine the text
              font effect used for printing system messages.
display-effect  Takes one inut, an integer, and sets the text font effect 
              for S-expressions written to the screen using the display 
              function in colour mode.

*                            6. Editor commands                           *

   The following commands are available in addition to those listed in
   The EdSchemer's Guide.  Most of these are displayed by pressing key F1
   while in the editor.

   Up arrow    Up         Ctrl-up    Page up       Shift-up    Start of file
   Down arrow  Down       Ctrl-down  Page down     Shift-down  End of file
   Right arrow Right      Ctrl-right Jump right    Shift-right End of line      
   Left arrow  Left       Ctrl-left  Jump left     Shift-left  Start of line

   Home        Start of line 
   Insert Toggle mode     Ctrl-Y Delete line      Del       Delete character
   Tab    Indent line     Enter  Insert line      Backspace Delete char left
   Clr    Delete line

   FILE                   SEARCH                  BLOCK
   Ctrl-F R Load          Ctrl-Q F Find           Ctrl-K B Begin block
   Ctrl-F W Save          Ctrl-Q A Replace        Ctrl-K K End block
   Ctrl-F C New             G - global,           Ctrl-K H Hide/reveal block
   Ctrl-X   Evaluate        K - block,            Ctrl-K C Copy block
            & exit          N - without asking    Ctrl-K V Move block
   Ctrl-E   Exit          Ctrl-L   Repeat last    Ctrl-K Y Delete block
                                   search         Ctrl-K X Evaluate block
                                                  Ctrl-K R/W Read/Write block
    F1     F2     F3     F4     F5     F6     F7     F8     F9     F10
   Help   Save   Find  Find &  Begin   End   Hide   Copy   Move   Evaluate
          file        Replace  block  block  block  block  block   & exit

*                           7. Graphics functions                         *

The following functions and function inputs are specific to this version of

graphics-screen  Normally, this function is called with no inputs, as in


                 The function takes an optional input, being 
                 the number of lines used for the text window.  For
                 example, the expression
                         (graphics-screen 10) 

                 causes EdScheme to use 10 lines (which is the maximum
                 permitted number) of text.

     fill-style  Takes one input, being the fill pattern (from 1, meaning
                 solid fill, to 25---see the Atari documentation for a list
                 of fill patterns).
    turtle-fill  This function takes one input, a colour c, and flood fills
                 the screen using the current fill pattern and taking
                 c as the border.  (Therefore, in a monochrome system, the
                 input to turtle-fill withh usually be 1.)
     line-style  Takes one input, a list containing three numbers, namely,
                 the line thickness, line style, and line end style,
                 respectively.  See the VDI functions vsl_type, vsl_width
                 and vsl_ends in te Atari documntation for more
*                              8.  Addendum                               *

1.  Addendum to The EdSchemer's Guide.

Page 3, footnote.
   Change:  ... such as displaying a expression on ...
  To read:  ... such as displaying an expression on ...

Page 5, line 11.
   Change: ( ) [ ] ' ; space \
  To read: ( ) [ ] ' ; space \ "

Page 12, line 6.
   Change: ... is given on page 14 of ...
  To read: ... is given on page 10 of ...

Page 12, line 24.
   Change: ... is provided on page 14 of ...
  To read: ... is provided on page 9 of ...

Page 13, line -2.
   Change: ... is provided on page 12 of ...
  To read: ... is provided on page 10 of ...

Page 17, line 18.
   Change: ... three S-expression (in addition ...
  To read: ... three S-expressions (in addition ...

Page 20, Figure 4.1, line -2.
   Change: (1 a b c)
  To read: (100 a b c)

Page 20, line -4.
   Change: (a b c)1
  To read: (a b c)100

Page 22, line -12 (in conversation box).
   Change: a ==> (rest '(a b c))
  To read: a
           ==> (rest '(a b c))

Page 24, line 1.
   Change: ... in this makes a permanently ...
  To read: ... in this way makes a permanently ...

Page 30, line -8.
   Change: ... soon become comfused ...
  To read: ... soon become confused ...

Page 31, line 1.
   Change: ... prints as '(((a 1) (b 2)))' The function ...
  To read: ... prints as '(((a 1) (b 2)))'. The function ...

Page 31, line 5.
   Change: ... on page 3) that EdScheme ...
  To read: ... on page 3) so EdScheme ...

Page 31, line -13.
   Change: ... on page 17).   
  To read: ... on page 18).

Page 54, Figure 9.1.
  The function fast-poly should be defined as follows:
             (define (fast-poly n len)
                (let ((pen-state (pen-down?))
                      (show-state (turtle-shown?))
                      (angle (/360 n)))
                    (repeat n (forward len) (right angle))
                    (if (not (pen-state)) (pen-up))
                    (if (show-state) (show-turtle)))))

Page 54, line -7.
  The function turtle-fast-poly should be defined as follows:
              (define (turtle-fast-poly n len turtle)
                (let ((pen-state (turtle-pen-down? turtle))
                      (angle (/360 n)))
                    (turtle-pen-down turtle)
                    (repeat n (turtle-forward len turtle) 
                              (turtle-right angle turtle))
                    (if (not (pen-state)) (turtle-pen-up turtle))

2. Addendum to The EdSchemer's Reference.

Page 5, line -7.
   Change: (i) prefixing the ...
  To read: prefixing the ...

Page 17, line 11.
   Change: (open-output-port ...
  To read: (open-output-file ...

Page 20, line 18.
   Change: (open-input-port ...
  To read: (open-input-file ...

Page 25, line 17.
   Change: ... value returned. Examples:
  To read: ... value returned (or the atom 'nil' if fexp2 is omitted).

Page 25, line -13.
   Change: Concatenates the characters ... only characters.
  To read: Concatenates the atoms ... only atoms.

Page 35, line 18.
   Change: (f int))
  To read: (foo int)) 

*                             End of File : ReadMe                        *

Trivia - EdScheme

Supports Turtle interface.

About Us - Contact - Credits - Powered with Webdev - © Atarimania 2003-2020