X80 - source-solutions/HELP GitHub Wiki

X80 instruction set


The X80 is a software floating point unit implemented in SE BASIC.

Opcode   Instruction   Description

RST28H   FWAIT         cpu wait
00       FJPT          jump true
01       FXCH          exchange
02       FDEL          delete
03       FSUB          subtract
04       FMUL          multiply
05       FDIV          divide
06       FTOP          to power
07       FBOR          binary or
08       FBAND         binary and
09       FCP .LE       compare (less or equal)
0A       FCP .GE       compare (greater or equal)
0B       FCP .NE       compare (not equal)
0C       FCP .GT       compare (greater than)
0D       FCP .LT       compare (less than)
0E       FCP .EQ       compare (equal)
0F       FADD          add
10       FBANDS        string binary and
11       FCPS .LE      string compare (less or equal)
12       FCPS .GE      string compare (greater or equal)
13       FCPS .NE      string compare (not equal)
14       FCPS .GT      string compare (greater than)
15       FCPS .LT      string compare (less than)
16       FCPS .EQ      string compare (equal)
17       FCAT          string concatenate
18       FVALS         VAL$
19       FMULS         string by number multiplication
1A       FREAD         read in
1B       FNEG          negate
1C       FASC          character ASCII value
1D       FVAL          VAL
1E       FLEN          length of string
1F       FSIN          sine
20       FCOS          cosine
21       FTAN          tangent
22       FASIN         arcsine
23       FACOS         arccosine
24       FATAN         arctangent
25       FLOGN         natuaral logarithm
26       FEXP          exponential
27       FINT          integer
28       FSQRT         square root
29       FSGN          signum
2A       FABS          absolute magnitude
2B       FPEEK         PEEK
2C       FINP          INP
2D       FUSR          USR
2E       FSTRS         STR$
2F       FCHRS         CHR$
30       FNOT          not
31       FMOVE         move
32       FMOD          modulus
33       FJP           jump
34       FSTK          stack data
35       FDJNZ         equivalent to DJNZ
36       FCP .LZ       less than zero
37       FCP .GZ       greater than zero
38       FCE           cpu enable
39       FGET          get argument
3A       FTRN          truncate
3B       FSGL          single operation 
3C       FDEEK         DEEK
3D       FRSTK         restack
3E       FXOR          XOR
3F       FQUOT         integer quotient

A0       FSTK0         stack zero
A1       FSTK1         stack one
A2       FSTK.5        stack half
A3       FSTKPIX.5     stack pi/2
A4       FSTK10        stack ten
C0       FST 0         store in mem 0
C1       FST 1         store in mem 1
C2       FST 2         store in mem 2
C3       FST 3         store in mem 3
C4       FST 4         store in mem 4
C5       FST 5         store in mem 5
E0       FGT 0         get from mem 0
E1       FGT 1         get from mem 1
E2       FGT 2         get from mem 2
E3       FGT 3         get from mem 3
E4       FGT 4         get from mem 4
E5       FGT 5         get from mem 5