future
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| future [2020/02/17 01:57] – created adminz | future [2020/02/23 00:11] (current) – jtwine | ||
|---|---|---|---|
| Line 4: | Line 4: | ||
| ===== Additional Intrinsic Statements ===== | ===== Additional Intrinsic Statements ===== | ||
| By researching some more existing 9010A programs/ | By researching some more existing 9010A programs/ | ||
| + | |||
| + | |||
| + | ===== Poke (Write) Tables ===== | ||
| + | There is a good amount of 9LC code out there that has to deal with filing a decent range of memory with different values. | ||
| + | |||
| + | So I am thinking of implementing a type of table construct that can be coded easily, and processed by the compiler into the necessary '' | ||
| + | |||
| + | <code c> | ||
| + | WriteTable( 0x1000, 1, 2, 3, 4, 5, 6, 7, 8 ); | ||
| + | </ | ||
| + | |||
| + | Which would yield: | ||
| + | |||
| + | <code c> | ||
| + | Write @ 0x1000 = 1; | ||
| + | Write @ 0x1001 = 2; | ||
| + | Write @ 0x1002 = 3; | ||
| + | Write @ 0x1003 = 4; | ||
| + | Write @ 0x1004 = 5; | ||
| + | Write @ 0x1005 = 6; | ||
| + | Write @ 0x1006 = 7; | ||
| + | Write @ 0x1007 = 8; | ||
| + | </ | ||
| + | |||
| + | '' | ||
| ===== Additional Semantic Checks ===== | ===== Additional Semantic Checks ===== | ||
| It might be possible to add some more checks to 10LC to help discover possible coding errors during compilation. | It might be possible to add some more checks to 10LC to help discover possible coding errors during compilation. | ||
| + | |||
| + | ===== Additional Compile Time Optimizations ===== | ||
| + | 10LC does not currently know how to separately optimize numerically-constant left hand sides or right hand sides of an '' | ||
| + | |||
| + | <code c> | ||
| + | Const JoystickUp = 0x01; | ||
| + | |||
| + | If 44 ++ >> >> <= JoystickUp << << | 44 Goto FoundIt; | ||
| + | </ | ||
| + | |||
| + | In that expression, only constant numeric values are involved - no registers. | ||
| + | <code c> | ||
| + | 44 ++ >> >> | ||
| + | 45 >> 2 | ||
| + | 11 | ||
| + | </ | ||
| + | |||
| + | The right hand side is '' | ||
| + | <code c> | ||
| + | JoystickUp << << | 44 | ||
| + | ( 1 << 2 ) | 44 | ||
| + | 44 | ||
| + | </ | ||
| + | |||
| + | That means that the entire expression could be optimized to '' | ||
| + | |||
| ===== Modifying the 9010A' | ===== Modifying the 9010A' | ||
| Line 14: | Line 65: | ||
| Maybe one day... | Maybe one day... | ||
| + | |||
| + | ===== Method Call Syntax ===== | ||
| + | One of the things I have been kicking around is the possibility of making 10LC look more like //method calls// in a language like C/ | ||
| + | <code c> | ||
| + | Write @ 0x1000 = 1234; | ||
| + | </ | ||
| + | But would it be better or more appealing if the statement was written like: | ||
| + | <code c> | ||
| + | Write( 0x1000, 1234 ); | ||
| + | </ | ||
| + | Or maybe that would only be preferable to actual software developers/ | ||
| + | |||
future.1581904636.txt.gz · Last modified: 2020/02/17 01:57 by adminz
