home *** CD-ROM | disk | FTP | other *** search
-
- Introduction to Little Smalltalk on the Archimedes
- __________________________________________________
-
-
- This distribution disk holds the files you need to use and examine Little
- Smalltalk. There is a runnable version of lst and lstparse in the LIBRARY
- directory with a usable 'prelude' file in the lst.prelude directory.
-
- All the source files are also on the disk, so that you can examine how Little
- Smalltalk works and modify it to try out your own ideas. Please note that
- this is public domain software, so you are charged only for the disk and
- the book (if you buy it of course!) and you are expected to retain the
- disclaimers in the source files should you pass on the code. Also, Smalltalk
- Express and Smalltalk Exchange cannot commit any support; we will TRY to help
- when possible.
-
-
- Where is it all?
- ________________
-
- $.LIBRARY
- This dir holds the 2 main programs; lst and lstparse.
- Copy these into your library if you want to install LST on
- another disk.
-
- $.tmp
- An empty dir for use as temporary file storage during use of
- lstparse etc. If you don't have $.tmp, you will almost certainly
- get a "can't happen 22" error at some time.
-
- $.lst
- read_me - this file!
- .sources - the dir holding;
- .c - all the source files
- .h - header files
- .o - where object files are kept. No object files are provided
- since if you need them, you will have the C compiler to
- produce them! One exception is o.systemcall, since you
- may well lack an object assembler.
- cc_lst - an EXEC file to compile all the sourcees
- link_lst - an EXEC file to build the .o files into a new
- copy of lst, which will exist in this dir so that
- it does NOT overwrite the (hopefully) working
- version in the library until you have tested it.
- Once you are happy with the new version, delete the old
- one and rename the new.
- .parse
- .c - source files for the parser
- .h - header files. cmds is different to cmds in sources.h -
- see later.
- cc_parse & linkparse build a new version of lstparse as above
- .prelude - all the smalltalk source that is used to implement most
- of the system function. There is an EXEC file to build a new
- 'standard' prelude, which is them file loaded each start
- time, called make_std. Note that the lstparse program
- take 2 args and reads code from the first and APPENDs to
- the second. This is changed from the original because IO
- redirection is a little dodgy in Arthur 1.2
- .tests - some LST programs to test the operation of LST and act as
- examples. Study will be rewarded.
-
- Using Little Smalltalk
- ______________________
-
- The only files that you must have to use lst are:- lst, lstparse and the
- 'standard' prelude. You must have the FPE rmloaded. Simply type "lst" and
- wait a moment until the lst prompt comes up. After that, you need to know a
- bit about Little Smalltalk for which we recommend Tim Budd's book.
- To edit a class, you must have an editor in the library call "tw" - we use
- a version of TWIN 'filemove'd to run at &8000. Unfortunately, ARMBE is not
- suitable, since it insists on adding line numbers.
-
- To exit Little Smalltalk you should type ^D as described in the book.
-
-
- Directory structure required
- ____________________________
-
- If you want to put just a running verion of LST onto another disk, all you
- need is to ensure that LST & LSTPARSE are in the library, and that the standard
- prelude is called $.lst.prelude.standard.
-
- Notes on the source code files
- ______________________________
-
- The code is generally quite intelligable (for C). To make any alterations you
- must have a C compiler and linker- the current system was built using the
- Norcroft C compiler from Acorn. At various places in the code you will find
- comments with TPR in; these are places where Smalltalk Express staff
- had to make small alterations to change Little Smalltalk from UN*X to Arthur
- based. Feel free to alter anything, and please tell us if you come up with any
- amazing revelations! An interface to Plot3 commands is provided in c.armGraph
- so that the simple graphics of LST are available (try tests.penshow).
-
- Note on sstr, h.cmds & c.syms
- _____________________________
-
- sstr is a program intended to convert "string" to an address pointing to a
- unique copy of "string" in an array. This is used to build a table of most of
- the symbols needed so that lst will not have to make new ones too often.
- To make a new version of sources.c.syms, use "sstr -t symbols { > c.syms }"
- and then edit the resultant file to add
-
- #include "object.h"
- #include "symbol.h"
-
- to the beginning. You are unlikely to need to worry about this!
- A similar process will be needed if yout change sources.h.cmds - you should in
- fact edit parser.h.cmds, which will have a list of "" surounded strings. Then
- run sstr like this " sstr symbols { < parser.h.cmds > sources.h.cmds }" which
- will leave a new h.cmds to be used in recompiling lst. This would all be much
- easier with a Make utiity of course, but we don`t have that yet!
- Unless you make very deep, major changes, you will not need to worry about sstr
-
- BUGS
- ____
-
- Yes, there are some!
-
- 1. try 'tests.file' - you will notice that the system claims to be unable to
- open a file to write. This seems to be a C error, as we cannot find problems
- elsewhere. Sorry.
-
- 2. Save & Load of entire memory images is currently not implemented
-
- 3. The backtrace() function in courier.c is commented out as a bug has been
- found. A test case is :
- aBlock:=[10 isEven].
- aBlock value.
- If backtrace() is enabled, this dumps you out of Little Smalltalk with a
- "can't happen" error.
-
- Notes For A310 Owners
- _____________________
-
- You will have to reconfigure your system somewhat in order to make enough
- space to run LST.
- First, save your current configuration. Try
- a) Spool oldconf
- b) status
- c) spool
- Then
- conf. screensize 3
- conf. systemsize 0
- conf. spritesize 0
- conf. rmasize 4
- and reboot to set these values.
- You can only use mode 0 in this state, but since LST does not support colour,
- that is hardly a problem!
- This config uses 184k, so there is 840k left for LST and LSTPARSE. LST is set
- to run at 256K up, so it has 616K available, which is just enough. If you are
- willing to exit LST each time you want to edit/parse some code, you could
- ask for a version to run at the default start address and gain 224K ; it's
- a little tedious though.
-
- Tim Rowledge
- Smalltalk Exchange
- Hyde House
- The Hyde
- Edgware
- London NW9 6LA
-
-
-