COMX BASIC V1.00
Commands
All COMX BASIC Commands including some of the start addresses of these commands are listed below. Try for example CALL (@2800)"HELLO"; this will do the same as the PRINT command. Click on the command itself to get a description of command format and usage.
@3FA5 |
@29A5 |
||
@28B2 |
@3037 |
||
@299F |
|
||
@2C00 |
@1A80 |
||
@E817 |
@41CC |
||
|
@1A47 |
||
@2BE9 |
@2F00 |
||
@321E |
@41D4 |
||
@0BFC |
@19ED |
||
@299C |
@30E8 |
||
@0F00 |
@24E2 |
||
@0D63 |
@0E00 |
||
@3234 |
@2ABD |
||
@38E4 |
@0DD4 |
||
@3EFE |
@2800 |
||
@33FA |
@1672 |
||
@2100 |
@33FD |
||
@0E03 |
@3D00 |
||
@0DD9 or @E817 |
@31F9 |
||
@1675 |
@221C |
||
@1808 |
@25F4 |
||
@10CC |
@2F30 |
||
@25DD |
@2900 |
||
@25DA |
@1F76 |
||
@32D0 |
|
||
@29A2 |
@0BC8 |
||
@2EE7 |
@2A74 |
||
@27C1 |
@0A85 |
||
@2300 |
@2999 |
||
@2DF3 |
@29A8 |
||
@28AF |
|
||
@2F3C |
|
||
@312A |
@1600 |
||
@2600 |
@0EE9 |
||
@26C8 |
@41D0 |
||
@1F00 |
@14D4 |
||
@2B03 |
@2E00 |
||
@163F |
@2C03 |
||
@306D |
@0D37 |
||
@2500 |
@31D2 |
||
@1570 |
|
|
When using the expansion box the CARD statement will replace POUT, and both DOS and CARD start addresses will be @E817.
Operators
Arithmetic operators
Unary minus | - | (first priority) |
Exponentiation | ↑ | (first priority) |
Multiply | * | (second priority) |
Divide | / | (second priority) |
Add | + | (third priority) |
Subtract | - | (third priority) |
Assignment operator
The assignment symbol is the equal sign ‘=‘.
Relational operators
Equality: =
Inequality: ><
Greater than: >
Less than: <
Greater than or equal to: >=
Less than or equal to:<=
Logical operators
Miscellaneous operators
: | separates statements on the same line |
; | PRINT delimiter |
, | PRINT delimiter |
“ | string delimiter |
( | group terms |
) | group terms |
\...\ | 8 bit binary values |
# | 8 bit hexadecimal values |
@ | 16 bit hexadecimal values |
System Parameters
Memory @4000-@4400 in the COMX is used by the BASIC ROM for storing data, usage for some of the addresses is explained below. Some of these are also listed in the technical manual but not all.
4000 - 405F | CTRL-R Buffer |
4193 - 4194 | Cursor position within @F800-@FFFF location |
4195 - 4196 | Top left screen position within @F800-@FFFF location, changes after scrolling |
4197 - 4198 | Cursor position, assuming top left corner = 0 |
419A | Column counter |
419B | Cursor on/off (off = 0) |
419D | Timer on/off (off = 0) |
419E - 41A0 | 24 bits timer value, count back to 0 if @419D != 0 |
41A1 - 41A2 | Start address timer, a jump is needed to @054E at the end of timer routine. Usable registers: B, A and E, register 1 is program counter. |
41A3 | Raw keyboard value, changed after changing value to 0 |
41A4 | Direct keyboard value |
41A5 | Counter for key repeat |
41A6 - 41A7 | Start address ESC routine |
41A8 | If ESC is pressed equals to #FF |
41AE - 41B3 | Printer Settings and info |
41C0 | Last value output 63 |
41C1 | Low byte of last output 64 |
41C2 | High byte of last output 64 |
41C3 | Low byte of last output 65 |
41C4 | High byte of last output 65 |
41CC - 41CF | Call to MUSIC routine |
41D0 - 41D3 | Call to TONE routine |
41D4 - 41D7 | Call to NOISE routine |
4200 - 425F | Line buffer |
4281 - 4282 | DEFUS value |
4283 - 4284 | EOP (End Of Program) value |
428A - 428D | In hook, call to input routine |
428E - 4291 | Out hook, call to output routine |
4292 - 4293 | End array/start string value |
4294 - 4295 | Start array value |
4296 - 4297 | Line number TIMOUT |
4299 - 429A | EOD (End Of Data) and end string value |
429B | X value TAB |
429D | Flags |
429E | Start address user RAM |
429F - 42A2 | Call to BASIC functions |
42A3 - 42A6 | Call to BASIC functions |
42B1 - 42B2 | DATA pointer |
4300 - 4368 | Storage A, B, C.... Z, 4 bytes per variable |