0.     C-SLang: What’s new in 2.0?. Error! Bookmark not defined.

1.     C-SLang: Executive Summary. Error! Bookmark not defined.

1.1       What is it for?. Error! Bookmark not defined.

1.1.1        Off-board diagnostics. Error! Bookmark not defined.

1.1.2        On-board diagnostics. Error! Bookmark not defined.

1.1.3        Manufacturing supportError! Bookmark not defined.

1.1.4        Quality assurance. Error! Bookmark not defined.

1.2       What does C-SLang consist of?. Error! Bookmark not defined.

1.3       What makes C-SLang different?. Error! Bookmark not defined.

2.     Analysis and Motivation. Error! Bookmark not defined.

2.1       Some Examples. Error! Bookmark not defined.

2.1.1        Event-driven software. Error! Bookmark not defined.

2.1.2        Downloadable code. Error! Bookmark not defined.

2.2       Problem Analysis. Error! Bookmark not defined.

2.2.1        Code generation issues. Error! Bookmark not defined.

2.2.2        Data access. Error! Bookmark not defined.

2.3       C-SLang Design Goals. Error! Bookmark not defined.

3.     The C-SLang Solution. Error! Bookmark not defined.

3.1       Host Language. Error! Bookmark not defined.

3.2       C-SLang Data Types and Address Spaces. Error! Bookmark not defined.

3.3       Instruction Set Outline. Error! Bookmark not defined.

3.4       C-SLang Virtual Machine. Error! Bookmark not defined.

3.5       C-SLang Syntax. Error! Bookmark not defined.

3.5.1        ScriptError! Bookmark not defined.

3.5.2        Functions. Error! Bookmark not defined.

3.5.3        Function Registration. Error! Bookmark not defined.

3.5.4        Comments and Whitespaces. Error! Bookmark not defined.

3.5.5        Symbolic Names and Other Macros. Error! Bookmark not defined.

4.     Using C-SLang. Error! Bookmark not defined.

4.1       C-SLang Script Representations. Error! Bookmark not defined.

4.1.1        Source, Bytecode and Bytecode Size in Compiled FormatError! Bookmark not defined.

4.1.2        Exporting a C-SLang Script Bytecode to Portable FormatError! Bookmark not defined.

4.2       Running C-SLang on a Virtual Machine. Error! Bookmark not defined.

4.2.1        Initializing a SVIRM... Error! Bookmark not defined.

4.2.1.1     SVIRM-related data types. Error! Bookmark not defined.

4.2.1.2     SVIRM initialization functions. Error! Bookmark not defined.

4.2.2        Running C-SLang scripts. Error! Bookmark not defined.

4.3       Debug Interface. Error! Bookmark not defined.

4.3.1        Single-Step Execution. Error! Bookmark not defined.

4.3.2        Breakpoints. Error! Bookmark not defined.

4.4       Completion Codes. Error! Bookmark not defined.

5.     Examples of C-SLang Scripts. Error! Bookmark not defined.

5.1       (sample1.c) User macros. Error! Bookmark not defined.

5.2       (sample2.c) A string problem.. Error! Bookmark not defined.

5.3       (sample3.c) A simplified SAE J1978 message response. Error! Bookmark not defined.

6.     Instruction Set Reference. Error! Bookmark not defined.

6.1       GeneralError! Bookmark not defined.

6.2       Address Spaces and Arithmetic Types of Operands. Error! Bookmark not defined.

6.3       Move Class Instructions. Error! Bookmark not defined.

6.3.1        Move, MoveIError! Bookmark not defined.

6.3.2        LoadA, LoadAI, LoadX, LoadXIError! Bookmark not defined.

6.3.3        StoreA, StoreAI, StoreX, StoreXIError! Bookmark not defined.

6.3.4        MoveAX, MoveXA.. Error! Bookmark not defined.

6.3.5        StoreAExtError! Bookmark not defined.

6.4       Arithmetic and Logic Class Instructions. Error! Bookmark not defined.

6.4.1        Instructions with Opcodes without endings. Error! Bookmark not defined.

6.4.2        Instructions with Opcodes with endings. Error! Bookmark not defined.

6.5       Control Class Instructions. Error! Bookmark not defined.

6.5.1        CallError! Bookmark not defined.

6.5.2        RetError! Bookmark not defined.

6.5.3        Jump. Error! Bookmark not defined.

6.6       Miscellaneous Class Instructions. Error! Bookmark not defined.

6.6.1        Loop. Error! Bookmark not defined.

6.6.2        EndLoop. Error! Bookmark not defined.

6.6.3        Repeat, RepeatA, RepeatX.. Error! Bookmark not defined.

6.6.4        CheckListError! Bookmark not defined.

6.6.5        ComputedCall and ComputedJump. Error! Bookmark not defined.

6.6.6        ClearA.. Error! Bookmark not defined.

6.6.7        ClearX.. Error! Bookmark not defined.

6.6.8        Comp1 and Comp2. Error! Bookmark not defined.

6.6.9        ExchangeAX.. Error! Bookmark not defined.

6.6.10      MulDiv. Error! Bookmark not defined.

7.     Frequently Asked Questions. Error! Bookmark not defined.

7.1       My embedded application does not use C runtime library. Can I still use C-SLang?. Error! Bookmark not defined.

7.2       How many different scripts can run simultaneously?. Error! Bookmark not defined.

7.3       My operating environment allows pre-emptive and cooperative tasks. How do I schedule runs of C-SLang scripts?  Error! Bookmark not defined.

7.4       Do I need separate control stacks for different scripts?. Error! Bookmark not defined.

7.5       How do I debug a C-SLang script?. Error! Bookmark not defined.