home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / MBUG / MBUG001.ARC / MBASIC.HLP < prev    next >
Text File  |  1979-12-31  |  21KB  |  496 lines

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