A2osX/BIN/CSH.I.txt

124 lines
2.9 KiB
Plaintext
Raw Normal View History

2019-01-26 16:33:03 +00:00
NEW
2019-06-28 15:15:58 +00:00
AUTO 3,1
2019-01-26 16:33:03 +00:00
.LIST OFF
*--------------------------------------
2019-08-26 06:29:18 +00:00
CSH.Q.CONST .EQ %10000000
CSH.Q.POINTER .EQ %00100000
CSH.Q.PPOINTER .EQ %01000000
CSH.Q.PPPOINTER .EQ %01100000
CSH.T.CHAR .EQ 1
CSH.T.INT .EQ 2
CSH.T.LONG .EQ 3
CSH.T.UCHAR .EQ 4
CSH.T.UINT .EQ 5
CSH.T.ULONG .EQ 6
CSH.T.FLOAT .EQ 7
CSH.T.VARIADIC .EQ $1F
*--------------------------------------
2019-01-26 16:33:03 +00:00
CSH.OPChars .AS "!~+-*/%=&|^&<>"
2019-02-07 16:52:25 +00:00
CSH.OPChars.Cnt .EQ *-CSH.OPChars
2019-01-26 16:33:03 +00:00
*--------------------------------------
* Pre Operators: + - ! ~ ++ --
*--------------------------------------
2019-08-26 06:29:18 +00:00
CSH.PREOPS >PSTR "+"
2019-01-26 16:33:03 +00:00
>PSTR "-"
>PSTR "!"
>PSTR "~"
*--------------------------------------
* Post Operators: ++ --
*--------------------------------------
CSH.POSTOPS >PSTR "++"
>PSTR "--"
.HS 00
*--------------------------------------
* Assignment Operators: = += -= *= /= %= <<= >>= &= ^= |=
*--------------------------------------
CSH.AOPS >PSTR "="
>PSTR "+="
>PSTR "-="
>PSTR "*="
>PSTR "/="
>PSTR "%="
>PSTR "<<="
>PSTR ">>="
>PSTR "&="
>PSTR "^="
>PSTR "!="
.HS 00
2019-08-26 06:29:18 +00:00
*-- Binary ---- H to L precedence -----
2019-01-26 16:33:03 +00:00
* Arithmetic Operators: * / %
* Arithmetic Operators: + -
* Shift Operators: << >>
* Relational Operators: < > >= < >= == !=
* Bitwise Operators: & | ^ ~
* Logical Operators: && ||
*--------------------------------------
CSH.BOPS >PSTR "+"
>PSTR "-"
>PSTR "*"
>PSTR "/"
>PSTR "%"
>PSTR "<<"
>PSTR ">>"
>PSTR "<"
>PSTR ">"
>PSTR "<="
>PSTR ">="
>PSTR "=="
>PSTR "!="
>PSTR "&"
>PSTR "|"
>PSTR "^"
>PSTR "&&"
>PSTR "||"
.HS 00
*--------------------------------------
* Reserved Keywords:
*--------------------------------------
CSH.KW >PSTR "if"
>PSTR "while"
>PSTR "else"
>PSTR "do"
>PSTR "for"
>PSTR "switch"
>PSTR "case"
>PSTR "break"
2019-09-05 06:43:09 +00:00
>PSTR "continue"
2019-01-26 16:33:03 +00:00
>PSTR "float"
>PSTR "signed" char,int,long
>PSTR "unsigned" char,int,long
CSH.STYPES >PSTR "char"
>PSTR "int"
>PSTR "long"
2019-08-26 06:29:18 +00:00
* .HS 00
2019-09-05 15:49:05 +00:00
*--------------------------------------
2019-09-02 06:09:28 +00:00
CSH.TYPESIZE .HS 0001020401020405 VOID,CHAR,INT,LONG,UCHAR,UINT,ULONG,FLOAT....
2019-01-26 16:33:03 +00:00
*--------------------------------------
* int printf ( const char * format, ... );
CSH.FN >PSTR "printf"
.DA #CSH.T.INT returned value
2019-08-26 06:29:18 +00:00
.DA #CSH.Q.CONST+CSH.Q.POINTER+CSH.T.CHAR
2019-01-26 16:33:03 +00:00
.DA #CSH.T.VARIADIC
.DA #0
2019-02-08 16:13:43 +00:00
* int puts ( const char * str );
2019-02-11 06:58:33 +00:00
>PSTR "puts"
2019-02-08 16:13:43 +00:00
.DA #CSH.T.INT returned value
2019-08-26 06:29:18 +00:00
.DA #CSH.Q.CONST+CSH.Q.POINTER+CSH.T.CHAR
2019-02-11 06:58:33 +00:00
.DA #0
2019-01-26 16:33:03 +00:00
* float cos ( float x );
>PSTR "cos"
.DA #CSH.T.FLOAT returned value
.DA #CSH.T.FLOAT
.DA #0
2019-09-04 06:09:20 +00:00
* char getchar ( void );
2019-01-26 16:33:03 +00:00
>PSTR "getchar"
2019-09-04 06:09:20 +00:00
.DA #CSH.T.CHAR returned value
2019-01-26 16:33:03 +00:00
.DA #0
2019-08-26 06:29:18 +00:00
.DA #0
2019-01-26 16:33:03 +00:00
*--------------------------------------
MAN
SAVE USR/SRC/BIN/CSH.I
LOAD USR/SRC/BIN/CSH.S
ASM