home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol014 / mbasic.hlp < prev    next >
Text File  |  1985-02-09  |  21KB  |  494 lines

  1. Introduction to the Microsoft BASIC Interpreter
  2. Special Characters
  3. Variable Type Declaration Chars
  4. Commands
  5. Edit Mode Subcommands
  6. Program Statements (except I/O)
  7. PRINT USING Format Field Specifiers
  8. Input/Output Statements
  9. Operators
  10. Arithmetic Functions
  11. String Functions
  12. I/O and Special Functions
  13. Interpreter Error Codes
  14. Introduction to the Microsoft BASIC Compiler
  15. Compiler Commands and Switches
  16. Compiler Error Messages
  17. :Introduction to the Microsoft BASIC Interpreter
  18.  
  19.      Thi≤á HEL╨ Filσ i≤ deriveΣ froφ thσ "Microsof⌠ BASI├ Referencσá Book"¼ ì
  20. anΣá i⌠á i≤ divideΣ int∩ tw∩ part≤ -- onσ coverinτ thσ Interprete≥ anΣá thσ ì
  21. othe≥á coverinτ thσ Compiler«á  Thesσ program≤ proces≤ program≤ writteεá iε ì
  22. almos⌠á exactl∙á thσá samσ languagσ -- Microsof⌠á BASIC╗á therσá arσá mino≥ ì
  23. difference≤ betweeε thσ two¼á however¼á anΣ thesσ arσ discusseΣ iε thσ filσ ì
  24. under the Compiler Introduction.
  25.  
  26.      The MBASIC (Microsoft BASIC) Interpreter is invoked as follows --
  27.  
  28.           MBASIC [<filename>][/F:<# files>][/M:<memory loc>]
  29.  
  30. Iµá <filename╛ i≤ present¼á MBASI├ proceed≤ a≤ iµ ß RU╬ <filename╛á commanΣ ì
  31. werσ typeΣ afte≥ initializatioε i≤ complete«á  ┴ defaul⌠ extensioε oµá .BA╙ ì
  32. i≤á assumed«á  Iµ /F:<ú files╛ i≤ present¼á i⌠ set≤ thσ numbe≥ oµ disδ datß ì
  33. file≤á tha⌠ ma∙ bσ opeε a⌠ an∙ onσ timσ durinτ thσ executioε oµ ßá program«  ì
  34. Thσá defaul⌠á herσá i≤ 3«á  Thσ /M:<memor∙ loc╛á set≤á thσá highes⌠á memor∙ ì
  35. location≤ tha⌠ wil∞ bσ useΣ b∙ MBASIC«á  Al∞ memor∙ t∩ thσ star⌠ oµ FDO╙ i≤ ì
  36. used by default.
  37. :Special Characters
  38. ^A        Enters Edit Mode on line being typed or last line typed
  39. ^C        Interrupts program execution and returns to MBASIC
  40. ^G        Rings <BELL> at terminal
  41. ^H        Deletes last char typed
  42. ^I        Tab (every 8)
  43. ^O        Halts/resumes program output
  44. ^R        Retypes the line currently being typed
  45. ^S        Suspends program execution
  46. ^Q        Resumes execution after ^S
  47. ^U,^X     Deletes line being typed
  48. <CR>      Ends every line being typed in
  49. <LF>      Breaks a logical line into physical lines
  50. <DEL>     Deletes last char typed
  51. <ESC>     Escapes Edit Mode Subcommands
  52. .         Current line for EDIT, RENUM, DELETE, LIST, LLIST commands
  53. &O,&      Prefix for Octal Constant
  54. &H        Prefix for Hex Constant
  55.  :        Separates statements typed on the same line
  56.  ?        Equivalent to PRINT statementè:Variable Type Declaration Characters
  57.  
  58. $    String              0 to 255 chars
  59.  
  60. %    Integer             -32768 to 32767
  61.  
  62. !    Single Precision    7.1 digit floating point
  63.  
  64. #    Double Precision    17.8 digit floating point
  65. :Commands
  66.  
  67. Command   Syntax                        Function
  68. AUTO      AUTO [line][,inc]             Generate line numbers
  69. CLEA╥     CLEA╥ [,[exp1][,exp2]▌        Clea≥ prograφ variables╗á Exp▒ set≤ ì
  70.                                         enΣá oµ memor∙ anΣ Exp▓ set≤ amoun⌠ ì
  71.                                         of stack space
  72. CONT      CONT                          Continue program execution
  73. DELETE    DELETE [[start][-[end]]]      Delete program lines
  74. EDIT      EDIT line                     Edit a program line
  75.  
  76. FILES     FILES [filename]              Directory
  77. LIST      LIST [line[-[line]]]          List program line(s)
  78. LLIST     LLIST [line[-[line]]]         List program line(s) on printer
  79. LOAD      LOAD filename[,R]             Load program; ,R means RUN
  80. MERGE     MERGE filename                Merge prog on disk with that in mem
  81.  
  82. NAME      NAME old AS new               Change the name of a disk file
  83. NEW       NEW                           Delete current prog and vars
  84. NULL      NULL exp                      Set num of <NULL>s after each line
  85. RENUM     RENUM [[new][,[old][,inc]]]   Renumber program lines
  86. RESET     RESET                         Init CP/M; use after disk change
  87.  
  88. Command   Syntax                        Function
  89. RUN       RUN [line number]             Run a prog (from a particular line)
  90.           RUN filename[,R]              Run a prog on disk
  91. SAV┼      SAV┼ filename[,┴ o≥ ,P▌       Savσ proτ ont∩ disk╗á ,┴ save≤ proτ ì
  92.                                         in ASCII and ,P protects file
  93. SYSTEM    SYSTEM                        Return to CP/M
  94. TROFF     TROFF                         Turn trace off
  95. TRON      TRON                          Turn trace on
  96. WIDT╚     WIDT╚ [LPRINT▌ ex≡            Se⌠ terφ o≥ printe≥ carriagσ width╗ ì
  97.                                         default is 80 (term) and 132 (prin)
  98. :Edit Mode Subcommands
  99. A         Abort -- restore original line and restart Edit
  100. nCc       Change n characters
  101. nD        Delete n characters
  102. E         End edit and save changes; don't type rest of line
  103. Hstr<ESC> Delete rest of line and insert string
  104. Istr<ESC> Insert string at current pos
  105. nKc       Kill all chars up to the nth occurrance of c
  106. L         Print the rest of the line and go to the start of the line
  107. Q         Quit edit and restore original line
  108. nSc       Search for nth occurrance of c
  109. Xstr<ESC> Goto the end of the line and insert string
  110. <DEL>     Backspace over chars; in insert mode, delete chars
  111. <CR>      End edit and save changes
  112. :Program Statements (except I/O)
  113. Statement Syntax                        Function
  114. CALL      CALL variable [(arg list)]    Call assembly or FORTRAN routine
  115. CHAIN     CHAIN [MERGE] filename [,[line exp][,ALL][,DELETE range]]
  116.                Cal∞á ß prograφ anΣ pas≤ variable≤ t∩ it╗á MERG┼ witΦá ASCI╔ ì
  117.                file≤ allow≤ overlays╗ star⌠ a⌠ linσ ex≡ iµ given╗ AL╠ mean≤ ì
  118.                al∞ variable≤ wil∞ bσ passeΣ (otherwisσ COMMO╬ only)╗ DELET┼ ì
  119.                allows deletion of an overlay before CHAIN is executed
  120. COMMON    COMMON list of vars           Pass vars to a CHAINed prog
  121. DEF       DEF FNx[(arg list)]=exp       Arith or String Function
  122.           DEF USRn=address              Define adr for nth assembly routine
  123.           DEFINT range(s) of letters    Define default var type INTeger
  124.           DEFSNG "        "   "         "         "     "   "   Single
  125.           DEFDBL "        "   "         "         "     "   "   Double
  126.           DEFSTR "        "   "         "         "     "   "   String
  127. DIM       DIM list of subscripted vars  Allocate arrays
  128.  
  129. END       END                           Stop prog and close files
  130. ERASE     ERASE var [,var ... ]         Release space and var names
  131. ERROR     ERROR code                    Generate error code/message
  132. FOR       FOR var=exp TO exp [STEP exp] FOR loop
  133.  
  134.  
  135. Statement Syntax                        Function
  136. GOSUB     GOSUB line number             Call BASIC subroutine
  137. GOTO      GOTO line number              Branch to specified line
  138. IF/GOTO   IF exp GOTO line [ELSE stmt ... ]
  139.                                         IF exp <> 0 then GOTO
  140. IF/THEN   IF exp THEN stmt[:stmt] [ELSE stmt ... ]
  141.                                         IF exp <> 0 then ... else ...
  142. LET       [LET] var=exp                 Assignment
  143.  
  144. MIDñá     MID$(string,n[,m])=string▓á   Replacσ  ß  portioε oµ strinτá witΦ ì
  145.                                         string2; start at pos n for m chars
  146. NEXT      NEXT var[,var ... ]           End FOR
  147. ON ERROR  ON ERROR GOTO line            Error trap subroutine
  148.   GOTO
  149. ON/GOSUB  ON exp GOSUB line[,line]      Computed GOSUB
  150. ON/GOTO   ON exp GOTO line[,line]       Computed GOTO
  151.  
  152.  
  153. Statement Syntax                        Function
  154. OPTION    OPTION BASE n                 Min val for subscripts (n=0,1)
  155.   BASE
  156. OUT       OUT port,byte                 Output byte to port
  157. POKE      POKE address,byte             Memory put
  158. RANDOMIZE RANDOMIZE [exp]               Reseed random number generator
  159. REM       REM any text                  Remark -- comment
  160.  
  161. RESTORE   RESTORE [line]                Reset DATA pointer
  162. RESUME    RESUME or RESUME 0            Return from ON ERROR GOTO
  163.           RESUME NEXT                   Return to stmt after error line
  164.           RESUME line                   Return to specified line
  165. RETURN    RETURN                        Return from subroutine
  166. STOP      STOP                          Stop prog and print BREAK msg
  167. WAI╘      WAI╘ prot,mask[,select▌       Pausσ unti∞ inpu⌠ por⌠ [XO╥ select▌ ì
  168.                                         AND mask <> 0
  169.  
  170. WHILE/    WHILE exp stmts ... WEND      Execute stmts as long as exp is T
  171.   WEND
  172. :PRINT USING Format Field Specifiers
  173. Numeric Specifiers
  174.  
  175. Specifier Digits    Chars     Definition
  176.   #         1         1       Numeric field
  177.   .         0         1       Decimal point
  178.   +         0         1       Print leading or trailing sign
  179.   -         0         1       Trailing sign (- if neg, <sp> otherwise)
  180.   **        2         2       Leading asterisk
  181.  
  182.   $ñá       ▒á        ▓       Floatinτ  dolla≥  sign╗á placeΣ iεá fron⌠á oµ 
  183.                               leading digit
  184.   **$       2         3       Asterisk fill and floating dollar sign
  185.   ,         1         1       Use comma every three digits
  186.   ^^^^      0         4       Exponential format
  187.   _         0         1       Next character is literal
  188.  
  189. String Specifiers
  190.  
  191. Specifier                     Definition
  192.   !                           Single character
  193.   /<spaces>/                  Character field; width=2+number of <spaces>
  194.   &                           Variable length field
  195. :Input/Output Statements
  196.  
  197. Statement Syntax/Function
  198. CLOSE     CLOSE [[#]f[,[#]f ... ]]
  199.            Close disk files; if no arg, close all
  200. DATA      DATA constant list  
  201.            List data for READ statement
  202. FIELD     FIELD [#]f,n AS string var [,n AS string var ...]
  203.            Define fields in random file buffer
  204. GET       GET [#]f[,record number]
  205.            Read a record from a random disk file
  206. INPUT     INPUT [;] [prompt string;] var [,var ...]
  207.           INPUT [;] [prompt string,] var [,var ...]
  208.            ReaΣá datß froφ thσ terminal╗á leadinτ semicoloε suppresse≤ ech∩ ì
  209.            oµá <CR>/<LF╛ anΣ semicoloε afte≥ promp⌠ strinτ cause≤á questioε ì
  210.            marδá afte≥ promp⌠ whilσ commß afte≥ promp⌠ suppresse≤á questioε ì
  211.            mark
  212.  
  213. Statement Syntax/Function
  214.  
  215. KILL      KILL filename
  216.            Delete a disk file
  217. LINE      LINE INPUT [;] [prompt string;] string var
  218. INPU╘      ReaΣ aε entirσ linσ froφ terminal╗á leadinτ semicoloε suppresse≤ ì
  219.            echo of <CR>/<LF>
  220.           LINE INPUT #f,string var
  221.            Read an entire line from a disk file
  222. LSET      LSET field var=string exp
  223.            Storσ datß iε randoφ filσ buffe≥ left-justifieΣ o≥á left-justif∙ ì
  224.            a non-disk string in a given field
  225. OPEN      OPEN mode,[#] f,filename
  226.            Open a disk file; mode must be one of --
  227.                I = sequential input file
  228.                O = sequential output file
  229.                R = random input/output file
  230. Statement Syntax/Function
  231.  
  232. PRINT     PRINT [USING format string;] exp [,exp ...]
  233.            Print data at the terminal using the format specified
  234.           PRINT #f, [USING format string;] exp [,exp ...]
  235.            Write data to a disk file
  236.           LPRINT [USING format string;] var [,var ...]
  237.            Write data to a line printer
  238. PUT       PUT [#] f [,record number]
  239.            Write data from a random buffer to a data file
  240. READ      READ var [,var ...]
  241.            Read data from a DATA statement into the specified vars
  242. RSET      RSET field var = string exp
  243.            Storσá datßá iεá ß randoφ filσ buffe≥ righ⌠ justifieΣá o≥á righ⌠ ì
  244.            justify a non-disk string in a given field
  245. WRITE     WRITE [list of exps]
  246.            Output data to the terminal
  247.           WRITE #f, list of exps
  248.            Output data to a sequential file or a random field buffer
  249. :Operators
  250.  
  251. Symbol    Function
  252.  =        Assignment or equality test
  253.  -        Negation or subtraction
  254.  +        Addition or string concatenation
  255.  *        Multiplication
  256.  /        Division (floating point result)
  257.  ^        Exponentiation
  258.  \        Integer division (integer result)
  259. MOD       Integer modulus (integer result)
  260. NOT       One's complement (integer)
  261. AND       Bitwise AND (integer)
  262. OR        Bitwise OR (integer)
  263. XOR       Bitwise exclusive OR (integer)
  264. EQV       Bitwise equivalence (integer)
  265. IMP       Bitwise implication (integer)
  266. =,>,<,    Relational tests (TRUE=-1, FALSE=0)
  267.   <=,=<,
  268.   >=,=>,
  269.   <>
  270.  
  271. The precedence of operators is --
  272.  1.  Expressions in parentheses     8.  Relational Operators
  273.  2.  Exponentiation                 9.  NOT
  274.  3.  Negation (Unary -)            10.  AND
  275.  4.  *,/                           11.  OR
  276.  5.  \                             12.  XOR
  277.  6.  MOD                           13.  IMP
  278.  7.  +,-                           14.  EQV
  279. :Arithmetic Functions
  280. Function       Action
  281.  
  282. ABS(exp)       Absolute value of expression
  283. ATN(exp)       Arctangent of expression (in radians)
  284. CDBL(exp)      Convert the expression to a double precision number
  285. CINT(exp)      Convert the expression to an integer
  286. COS(exp)       Cosine of the expression (in radians)
  287.  
  288. CSNG(exp)      Convert the expression to a single precision number
  289. EXP(exp)       Raises the constant E to the power of the expression
  290. FIX(exp)       Returns truncated integer of expression
  291. FRE(exp)       Gives memory free space not used by MBASIC
  292. INT(exp)       Evaluates the expression for the largest integer
  293.  
  294. LOG(exp)       Gives the natural log of the expression
  295. RND[(exp)]     Generates a random number
  296.                  exp <0 seeds new sequence
  297.                  exp =0 returns previous number
  298.                  exp >0 or omitted returns new random number
  299.  
  300. Function       Action
  301.  
  302. SGN(exp)       1 if exp >0
  303.                0 if exp =0
  304.                -1 if exp <0
  305. SIN(exp)       Sine of the expression (in radians)
  306. SQR(exp)       Square root of expression
  307. TAN(exp)       Tangent of the expression (in radians)
  308. :String Functions
  309. Function       Action
  310.  
  311. ASC(str)       Returns ASCII value of first char in string
  312. CHR$(exp)      Returns a 1-char string whose char has ASCII code of exp
  313. FRE(str)       Returns remaining memory free space
  314. HEX$(exp)      Converts a number to a hexadecimal string
  315. INPUT$(length [,[#]f])
  316.                Return≤ ß strinτ oµ lengtΦ char≤ reaΣ froφ consolσ o≥ froφ ß ì
  317.                disk file; characters are not echoed
  318.  
  319. INSTR([exp,]str1,str2)
  320.                Return≤á thσ firs⌠ positioε oµ thσ firs⌠ occurrencσ oµá str▓ ì
  321.                in str1 starting at position exp
  322. LEFT$(str,len) Returns leftmost length chars of the string expression
  323. LEN(str)       Returns the length of a string
  324. MID$(string,start[,length])
  325.                Return≤ char≤ froφ thσ middlσ oµ thσ strinτ startinτ a⌠á thσ ì
  326.                positioεá specifieΣá t∩ thσ enΣ oµ thσ strinτ o≥ fo≥á lengtΦ ì
  327.                characters
  328.  
  329. Function       Action
  330.  
  331. OCT$(exp)      Converts an expression to an Octal string
  332. RIGHT$(str,len)
  333.                Returns rightmost length chars of the string expression
  334. SPACE$(exp)    Returns a string of exp spaces
  335. STR$(exp)      Converts a numeric expression to a string
  336. STRING$(length,str)
  337.                Return≤á ß strinτ lengtΦ lonτ containinτ thσ firs⌠á cha≥á oµ ì
  338.                the str
  339. STRING$(length,exp)
  340.                Return≤á ß strinτ lengtΦ lonτ containinτ char≤ witΦá numeriπ ì
  341.                value exp
  342. VAL(str⌐á      Convert≤á thσá strinτá representatioε oµ  ßá numbe≥á t∩á it≤ ì
  343.                numeric value
  344. :I/O and Special Functions
  345.  
  346. Function       Action
  347. CVI(str)       Converts a 2-char string to an integer
  348. CVS(str)       Converts a 4-char string to a single precision number
  349. CVD(str)       Converts an 8-char string to a double precision number
  350.  
  351. EOF(f)         Returns TRUE (-1) if file is positioned at its end
  352. ERL            Error Line Number
  353. ERR            Error Code Number
  354. INP(port)      Inputs a byte from an input port
  355. LOC(f⌐         Return≤ nex⌠ recorΣ numbe≥ t∩ reaΣ o≥ writσ (randoφ file⌐ o≥ ì
  356.                number of sectors read or written (sequential file)
  357. LPOS(n)        Returns carriage position of line printer (n is dummy)
  358.  
  359. MKI$(value)    Converts an integer to a 2-char string
  360. MKS$(value)    Converts a single precision values to a 4-char string
  361. MKD$(value)    Converts a double precision value to an 8-char string
  362.  
  363.  
  364. Function       Action
  365.  
  366. PEEK(exp)      Reads a byte from memory location specified by exp
  367. POS(n)         Returns carriage position of terminal (n is dummy)
  368.  
  369. SPC(exp)       Used in PRINT statements to print spaces
  370. TAB(exp)       Used in PRINT statements to tab to specified position
  371.  
  372. USR[n](arg)    Calls the user's machine language subroutine with the arg
  373.  
  374. VARPTR(var⌐    Return≤ addres≤ oµ va≥ iε memor∙ o≥ zer∩ iµ va≥ ha≤ no⌠ beeε ì
  375.                assigned a value
  376. VARPTR(#f⌐     Return≤ thσ addres≤ oµ thσ disδ I/╧ buffe≥ assigneΣ t∩á filσ ì
  377.                number
  378. :Interpreter Error Codes
  379. Code Error                         Code Error
  380.   1  NEXT without FOR               14  Out of string space
  381.   2  Syntax error                   15  String too long
  382.   3  RETURN without GOSUB           16  String formula too complex
  383.   4  Out of data                    17  Can't continue
  384.   5  Illegal function call          18  Undefined user function
  385.   6  Overflow                       19  No RESUME
  386.   7  Out of memory                  20  RESUME without error
  387.   8  Undefined line                 21  Unprintable error
  388.   9  Subscript out of range         22  Missing operand
  389.  10  Redimensioned array            23  Line buffer overflow
  390.  11  Division by zero               26  FOR without NEXT
  391.  12  Illegal direct                 29  WHILE without WEND
  392.  13  Type mismatch                  30  WEND without WHILE
  393.  
  394.  
  395. Disk Errors --
  396. Code Error                         Code Error
  397.  
  398.  50  Field overflow                 58  File already exists
  399.  51  Internal error                 61  Disk full
  400.  52  Bad file number                62  Input past end
  401.  53  File not found                 63  Bad record number
  402.  54  Bad file mode                  64  Bad file name
  403.  55  File already open              66  Direct statement in file
  404.  57  Disk I/O error                 67  Too many files
  405. :Introduction to the Microsoft BASIC Compiler
  406.  
  407.      Thσ followinτ direc⌠ modσ command≤ arσ NO╘ implementeΣ oε thσ compile≥ ì
  408. and will generate an error message --
  409.  
  410.           AUTO      CLEAR     CLOAD
  411.           CSAVE     CONT      DELETE
  412.           EDIT      LIST      LLIST
  413.           RENUM     COMMON    SAVE
  414.           LOAD      MERGE     NEW
  415.           ERASE
  416.  
  417.      Thσá followinτ statement≤ arσ useΣ differentl∙ witΦ thσ compile≥á thaε ì
  418. with the interpreter (refer to the manual for details) --
  419.  
  420.           CALL      DEFINT    DEFSNG
  421.           DEFDBL    DEFSTR    DIM
  422.           ERASE     END       ON ERROR GOTO
  423.           RESUME    STOP      TRON
  424.           TROFF     USRn
  425. :BASIC Compiler Commands and Switches
  426.  
  427.      The compiler is invoked by the BASCOM command; it may be called by --
  428.  
  429.           BASCOM
  430. or
  431.           BASCOM command line
  432.  
  433. where "command line" is --
  434.  
  435. [dev:][obj file][,[dev:][lst file]]=[dev:]source file[/switch ...]
  436.  
  437.      Iµá jus⌠ BASCO═ i≤ used¼á thσ use≥ wil∞ bσ prompteΣ witΦ aεá asterisk¼ ì
  438. after which he should enter the command line.
  439.  
  440. Switches --
  441.  
  442. /E   Use this switch if ON ERROR GOTO with RESUME <line number> is used
  443.  
  444. /╪   Usσ thi≤ switcΦ iµ O╬ ERRO╥ GOT╧ witΦ RESUME¼ RESUM┼ 0¼ o≥ RESUM┼ NEX╘ ì
  445.      is used
  446.  
  447. /N   Do not list generated object code
  448.  
  449. /D   Generate debug/checking code at runtime
  450.  
  451. /S   Write quoted strings of more than 4 chars as they are encountered
  452.  
  453. /4   Recognize Microsoft 4.51 BASIC Interpreter conventions
  454.  
  455. /├á  Rela°á linσá numberinτá  constraints╗áá line≤á neeΣá no⌠á bσá numbereΣ ì
  456.      sequentially; /4 and /C may not be used together
  457.  
  458. /Z   Use Z80 opcodes
  459. :BASIC Compiler Error Messages
  460. Compile-Time Fatal Errors
  461.  
  462.      SN   Syntax error             OM   Out of memory
  463.      SQ   Sequence error           TM   Type mismatch
  464.      TC   Too complex              BS   Bad subscript
  465.      LL   Line too long            UC   Unrecognizable command
  466.      OV   Math overflow            /0   Division by zero
  467.  
  468.      DD   Array already dim'ed     FN   FOR/NEXT error
  469.      FD   Function already def     UF   Function not defined
  470.      WE   WHILE/WEND error         /E   Missing /E switch
  471.                                    /X   Missing /X switch
  472.  
  473. Compile-Time Warning Errors
  474.  
  475.      ND   Array not dimensioned    SI   Statement ignored
  476.  
  477.  
  478. Run-Time Error Messages
  479.  
  480.       2   Syntax error             52   Bad file number
  481.       3   RETURN without GOSUB     53   File not found
  482.       4   Out of data              54   Bad file mode
  483.       5   Illegal function call    55   File already open
  484.       6   Floating/Integer ovfl    57   Disk I/O error
  485.  
  486.       9   Subscript out of range   58   File already exists
  487.      11   Division by zero         61   Disk full
  488.      14   Out of string space      62   Input past end
  489.      20   RESUME without error     63   Bad record number
  490.      21   Unprintable error        64   Bad filename
  491.  
  492.      50   Field overflow           67   Too many files
  493.      51   Internal error
  494.