home *** CD-ROM | disk | FTP | other *** search
/ Dream 48 / Amiga_Dream_48.iso / Atari / forth / forst.zoo / forst / glossary.lst < prev    next >
File List  |  1990-12-10  |  8KB  |  227 lines

  1.                   GLOSSARY OF NON-STANDARD ForST WORDS
  2.         
  3.         
  4. SYSTEM:  use this word when you wish to exit ForST.
  5.  
  6.   
  7. Strings and TOS:  TOS was written in C, and expects all strings to be
  8.   uncounted and null-terminated.  The one curious exception is the
  9.   command line used in EXEC, which is both counted and (usually) null-
  10.   terminated.
  11.  
  12.  
  13. File words:  where appropriate, the order of parameter passing has been
  14.   made consistent with standard usage in Unix/C.  Occasional deviations
  15.   are intended to be more intuitive to Forth users.  Their detailed
  16.   workings are in the assembly file FILES.S.
  17.   
  18. Low-level words:  as with C, these use system file handles as descriptors.
  19. They should be used cautiously, and best with a book on the ST in hand.
  20.  
  21. CHDIR:  (^path--result).  Result of 0 if OK.
  22.  
  23. CHMOD:  (^filename,flag,attribute--result).  Result = negative if an
  24.   error, otherwise the new attribute.
  25.   
  26. CLOSE:  (handle--)
  27.  
  28. DELETE:  (^filename--).  Result of 0 = OK.
  29.  
  30. EXEC:  (^environment string,^command_line,^filename,mode--)
  31.   Execute a file.  Except in inter-application communication, ^envstr
  32.   should be the address of a zero byte; ^command line is the address
  33.   of a COUNTED string and is copied into the base page of the new file
  34.   when it is loaded; the mode is normally 0.
  35.  
  36. FDUP:  (non-standard_handle,standard_handle--result).  Result of 0 is OK.
  37.  
  38. FMAKE: (mode,^name--handle)
  39.  
  40. GETDTA:  (--address).  Get the current data transfer address.
  41.  
  42. MALLOC:  (#bytes--result).  Allocate memory from the heap.
  43.   Result is 0 on error, else the address of the start of the allocated
  44.   memory.
  45.   If -1 is passed as #bytes, the result is the total amount of available
  46.   memory, and none will be allocated.
  47.   
  48. MFREE:  (^start--result).  Release the memory allocated by MALLOC.  Result
  49.   is 0 if OK.
  50.   
  51. OPEN:  (^filename,mode--handle).  Handle returned is 32-bit negative
  52.   for an error, $ffff for CON:, $fffe for AUX:, $fffd for PRN: or a
  53.   positive handle for a disk file.
  54.   
  55. RENAME: (^oldname,^newname--result).  Result of 0 = OK
  56.  
  57. READ:  (handle,^buffer,#chars--#read)
  58.  
  59. SEEK:  (handle,seekmode,offset--posit).
  60.   Seekmode:  0 = offset relative to file start
  61.              1 = offset relative to present position
  62.             -1 = offset relative to end of file.
  63.             
  64. SETBLK:  (^start,#bytes--result).  Reserve part of memory for an
  65.   application.  Result is 0 if OK.
  66.  
  67. SETDTA:  (^buffer--).  Set the data transfer address.
  68.  
  69. SETDRV:  (#drive--)  0 = A drive, 1 = B, etc
  70.  
  71. SFIRST:  (^filename,attrib--result).  Find the first file which matches
  72.   the file name (which may include wild chars). Result is 0 if file found.
  73.   
  74. SNEXT:  (--result).  Find the next file which matches.  Result as before.
  75.  
  76. WRITE:  (^buffer,handle,#chars--#written)
  77.  
  78.   
  79. High-level file words which use some of the above words:
  80.  
  81. These words use ^file as the address of a ForST file descriptor,
  82. which holds information like the file handle, file mode, #chars read or
  83. written, etc.  A buffer is allocated dynamically from the heap, using
  84. MALLOC.
  85.  
  86. FCLOSE:  (^file--).  Close this file.
  87.  
  88. FOPEN:  (^file,mode,^name--).  Open a file for buffered I/O.
  89.  
  90. FTELL:  (^file--result).  Report the active position in the presently
  91.   open file.
  92.   
  93. GETC:  (^file--char).  The char is -1 if eof or other error.
  94.  
  95. LOAD <filename>: Interpret and/or compile text from an ASCII file.
  96.  
  97. LSEEK:  (^file,mode,offset--).  Seek to a position of an open buffered
  98.   file (see SEEK above).
  99.   
  100. PUTC:  (char,^file--).  Write a char to a buffered file.
  101.  
  102. RUN <filename> <parameters>: Run a file with command line parameters.
  103.  
  104. SAVE <filename>: save the present ForST memory as an executable file.
  105.  
  106.  
  107. Other operating system words (in assembly files GEMDOS.S and BIOS.S).
  108.  
  109. AUXIN:  (--char).  Read a char from the serial port.
  110.  
  111. BIOS, XBIOS, XBDOS:  Access to operating system traps (care!).
  112.  
  113. CONIN:  (--char).  There is no echo to the screen.
  114.  
  115. CONOUT:  (char--).  Used by EMIT to write to screen.
  116.  
  117. CONSTAT:  (--result).  Result is 0 if no chars available.
  118.   PRTSTAT and AUXINSTAT are similar.
  119.   
  120. LOGBASE:  (--address).  Return the address of the screen RAM currently
  121.   being used for output (may not be visible at the time).
  122.  
  123. PHYSBASE:  (--address).  Return the address of the physical screen RAM.
  124.  
  125. PRTOUT:  (char--).  Write a char to the printer, with a 30 sec timeout.
  126.  
  127. SCRDMP:  (--).  Make a hard-copy dump of the screen.  The printer MUST
  128.   be an Atari (mine isn't).
  129.   
  130. SETPRT:  (config--)  Config = $08 for Atari printer, $0c for Epson.
  131.  
  132.  
  133. VT52 terminal emulator words:
  134.  
  135. CURSON, CURSOFF:  turn cursor on or off
  136.  
  137. KLINE:  remove current line from the screen.
  138.  
  139. ILINE:  insert a new line with cursor at the left.
  140.  
  141. KRIGHT:  clear line from cursor position.  Cursor is unchanged.
  142.  
  143. KDOWN:  clear from cursor to end of screen.
  144.  
  145. SCURSUP:  scroll the screen upwards.
  146.  
  147. VDIPB, AESPB:  parameter blocks for GEM VDI and AES screen management.
  148.  
  149.  
  150. Control of separated headers:
  151.  
  152. HIDE <wordname>:  remove the header of a specific word, leaving its
  153.   code or data intact.
  154.   
  155. FROM <wordname>:  mark the start of a range of headers.  This will usually
  156.   be a dummy name, such as MODULE (see below).
  157.  
  158. KEEP <wordname>:  select a header for preservation.
  159.  
  160. PUBLIC:  remove headers, starting with that marked by FROM, and retain
  161.   only those headers specified with KEEP.  
  162.   
  163.   Example:
  164.       FROM MODULE  KEEP INPUT  KEEP OUTPUT  PUBLIC
  165.  
  166.  
  167. Other words:
  168.  
  169. ADDRIN, ADDROUT, PTSIN, PTSOUT:  buffers for GEM.
  170.  
  171. CALL:  compile a call to the following word (avoids possible macro code
  172.   expansion).
  173.  
  174. CALLS, MACROS:  change the mode of compilation.  After CALLS, no macro
  175.   code expansion and optimisation can take place.
  176.  
  177. CELL+, CELL-:  synonyms for 4+ and 4-.
  178.  
  179. COMP,:  compile the compilation record corresponding to the next
  180.   word in the input stream (see the ForST file VECTORS.S).
  181.   
  182. DATA, RETURN, CP, HP:  system variables (see assembly file VARS.S)
  183.  
  184. DELAY:  used as DELAY <wordname> in the definition of an immediate word.
  185.  <wordname> is a DEFERed or VECTORed word and, when the immediate word
  186.  is used in another definition, the contents of the compilation record
  187.  of <wordname> are used to direct compilation (cf COMPILE).  By this
  188.  stage, the compilation record should have been initialised by:
  189.    HEAD <actioname> IS <wordname>
  190.    
  191. DELIM:  A variable used to hold the character presently being used
  192.   by REPLACE.  The default delimiter is ']', which probably has the
  193.   greatest flexibility, but '"' may be preferred.
  194.  
  195. FLIP:  interchanges bytes 0 and 1 of the top stack value.
  196.  
  197. REPLACE:  define a text macro, to replace the next token in the input
  198.   stream with a character string delimited by the character in DELIM.
  199.   Example:  ASCII " DELIM !  REPLACE BUMP R> 1+ DUP >R ."
  200.   BUMP can then be used as a substitute for R> 1+ DUP >R .
  201.   Nesting of REPLACE strings is permitted, but the current limit on the
  202.   degree of input nesting (including file nesting) is 7.  It can be
  203.   increased if the size of IOSTACK (in assembly file VARS.S) is increased,
  204.   and there is a check for stack overflow (mainly to guard against
  205.   accidental text macro recursion.  Try it!).
  206.   
  207. ROR, ROL:  rotate the carry bit after another operation (like ASR) which
  208.   may have affected it.  Reliable only with macro code expansions.
  209.  
  210. SYSTEM:  leave ForST for the calling program (or desktop).
  211.   
  212. START:  a dummy word to mark a point close to the start of headers.
  213.   
  214. THERE:  return address of free header space (cf HERE)
  215.  
  216. VECTOR:  define a word (analogous to DEFER).  VECTOR gives compile-time
  217.   binding: DEFER gives run-time binding.  VECTOR is used in the system
  218.   vectors.
  219.   
  220. VECTORS:  base address of the system vectors (see assembly file SHELL.S).
  221.  
  222. WFLIP:  interchanges halves of top stack value.
  223.  
  224. XKEY:  extended keyboard input, with the key location in the second byte
  225.   and the usual char in the first byte.  Can be used to determine a press
  226.   of a function key.
  227.