The Structure of I-Code: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
updated lists |
||
| Line 4: | Line 4: | ||
== I-Code Token List == | == I-Code Token List == | ||
{| | {| | ||
!00 | !Token !Name !Used In !Description | ||
| | ! 00 |GLOBAL |Reserved |Global Variable | ||
!01 | ! 01 |PARAM |Editor | | ||
| READ | ! 01 |READ |I-Code |File Mode | ||
!02 | ! 02 |TYPE |Editor | | ||
| WRITE | ! 02 |WRITE |I-Code |File Mode | ||
!03 | ! 03 |DIM |Editor | | ||
| | ! 03 |UPDATE |I-Code |File Mode | ||
!04 | ! 04 |DATA |I-Code/Editor | | ||
| DATA | ! 04 |EXEC |I-Code |File Mode | ||
! | ! 05 |STOP |I-Code/Editor | | ||
| | ! 05 |READ+EXEC |I-Code |File Mode | ||
! 06 |BYE |I-Code/Editor | | |||
| | ! 06 |WRITE+EXEC |I-Code |File Mode | ||
! | ! 07 |TRON |I-Code/Editor | | ||
| | ! 07 |UPDATE+EXEC |I-Code |File Mode | ||
|- | ! 08 |TROFF |I-Code/Editor | | ||
! | ! 09 |PAUSE |I-Code/Editor | | ||
| | ! 0A |DEG |I-Code/Editor | | ||
! | ! 0B |RAD |I-Code/Editor | | ||
| | ! 0C |RETURN |I-Code/Editor | | ||
! | ! 0D |LET |I-Code/Editor | | ||
| | ! 0E |<cva> |I-Code/Editor |Complex Variable Assignment | ||
! | ! 0F |POKE |I-Code/Editor | | ||
| | ! 10 |IF |I-Code/Editor | | ||
! | ! 11 |ELSE |I-Code/Editor | | ||
| | ! 12 |ENDIF |I-Code/Editor | | ||
! | ! 13 |FOR |I-Code/Editor | | ||
| | ! 14 |NEXT |I-Code/Editor | | ||
! | ! 15 |WHILE |I-Code/Editor | | ||
| | ! 16 |ENDWHILE |I-Code/Editor | | ||
! | ! 17 |REPEAT |I-Code/Editor | | ||
| | ! 18 |UNTIL |I-Code/Editor | | ||
|- | ! 19 |LOOP |I-Code/Editor | | ||
! | ! 1A |ENDLOOP |I-Code/Editor | | ||
| | ! 1B |EXITIF |I-Code/Editor | | ||
! | ! 1C |ENDEXIT |I-Code/Editor | | ||
| | ! 1D |ON |I-Code/Editor | | ||
! | ! 1E |ERROR |I-Code/Editor | | ||
| | ! 1F |GOTO |Editor |Unbound | ||
! 20 |GOTO |I-Code/Editor |Bound | |||
| | ! 21 |GOSUB |Editor |Unbound | ||
! | ! 22 |GOSUB |I-Code/Editor |Bound | ||
| | ! 23 |RUN |I-Code/Editor | | ||
! | ! 24 |KILL |I-Code/Editor | | ||
| | ! 25 |INPUT |I-Code/Editor | | ||
! | ! 26 |PRINT |I-Code/Editor |? Becomes PRINT in the Editor | ||
| | ! 27 |CHD |I-Code/Editor | | ||
! | ! 28 |CHX |I-Code/Editor | | ||
| | ! 29 |CREATE |I-Code/Editor | | ||
|- | ! 2A |OPEN |I-Code/Editor | | ||
! | ! 2B |SEEK |I-Code/Editor | | ||
| | ! 2C |READ |I-Code/Editor | | ||
! | ! 2D |WRITE |I-Code/Editor | | ||
| | ! 2E |GET |I-Code/Editor | | ||
! | ! 2F |PUT |I-Code/Editor | | ||
| | ! 30 |CLOSE |I-Code/Editor | | ||
! | ! 31 |RESTORE |I-Code/Editor | | ||
| | ! 32 |DELETE |I-Code/Editor | | ||
! 33 |CHAIN |I-Code/Editor | | |||
| | ! 34 |SHELL |I-Code/Editor | | ||
! | ! 35 |BASE 0 |I-Code/Editor | | ||
| | ! 36 |BASE 1 |I-Code/Editor | | ||
! | ! 37 |REM |Editor |! Becomes REM in the Editor | ||
| | ! 38 |(* |Editor | | ||
! | ! 39 |END |I-Code/Editor | | ||
| | ! 3A |<ulrf> |I-Code/Editor |Unbound Line Reference | ||
|- | ! 3B |<blrf> |I-Code/Editor |Bound Line Reference | ||
! | ! 3C |<dex> |I-Code/Editor |Direct Execution | ||
| | ! 3D |PROCEDURE |Editor |Procedure start | ||
! | ! 3D |<erl> |Editor/Debug |Error Line | ||
| | ! 3E |\ |I-Code/Editor |End-of-Instruction, Continue Line | ||
! | ! 3F |<eol> |I-Code/Editor |End-of-Instruction and Line | ||
| | ! 40 |BYTE |Editor | | ||
! | ! 40 |fbyte |I-Code/Editor |VDT Entry, Field Byte Variable | ||
| | ! 41 |INTEGER |Editor | | ||
! 41 |finteger |I-Code/Editor |VDT Entry, Field Integer Variable | |||
| | ! 42 |REAL |Editor | | ||
! | ! 42 |freal |I-Code/Editor |VDT Entry, Field Real Variable | ||
| | ! 43 |BOOLEAN |Editor | | ||
! 43 |fboolean |I-Code/Editor |VDT Entry, Field Boolean Variable | |||
| | ! 44 |STRING |Editor | | ||
! | ! 44 |fstring |I-Code/Editor |VDT Entry, Field String Variable | ||
| | ! 45 |THEN |I-Code/Editor | | ||
|- | ! 45 |frecord |I-Code/Editor |VDT Entry, Field Record Variable | ||
! | ! 46 |TO |I-Code/Editor | | ||
| | ! 47 |STEP |I-Code/Editor | | ||
! | ! 48 |DO |I-Code/Editor | | ||
| | ! 48 |fvectorb |I-Code/Editor |VDT Entry, Field 1 Dimensional Byte Array | ||
! | ! 49 |USING |I-Code/Editor | | ||
| | ! 49 |fvectori |I-Code/Editor |VDT Entry, Field 1 Dimensional Integer Array | ||
! | ! 4A |: |I-Code/Editor |File Mode Operator | ||
| | ! 4A |fvectorr |I-Code/Editor |VDT Entry, Field 1 Dimensional Real Array | ||
! | ! 4B |, |I-Code/Editor |Comma Separator | ||
| | ! 4B |fvectorl |I-Code/Editor |VDT Entry, Field 1 Dimensional Boolean Array | ||
! 4C |: |I-Code/Editor |Colon | |||
| | ! 4C |fvectors |I-Code/Editor |VDT Entry, Field 1 Dimensional String Array | ||
! | ! 4D |( |I-Code/Editor |Left Parenthesis | ||
| | ! 4D |fvectoru |I-Code/Editor |VDT Entry, Field 1 Dimensional Record Array | ||
! | ! 4E |) |I-Code/Editor |Right Parenthesis | ||
| | ! 4F |[ |I-Code/Editor |Left Bracket | ||
|- | ! 50 |] |I-Code/Editor |Right Bracket | ||
! 50 |ftableb |I-Code/Editor |VDT Entry, Field 2 Dimensional Byte Array | |||
| | ! 51 |; |I-Code/Editor |Semi-colon | ||
! | ! 51 |ftablei |I-Code/Editor |VDT Entry, Field 2 Dimensional Integer Array | ||
| | ! 52 |:= |I-Code/Editor |Assignment Operator | ||
! 52 |ftabler |I-Code/Editor |VDT Entry, Field 2 Dimensional Real Array | |||
| | ! 53 |= |I-Code/Editor |Assignment Operator | ||
! | ! 53 |ftablel |I-Code/Editor |VDT Entry, Field 2 Dimensional Boolean Array | ||
| | ! 54 |# |I-Code/Editor |Channel (Path) Number Operator | ||
! | ! 54 |ftables |I-Code/Editor |VDT Entry, Field 2 Dimensional String Array | ||
| | ! 55 |<ivgt> |I-Code/Editor |Invisible GOTO (used with IF) | ||
! | ! 55 |ftableu |I-Code/Editor |VDT Entry, Field 2 Dimensional Record Array | ||
| | ! 56 | |Unused | | ||
! | ! 57 | |Unused | | ||
| | ! 58 |fmatrixb |I-Code/Editor |VDT Entry, Field 3 Dimensional Byte Array | ||
! | ! 59 |fmatrixi |I-Code/Editor |VDT Entry, Field 3 Dimensional Integer Array | ||
| | ! 5A |fmatrixr |I-Code/Editor |VDT Entry, Field 3 Dimensional Real Array | ||
|- | ! 5B |fmatrixl |I-Code/Editor |VDT Entry, Field 3 Dimensional Boolean Array | ||
! | ! 5C |fmatrixs |I-Code/Editor |VDT Entry, Field 3 Dimensional String Array | ||
| | ! 5D |fmatrixu |I-Code/Editor |VDT Entry, Field 3 Dimensional Record Array | ||
! | ! 5E | |Unused | | ||
| | ! 5F | |Unused | | ||
! | ! 60 |byte |I-Code/Editor |VDT entry, Byte Variable | ||
| | ! 61 |integer |I-Code/Editor |VDT entry, Integer Variable | ||
! | ! 62 |real |I-Code/Editor |VDT entry, Real Variable | ||
| | ! 63 |boolean |I-Code/Editor |VDT entry, Boolean Variable | ||
! | ! 64 |string |I-Code/Editor |VDT entry, String Variable | ||
| | ! 65 |record |I-Code/Editor |VDT entry, Record Variable | ||
! | ! 66 | |Unused | | ||
| | ! 67 | |Unused | | ||
! | ! 68 |vectorb |I-Code/Editor |VDT Entry, 1 Dimensional Byte Array | ||
| | ! 69 |vectori |I-Code/Editor |VDT Entry, 1 Dimensional Integer Array | ||
! | ! 6A |vectorr |I-Code/Editor |VDT Entry, 1 Dimensional Real Array | ||
| | ! 6B |vectorl |I-Code/Editor |VDT Entry, 1 Dimensional Boolean Array | ||
|- | ! 6C |vectors |I-Code/Editor |VDT Entry, 1 Dimensional String Array | ||
! | ! 6D |vectoru |I-Code/Editor |VDT Entry, 1 Dimensional Record Array | ||
| | ! 6E | |Unused | | ||
! | ! 6F | |Unused | | ||
| | ! 70 |tableb |I-Code/Editor |VDT Entry, 2 Dimensional Byte Array | ||
! | ! 71 |tablei |I-Code/Editor |VDT Entry, 2 Dimensional Integer Array | ||
| | ! 72 |tabler |I-Code/Editor |VDT Entry, 2 Dimensional Real Array | ||
! | ! 73 |tablel |I-Code/Editor |VDT Entry, 2 Dimensional Boolean Array | ||
| | ! 74 |tables |I-Code/Editor |VDT Entry, 2 Dimensional String Array | ||
! | ! 75 |tableu |I-Code/Editor |VDT Entry, 2 Dimensional Record Array | ||
| | ! 76 | |Unused | | ||
! | ! 77 | |Unused | | ||
| | ! 78 |matrixb |I-Code/Editor |VDT Entry, 3 Dimensional Byte Array | ||
! | ! 79 |matrixi |I-Code/Editor |VDT Entry, 3 Dimensional Integer Array | ||
| | ! 7A |matrixr |I-Code/Editor |VDT Entry, 3 Dimensional Real Array | ||
! | ! 7B |matrixl |I-Code/Editor |VDT Entry, 3 Dimensional Boolean Array | ||
| | ! 7C |matrixs |I-Code/Editor |VDT Entry, 3 Dimensional String Array | ||
|- | ! 7D |matrixu |I-Code/Editor |VDT Entry, 3 Dimensional Record Array | ||
! | ! 7E | |Unused | | ||
| | ! 7F | |Unused | | ||
! 80 |byte |I-Code/Editor |Instruction, Simple Byte Variable | |||
| | ! 80 |pbyte |I-Code/Editor |VDT Entry, Parameter Byte Variable | ||
! | ! 80 |DIR |I-Code |File Mode | ||
| | ! 81 |integer |I-Code/Editor |Instruction, Simple Integer Variable | ||
! | ! 81 |pinteger |I-Code/Editor |VDT Entry, Parameter Integer Variable | ||
| | ! 81 |READ+DIR |I-Code |File Mode | ||
! | ! 82 |real |I-Code/Editor |Instruction, Simple Real Variable | ||
| | ! 82 |preal |I-Code/Editor |VDT Entry, Parameter Real Variable | ||
! 82 |WRITE+DIR |I-Code |File Mode | |||
| | ! 83 |boolean |I-Code/Editor |Instruction, Simple Boolean Variable | ||
! | ! 83 |pboolean |I-Code/Editor |VDT Entry, Parameter Boolean Variable | ||
| | ! 83 |UPDATE+DIR |I-Code |File Mode | ||
! 84 |string |I-Code/Editor |Instruction, Simple String Variable | |||
| | ! 84 |pstring |I-Code/Editor |VDT Entry, Parameter String Variable | ||
|- | ! 84 |EXEC+DIR |I-Code |File Mode | ||
! | ! 85 |record/p |I-Code/Editor |Instruction, Record, Parameter (Simple/Record) Variable | ||
| | ! 85 |vector/p |I-Code/Editor |Instruction, 1 Dimensional Array, Parameter 1 Dimensional Array Variable | ||
! | ! 85 |table/p |I-Code/Editor |Instruction, 2 Dimensional Array, Parameter 2 Dimensional Array Variable | ||
| | ! 85 |matrix/p |I-Code/Editor |Instruction, 3 Dimensional Array, Parameter 3 Dimensional Array Variable | ||
! 85 |precord |I-Code/Editor |VDT Entry, Parameter Record Variable | |||
| | ! 85 |READ+EXEC+DIR |I-Code |File Mode | ||
! | ! 86 |vector/p |I-Code/Editor |Instruction, 1 Dimensional Array | ||
| | ! 86 |WRITE+EXEC+DIR |I-Code |File Mode | ||
! | ! 87 |table/p |I-Code/Editor |Instruction, 2 Dimensional Array | ||
| | ! 87 |UPDATE+EXEC+DIR |I-Code |File Mode | ||
! | ! 88 |matrix/p |I-Code/Editor |Instruction, 3 Dimensional Array | ||
| | ! 88 |pvectorb |I-Code/Editor |VDT Entry, Parameter 1 Dimensional Byte Array | ||
! | ! 89 |varm |I-Code/Editor |Instruction, Simple/Record Variable Mirror | ||
| | ! 89 |pvectori |I-Code/Editor |VDT Entry, Parameter 1 Dimensional Integer Array | ||
! | ! 8A |fvectorm |I-Code/Editor |VDT Entry, Field 1 Dimensional Array Mirror | ||
| | ! 8A |pvectorr |I-Code/Editor |VDT Entry, Parameter 1 Dimensional Real Array | ||
|- | ! 8B |ftablem |I-Code/Editor |VDT Entry, Field 2 Dimensional Array Mirror | ||
! | ! 8B |pvectorl |I-Code/Editor |VDT Entry, Parameter 1 Dimensional Boolean Array | ||
| | ! 8C |fmatrixm |I-Code/Editor |VDT Entry, Field 3 Dimensional Array Mirror | ||
! 8C |pvectors |I-Code/Editor |VDT Entry, Parameter 1 Dimensional String Array | |||
| | ! 8D |<blit> |I-Code/Editor |BYTE Constant (Literal) | ||
! | ! 8D |pvectoru |I-Code/Editor |VDT Entry, Parameter 1 Dimensional Record Array | ||
| | ! 8E |<ilit> |I-Code/Editor |INTEGER Constant (Literal) | ||
! 8F |<rlit> |I-Code/Editor |REAL Constant (Literal) | |||
| | ! 90 |" |I-Code/Editor |STRING Constant - Beginning (Literal) | ||
! | ! 90 |ptableb |I-Code/Editor |VDT Entry, Parameter 2 Dimensional Byte Array | ||
| | ! 91 |$ |I-Code/Editor |Hexadecimal Constant (Literal) | ||
! | ! 91 |ptablei |I-Code/Editor |VDT Entry, Parameter 2 Dimensional Integer Array | ||
| | ! 92 |ADDR() |I-Code/Editor | | ||
! 92 |ptabler |I-Code/Editor |VDT Entry, Parameter 2 Dimensional Real Array | |||
| | ! 93 | |I-Code/Editor |Second Byte of ADDR() | ||
! | ! 93 |ptablel |I-Code/Editor |VDT Entry, Parameter 2 Dimensional Boolean Array | ||
| | ! 94 |SIZE() |I-Code/Editor | | ||
|- | ! 94 |ptables |I-Code/Editor |VDT Entry, Parameter 2 Dimensional String Array | ||
! | ! 95 | |I-Code/Editor |Second Byte of SIZE() | ||
| | ! 95 |ptableu |I-Code/Editor |VDT Entry, Parameter 2 Dimensional Record Array | ||
! | ! 96 |POS() |I-Code/Editor | | ||
| | ! 97 |ERR() |I-Code/Editor | | ||
! | ! 98 |MOD() |I-Code/Editor |Byte/Integer | ||
| | ! 98 |pmatrixb |I-Code/Editor |VDT Entry, Parameter 3 Dimensional Byte Array | ||
! | ! 99 |MOD() |I-Code/Editor |Real | ||
| | ! 99 |pmatrixi |I-Code/Editor |VDT Entry, Parameter 3 Dimensional Integer Array | ||
! | ! 9A |RND() |I-Code/Editor | | ||
| | ! 9A |pmatrixr |I-Code/Editor |VDT Entry, Parameter 3 Dimensional Real Array | ||
! | ! 9B |PI |I-Code/Editor | | ||
| | ! 9B |pmatrixl |I-Code/Editor |VDT Entry, Parameter 3 Dimensional Boolean Array | ||
! | ! 9C |SUBSTR() |I-Code/Editor | | ||
| | ! 9C |pmatrixs |I-Code/Editor |VDT Entry, Parameter 3 Dimensional String Array | ||
! | ! 9D |SGN() |I-Code/Editor | | ||
| | ! 9D |pmatrixu |I-Code/Editor |VDT Entry, Parameter 3 Dimensional Record Array | ||
|- | ! 9E |SGN() |I-Code/Editor | | ||
! | ! 9F |SIN() |I-Code/Editor | | ||
| | ! A0 |COS() |I-Code/Editor | | ||
! | ! A0 |<subr> |I-Code/Editor |Called Subroutine Name | ||
| | ! A1 |TAN() |I-Code/Editor | | ||
! | ! A2 |ASN() |I-Code/Editor | | ||
| | ! A3 |ACS() |I-Code/Editor | | ||
! A4 |ATN() |I-Code/Editor | | |||
| | ! A5 |EXP() |I-Code/Editor | | ||
! A6 |ABS() |I-Code/Editor | | |||
| | ! A7 |ABS() |I-Code/Editor | | ||
! | ! A8 |LOG() |I-Code/Editor | | ||
| | ! A9 |LOG10() |I-Code/Editor | | ||
! | ! AA |SQRT() |I-Code/Editor | | ||
| | ! AB |SQR() |I-Code/Editor |Becomes SQRT() in the Code | ||
! | ! AC |INT() |I-Code/Editor |Byte/Integer | ||
| | ! AD |INT() |I-Code/Editor |Real | ||
|- | ! AE |FIX() |I-Code/Editor |Byte/Integer | ||
! | ! AF |FIX() |I-Code/Editor |Real | ||
| | ! B0 |FLOAT() |I-Code/Editor |Byte/Integer | ||
! B1 |FLOAT() |I-Code/Editor |Real | |||
| | ! B2 |SQ() |I-Code/Editor |Byte/Integer | ||
! | ! B3 |SQ() |I-Code/Editor |Real | ||
| | ! B4 |PEEK() |I-Code/Editor | | ||
! | ! B5 |LNOT() |I-Code/Editor |Logical NOT | ||
| | ! B6 |VAL() |I-Code/Editor | | ||
! B7 |LEN() |I-Code/Editor | | |||
| | ! B8 |ASC() |I-Code/Editor | | ||
! B9 |LAND() |I-Code/Editor |Logical AND | |||
| | ! BA |LOR() |I-Code/Editor |Logical OR | ||
! | ! BB |LXOR() |I-Code/Editor |Logical XOR | ||
| | ! BC |TRUE |I-Code/Editor | | ||
! BD |FALSE |I-Code/Editor | | |||
| | ! BE |EOF() |I-Code/Editor | | ||
|- | ! BF |TRIM$() |I-Code/Editor | | ||
! | ! C0 |MID$() |I-Code/Editor | | ||
| | ! C1 |LEFT$() |I-Code/Editor | | ||
! C2 |RIGHT$() |I-Code/Editor | | |||
| | ! C3 |CHR$() |I-Code/Editor | | ||
! | ! C4 |STR$() |I-Code/Editor |Byte/Integer | ||
| | ! C5 |STR$() |I-Code/Editor |Real | ||
! | ! C6 |DATE$ |I-Code/Editor | | ||
| | ! C7 |TAB |I-Code/Editor | | ||
! | ! C8 |<ritc> |I-Code/Editor |Real->Byte/Integer Type Conversion | ||
| | ! C8 |<fix1> |I-Code/Editor |Fix Top of Stack | ||
! | ! C9 |<fix2> |I-Code/Editor |Fix Second on Stack | ||
| | ! CA |<fix3> |I-Code/Editor |Fix Third on Stack | ||
! | ! CB |<irtc> |I-Code/Editor |Byte/Integer->Real Type Conversion | ||
| | ! CB |<flt1> |I-Code/Editor |Float Top of Stack | ||
! | ! CC |<flt2> |I-Code/Editor |Float Second on Stack | ||
| | ! CD |NOT() |I-Code/Editor | | ||
|- | ! CE |- |I-Code/Editor |(Monadic) Negate Byte/Integer | ||
! CF |- |I-Code/Editor |(Monadic) Negate Real | |||
| | ! D0 |AND |I-Code/Editor | | ||
! | ! D1 |OR |I-Code/Editor | | ||
| | ! D2 |XOR |I-Code/Editor | | ||
! D3 |> |I-Code/Editor |Byte/Integer Comparison Operator | |||
| | ! D4 |> |I-Code/Editor |Real Comparison Operator | ||
! | ! D5 |> |I-Code/Editor |String Comparison Operator | ||
| | ! D6 |< |I-Code/Editor |Byte/Integer Comparison Operator | ||
! | ! D7 |< |I-Code/Editor |Real Comparison Operator | ||
| | ! D8 |< |I-Code/Editor |String Comparison Operator | ||
! | ! D9 |<> |I-Code/Editor |Byte/Integer Comparison Operator >< is converted to <> in the code | ||
| | ! DA |<> |I-Code/Editor |Real Comparison Operator >< is converted to <> in the code | ||
! | ! DB |<> |I-Code/Editor |String Comparison Operator >< is converted to <> in the code | ||
| | ! DC |<> |I-Code/Editor |Boolean Comparison Operator >< is converted to <> in the code | ||
! | ! DD |= |I-Code/Editor |Byte/Integer Comparison Operator | ||
| | ! DE |= |I-Code/Editor |Real Comparison Operator | ||
|- | ! DF |= |I-Code/Editor |String Comparison Operator | ||
! | ! E0 |= |I-Code/Editor |Boolean Comparison Operator | ||
| | ! E1 |>= |I-Code/Editor |Byte/Integer Greater/Equal Operator | ||
! E2 |>= |I-Code/Editor |Real Greater/Equal Operator | |||
| | ! E3 |>= |I-Code/Editor |String Greater/Equal Operator | ||
! | ! E4 |<= |I-Code/Editor |Byte/Integer Less/Equal Operator | ||
| | ! E5 |<= |I-Code/Editor |Real Less/Equal Operator | ||
! E6 |<= |I-Code/Editor |String Less/Equal Operator | |||
| | ! E7 |+ |I-Code/Editor |Byte/Integer Add Operator | ||
! | ! E8 |+ |I-Code/Editor |Real Add Operator | ||
| | ! E9 |+ |I-Code/Editor |String Concantenate Operator | ||
! | ! EA |- |I-Code/Editor |Byte/Integer Subtract Operator (Dyadic) | ||
| | ! EB |- |I-Code/Editor |Real Subtract Operator (Dyadic) | ||
! | ! EC |* |I-Code/Editor |Byte/Integer Multiply Operator | ||
| | ! ED |* |I-Code/Editor |Real Multiply Operator | ||
! | ! EE |/ |I-Code/Editor |Byte/Integer Divide Operator | ||
| | ! EF |/ |I-Code/Editor |Real Divide Operator | ||
| | ! F0 |^ |I-Code/Editor |Exponent Operator | ||
! | ! F1 |** |I-Code/Editor |Exponent Operator | ||
| | ! F2 |varm/p |I-Code/Editor |Instruction, Simple/Record, Parameter Variable Mirror | ||
! | ! F3 |vectorm/p |I-Code/Editor |Instruction, 1 Dimensional Array, Parameter 1 Dimensional Array Mirror | ||
| | ! F4 |tablem/p |I-Code/Editor |Instruction, 2 Dimensional Array, Parameter 2 Dimensional Array Mirror | ||
! | ! F5 |matrixm/p |I-Code/Editor |Instruction, 3 Dimensional Array, Parameter 3 Dimensional Array Mirror | ||
| | ! F6 |field |I-Code/Editor |Instruction, Field Variable | ||
! F7 |UPDATE |Editor | | |||
| | ! F7 |fvector |I-Code/Editor |Instruction, Field 1 Dimensional Array | ||
! | ! F8 |EXEC |Editor | | ||
| | ! F8 |ftable |I-Code/Editor |Instruction, Field 2 Dimensional Array | ||
! | ! F9 |DIR |Editor | | ||
| | ! F9 |fmatrix |I-Code/Editor |Instruction, Field 3 Dimensional Array | ||
! FA | |Unused | | |||
| | ! FB | |Unused | | ||
! | ! FC | |Unused | | ||
| | ! FD | |Unused | | ||
|- | ! FE | |Unused | | ||
! | ! FF |" |I-Code/Editor |STRING Constant - Terminator | ||
| | |||
! | |||
| | |||
! | |||
| | |||
! | |||
| | |||
! | |||
| | |||
! | |||
| | |||
! | |||
| | |||
! | |||
| | |||
|- | |||
! | |||
| | |||
! | |||
| | |||
! | |||
| | |||
! | |||
| | |||
! | |||
| | |||
| | |||
| | |||
! | |||
| | |||
|- | |||
! | |||
| | |||
! | |||
| | |||
! | |||
| | |||
! | |||
| | |||
| | |||
! | |||
| | |||
| | |||
! | |||
| | |||
|- | |||
! | |||
| | |||
! | |||
| | |||
! | |||
| | |||
| | |||
! | |||
| | |||
! | |||
| | |||
! | |||
| | |||
| | |||
|- | |||
! | |||
| | |||
! | |||
| | |||
! | |||
| | |||
! | |||
| | |||
! | |||
| | |||
| | |||
! | |||
| | |||
! | |||
| | |||
|- | |||
! | |||
| | |||
! | |||
| | |||
! | |||
| | |||
! | |||
| | |||
! | |||
| | |||
! | |||
| | |||
| | |||
! | |||
| | |||
|- | |||
! | |||
| | |||
! | |||
| | |||
! | |||
| | |||
| | |||
! | |||
| | |||
| | |||
| | |||
! | |||
| | |||
|- | |||
! | |||
| | |||
| | |||
! | |||
| | |||
! | |||
| | |||
! | |||
| | |||
! | |||
| | |||
| | |||
! | |||
| | |||
|- | |||
! | |||
| | |||
! | |||
| | |||
! | |||
| | |||
! | |||
| | |||
! | |||
| | |||
| | |||
| | |||
! | |||
| | |||
|- | |||
! | |||
| > | |||
! | |||
| | |||
! | |||
| > | |||
! | |||
| < | |||
| | |||
| | |||
! | |||
| | |||
|- | |||
| | |||
! | |||
| | |||
| - | |||
! | |||
| - | |||
! | |||
| | |||
! | |||
| | |||
| / | |||
! | |||
| / | |||
| | |||
! | |||
| | |||
| | |||
! | |||
| | |||
| | |||
| | |||
! | |||
| | |||
! | |||
| | |||
! | |||
| | |||
|- | |||
| | |||
! | |||
| | |||
! | |||
| | |||
! | |||
| | |||
| | |||
| | |||
! | |||
| | |||
! | |||
| | |||
|- | |||
! | |||
| | |||
|- | |||
! | |||
| | |||
! | |||
| | |||
! | |||
| | |||
! | |||
| | |||
! | |||
| | |||
! | |||
| | |||
! | |||
| | |||
|- | |||
! | |||
| | |||
! | |||
| | |||
! | |||
| | |||
! | |||
| | |||
|} | |} | ||
Revision as of 20:52, 27 June 2013
The 'I' in I-Code stands for Intermediate. Intermediate code is code that is a step between interpreted source statements and fully compiled machine code. Typically, intermediate code uses tokens to represent the instructions to be executed. Basic09 I-Code goes a step further by re-arranging the source code instructions in post-fix notation (also known as Reverse Polish Notation) order.
The tokens used by Basic09 are a single byte ranging from $00 to $FF. The table below defines the tokens.
I-Code Token List
| Token !Name !Used In !Description | GLOBAL |Reserved |Global Variable | PARAM |Editor | | READ |I-Code |File Mode | TYPE |Editor | | WRITE |I-Code |File Mode | DIM |Editor | | UPDATE |I-Code |File Mode | DATA |I-Code/Editor | | EXEC |I-Code |File Mode | STOP |I-Code/Editor | | READ+EXEC |I-Code |File Mode | BYE |I-Code/Editor | | WRITE+EXEC |I-Code |File Mode | TRON |I-Code/Editor | | UPDATE+EXEC |I-Code |File Mode | TROFF |I-Code/Editor | | PAUSE |I-Code/Editor | | DEG |I-Code/Editor | | RAD |I-Code/Editor | | RETURN |I-Code/Editor | | LET |I-Code/Editor | | <cva> |I-Code/Editor |Complex Variable Assignment | POKE |I-Code/Editor | | IF |I-Code/Editor | | ELSE |I-Code/Editor | | ENDIF |I-Code/Editor | | FOR |I-Code/Editor | | NEXT |I-Code/Editor | | WHILE |I-Code/Editor | | ENDWHILE |I-Code/Editor | | REPEAT |I-Code/Editor | | UNTIL |I-Code/Editor | | LOOP |I-Code/Editor | | ENDLOOP |I-Code/Editor | | EXITIF |I-Code/Editor | | ENDEXIT |I-Code/Editor | | ON |I-Code/Editor | | ERROR |I-Code/Editor | | GOTO |Editor |Unbound | GOTO |I-Code/Editor |Bound | GOSUB |Editor |Unbound | GOSUB |I-Code/Editor |Bound | RUN |I-Code/Editor | | KILL |I-Code/Editor | | INPUT |I-Code/Editor | | PRINT |I-Code/Editor |? Becomes PRINT in the Editor | CHD |I-Code/Editor | | CHX |I-Code/Editor | | CREATE |I-Code/Editor | | OPEN |I-Code/Editor | | SEEK |I-Code/Editor | | READ |I-Code/Editor | | WRITE |I-Code/Editor | | GET |I-Code/Editor | | PUT |I-Code/Editor | | CLOSE |I-Code/Editor | | RESTORE |I-Code/Editor | | DELETE |I-Code/Editor | | CHAIN |I-Code/Editor | | SHELL |I-Code/Editor | | BASE 0 |I-Code/Editor | | BASE 1 |I-Code/Editor | | REM |Editor |! Becomes REM in the Editor | (* |Editor | | END |I-Code/Editor | | <ulrf> |I-Code/Editor |Unbound Line Reference | <blrf> |I-Code/Editor |Bound Line Reference | <dex> |I-Code/Editor |Direct Execution | PROCEDURE |Editor |Procedure start | <erl> |Editor/Debug |Error Line | \ |I-Code/Editor |End-of-Instruction, Continue Line | <eol> |I-Code/Editor |End-of-Instruction and Line | BYTE |Editor | | fbyte |I-Code/Editor |VDT Entry, Field Byte Variable | INTEGER |Editor | | finteger |I-Code/Editor |VDT Entry, Field Integer Variable | REAL |Editor | | freal |I-Code/Editor |VDT Entry, Field Real Variable | BOOLEAN |Editor | | fboolean |I-Code/Editor |VDT Entry, Field Boolean Variable | STRING |Editor | | fstring |I-Code/Editor |VDT Entry, Field String Variable | THEN |I-Code/Editor | | frecord |I-Code/Editor |VDT Entry, Field Record Variable | TO |I-Code/Editor | | STEP |I-Code/Editor | | DO |I-Code/Editor | | fvectorb |I-Code/Editor |VDT Entry, Field 1 Dimensional Byte Array | USING |I-Code/Editor | | fvectori |I-Code/Editor |VDT Entry, Field 1 Dimensional Integer Array | : |I-Code/Editor |File Mode Operator | fvectorr |I-Code/Editor |VDT Entry, Field 1 Dimensional Real Array | , |I-Code/Editor |Comma Separator | fvectorl |I-Code/Editor |VDT Entry, Field 1 Dimensional Boolean Array | : |I-Code/Editor |Colon | fvectors |I-Code/Editor |VDT Entry, Field 1 Dimensional String Array | ( |I-Code/Editor |Left Parenthesis | fvectoru |I-Code/Editor |VDT Entry, Field 1 Dimensional Record Array | ) |I-Code/Editor |Right Parenthesis | [ |I-Code/Editor |Left Bracket | ] |I-Code/Editor |Right Bracket | ftableb |I-Code/Editor |VDT Entry, Field 2 Dimensional Byte Array | ; |I-Code/Editor |Semi-colon | ftablei |I-Code/Editor |VDT Entry, Field 2 Dimensional Integer Array | := |I-Code/Editor |Assignment Operator | ftabler |I-Code/Editor |VDT Entry, Field 2 Dimensional Real Array | = |I-Code/Editor |Assignment Operator | ftablel |I-Code/Editor |VDT Entry, Field 2 Dimensional Boolean Array | # |I-Code/Editor |Channel (Path) Number Operator | ftables |I-Code/Editor |VDT Entry, Field 2 Dimensional String Array | <ivgt> |I-Code/Editor |Invisible GOTO (used with IF) | ftableu |I-Code/Editor |VDT Entry, Field 2 Dimensional Record Array | |Unused | | |Unused | | fmatrixb |I-Code/Editor |VDT Entry, Field 3 Dimensional Byte Array | fmatrixi |I-Code/Editor |VDT Entry, Field 3 Dimensional Integer Array | fmatrixr |I-Code/Editor |VDT Entry, Field 3 Dimensional Real Array | fmatrixl |I-Code/Editor |VDT Entry, Field 3 Dimensional Boolean Array | fmatrixs |I-Code/Editor |VDT Entry, Field 3 Dimensional String Array | fmatrixu |I-Code/Editor |VDT Entry, Field 3 Dimensional Record Array | |Unused | | |Unused | | byte |I-Code/Editor |VDT entry, Byte Variable | integer |I-Code/Editor |VDT entry, Integer Variable | real |I-Code/Editor |VDT entry, Real Variable | boolean |I-Code/Editor |VDT entry, Boolean Variable | string |I-Code/Editor |VDT entry, String Variable | record |I-Code/Editor |VDT entry, Record Variable | |Unused | | |Unused | | vectorb |I-Code/Editor |VDT Entry, 1 Dimensional Byte Array | vectori |I-Code/Editor |VDT Entry, 1 Dimensional Integer Array | vectorr |I-Code/Editor |VDT Entry, 1 Dimensional Real Array | vectorl |I-Code/Editor |VDT Entry, 1 Dimensional Boolean Array | vectors |I-Code/Editor |VDT Entry, 1 Dimensional String Array | vectoru |I-Code/Editor |VDT Entry, 1 Dimensional Record Array | |Unused | | |Unused | | tableb |I-Code/Editor |VDT Entry, 2 Dimensional Byte Array | tablei |I-Code/Editor |VDT Entry, 2 Dimensional Integer Array | tabler |I-Code/Editor |VDT Entry, 2 Dimensional Real Array | tablel |I-Code/Editor |VDT Entry, 2 Dimensional Boolean Array | tables |I-Code/Editor |VDT Entry, 2 Dimensional String Array | tableu |I-Code/Editor |VDT Entry, 2 Dimensional Record Array | |Unused | | |Unused | | matrixb |I-Code/Editor |VDT Entry, 3 Dimensional Byte Array | matrixi |I-Code/Editor |VDT Entry, 3 Dimensional Integer Array | matrixr |I-Code/Editor |VDT Entry, 3 Dimensional Real Array | matrixl |I-Code/Editor |VDT Entry, 3 Dimensional Boolean Array | matrixs |I-Code/Editor |VDT Entry, 3 Dimensional String Array | matrixu |I-Code/Editor |VDT Entry, 3 Dimensional Record Array | |Unused | | |Unused | | byte |I-Code/Editor |Instruction, Simple Byte Variable | pbyte |I-Code/Editor |VDT Entry, Parameter Byte Variable | DIR |I-Code |File Mode | integer |I-Code/Editor |Instruction, Simple Integer Variable | pinteger |I-Code/Editor |VDT Entry, Parameter Integer Variable | READ+DIR |I-Code |File Mode | real |I-Code/Editor |Instruction, Simple Real Variable | preal |I-Code/Editor |VDT Entry, Parameter Real Variable | WRITE+DIR |I-Code |File Mode | boolean |I-Code/Editor |Instruction, Simple Boolean Variable | pboolean |I-Code/Editor |VDT Entry, Parameter Boolean Variable | UPDATE+DIR |I-Code |File Mode | string |I-Code/Editor |Instruction, Simple String Variable | pstring |I-Code/Editor |VDT Entry, Parameter String Variable | EXEC+DIR |I-Code |File Mode | record/p |I-Code/Editor |Instruction, Record, Parameter (Simple/Record) Variable | vector/p |I-Code/Editor |Instruction, 1 Dimensional Array, Parameter 1 Dimensional Array Variable | table/p |I-Code/Editor |Instruction, 2 Dimensional Array, Parameter 2 Dimensional Array Variable | matrix/p |I-Code/Editor |Instruction, 3 Dimensional Array, Parameter 3 Dimensional Array Variable | precord |I-Code/Editor |VDT Entry, Parameter Record Variable | READ+EXEC+DIR |I-Code |File Mode | vector/p |I-Code/Editor |Instruction, 1 Dimensional Array | WRITE+EXEC+DIR |I-Code |File Mode | table/p |I-Code/Editor |Instruction, 2 Dimensional Array | UPDATE+EXEC+DIR |I-Code |File Mode | matrix/p |I-Code/Editor |Instruction, 3 Dimensional Array | pvectorb |I-Code/Editor |VDT Entry, Parameter 1 Dimensional Byte Array | varm |I-Code/Editor |Instruction, Simple/Record Variable Mirror | pvectori |I-Code/Editor |VDT Entry, Parameter 1 Dimensional Integer Array | fvectorm |I-Code/Editor |VDT Entry, Field 1 Dimensional Array Mirror | pvectorr |I-Code/Editor |VDT Entry, Parameter 1 Dimensional Real Array | ftablem |I-Code/Editor |VDT Entry, Field 2 Dimensional Array Mirror | pvectorl |I-Code/Editor |VDT Entry, Parameter 1 Dimensional Boolean Array | fmatrixm |I-Code/Editor |VDT Entry, Field 3 Dimensional Array Mirror | pvectors |I-Code/Editor |VDT Entry, Parameter 1 Dimensional String Array | <blit> |I-Code/Editor |BYTE Constant (Literal) | pvectoru |I-Code/Editor |VDT Entry, Parameter 1 Dimensional Record Array | <ilit> |I-Code/Editor |INTEGER Constant (Literal) | <rlit> |I-Code/Editor |REAL Constant (Literal) | " |I-Code/Editor |STRING Constant - Beginning (Literal) | ptableb |I-Code/Editor |VDT Entry, Parameter 2 Dimensional Byte Array | $ |I-Code/Editor |Hexadecimal Constant (Literal) | ptablei |I-Code/Editor |VDT Entry, Parameter 2 Dimensional Integer Array | ADDR() |I-Code/Editor | | ptabler |I-Code/Editor |VDT Entry, Parameter 2 Dimensional Real Array | |I-Code/Editor |Second Byte of ADDR() | ptablel |I-Code/Editor |VDT Entry, Parameter 2 Dimensional Boolean Array | SIZE() |I-Code/Editor | | ptables |I-Code/Editor |VDT Entry, Parameter 2 Dimensional String Array | |I-Code/Editor |Second Byte of SIZE() | ptableu |I-Code/Editor |VDT Entry, Parameter 2 Dimensional Record Array | POS() |I-Code/Editor | | ERR() |I-Code/Editor | | MOD() |I-Code/Editor |Byte/Integer | pmatrixb |I-Code/Editor |VDT Entry, Parameter 3 Dimensional Byte Array | MOD() |I-Code/Editor |Real | pmatrixi |I-Code/Editor |VDT Entry, Parameter 3 Dimensional Integer Array | RND() |I-Code/Editor | | pmatrixr |I-Code/Editor |VDT Entry, Parameter 3 Dimensional Real Array | PI |I-Code/Editor | | pmatrixl |I-Code/Editor |VDT Entry, Parameter 3 Dimensional Boolean Array | SUBSTR() |I-Code/Editor | | pmatrixs |I-Code/Editor |VDT Entry, Parameter 3 Dimensional String Array | SGN() |I-Code/Editor | | pmatrixu |I-Code/Editor |VDT Entry, Parameter 3 Dimensional Record Array | SGN() |I-Code/Editor | | SIN() |I-Code/Editor | | COS() |I-Code/Editor | | <subr> |I-Code/Editor |Called Subroutine Name | TAN() |I-Code/Editor | | ASN() |I-Code/Editor | | ACS() |I-Code/Editor | | ATN() |I-Code/Editor | | EXP() |I-Code/Editor | | ABS() |I-Code/Editor | | ABS() |I-Code/Editor | | LOG() |I-Code/Editor | | LOG10() |I-Code/Editor | | SQRT() |I-Code/Editor | | SQR() |I-Code/Editor |Becomes SQRT() in the Code | INT() |I-Code/Editor |Byte/Integer | INT() |I-Code/Editor |Real | FIX() |I-Code/Editor |Byte/Integer | FIX() |I-Code/Editor |Real | FLOAT() |I-Code/Editor |Byte/Integer | FLOAT() |I-Code/Editor |Real | SQ() |I-Code/Editor |Byte/Integer | SQ() |I-Code/Editor |Real | PEEK() |I-Code/Editor | | LNOT() |I-Code/Editor |Logical NOT | VAL() |I-Code/Editor | | LEN() |I-Code/Editor | | ASC() |I-Code/Editor | | LAND() |I-Code/Editor |Logical AND | LOR() |I-Code/Editor |Logical OR | LXOR() |I-Code/Editor |Logical XOR | TRUE |I-Code/Editor | | FALSE |I-Code/Editor | | EOF() |I-Code/Editor | | TRIM$() |I-Code/Editor | | MID$() |I-Code/Editor | | LEFT$() |I-Code/Editor | | RIGHT$() |I-Code/Editor | | CHR$() |I-Code/Editor | | STR$() |I-Code/Editor |Byte/Integer | STR$() |I-Code/Editor |Real | DATE$ |I-Code/Editor | | TAB |I-Code/Editor | | <ritc> |I-Code/Editor |Real->Byte/Integer Type Conversion | <fix1> |I-Code/Editor |Fix Top of Stack | <fix2> |I-Code/Editor |Fix Second on Stack | <fix3> |I-Code/Editor |Fix Third on Stack | <irtc> |I-Code/Editor |Byte/Integer->Real Type Conversion | <flt1> |I-Code/Editor |Float Top of Stack | <flt2> |I-Code/Editor |Float Second on Stack | NOT() |I-Code/Editor | | - |I-Code/Editor |(Monadic) Negate Byte/Integer | - |I-Code/Editor |(Monadic) Negate Real | AND |I-Code/Editor | | OR |I-Code/Editor | | XOR |I-Code/Editor | | > |I-Code/Editor |Byte/Integer Comparison Operator | > |I-Code/Editor |Real Comparison Operator | > |I-Code/Editor |String Comparison Operator | < |I-Code/Editor |Byte/Integer Comparison Operator | < |I-Code/Editor |Real Comparison Operator | < |I-Code/Editor |String Comparison Operator | <> |I-Code/Editor |Byte/Integer Comparison Operator >< is converted to <> in the code | <> |I-Code/Editor |Real Comparison Operator >< is converted to <> in the code | <> |I-Code/Editor |String Comparison Operator >< is converted to <> in the code | <> |I-Code/Editor |Boolean Comparison Operator >< is converted to <> in the code | = |I-Code/Editor |Byte/Integer Comparison Operator | = |I-Code/Editor |Real Comparison Operator | = |I-Code/Editor |String Comparison Operator | = |I-Code/Editor |Boolean Comparison Operator | >= |I-Code/Editor |Byte/Integer Greater/Equal Operator | >= |I-Code/Editor |Real Greater/Equal Operator | >= |I-Code/Editor |String Greater/Equal Operator | <= |I-Code/Editor |Byte/Integer Less/Equal Operator | <= |I-Code/Editor |Real Less/Equal Operator | <= |I-Code/Editor |String Less/Equal Operator | + |I-Code/Editor |Byte/Integer Add Operator | + |I-Code/Editor |Real Add Operator | + |I-Code/Editor |String Concantenate Operator | - |I-Code/Editor |Byte/Integer Subtract Operator (Dyadic) | - |I-Code/Editor |Real Subtract Operator (Dyadic) | * |I-Code/Editor |Byte/Integer Multiply Operator | * |I-Code/Editor |Real Multiply Operator | / |I-Code/Editor |Byte/Integer Divide Operator | / |I-Code/Editor |Real Divide Operator | ^ |I-Code/Editor |Exponent Operator | ** |I-Code/Editor |Exponent Operator | varm/p |I-Code/Editor |Instruction, Simple/Record, Parameter Variable Mirror | vectorm/p |I-Code/Editor |Instruction, 1 Dimensional Array, Parameter 1 Dimensional Array Mirror | tablem/p |I-Code/Editor |Instruction, 2 Dimensional Array, Parameter 2 Dimensional Array Mirror | matrixm/p |I-Code/Editor |Instruction, 3 Dimensional Array, Parameter 3 Dimensional Array Mirror | field |I-Code/Editor |Instruction, Field Variable | UPDATE |Editor | | fvector |I-Code/Editor |Instruction, Field 1 Dimensional Array | EXEC |Editor | | ftable |I-Code/Editor |Instruction, Field 2 Dimensional Array | DIR |Editor | | fmatrix |I-Code/Editor |Instruction, Field 3 Dimensional Array | |Unused | | |Unused | | |Unused | | |Unused | | |Unused | | " |I-Code/Editor |STRING Constant - Terminator |
|---|