... ROM contains a reset vector (at location 0) and 5 interrupt vectors (at locations 3, 0BH, 13H, 1BH and 23H).
The code space usually consists of all the procedure and constants of a program. It is assumed ...
Turbo51 Methods
... XSP accordingly)
On exit called method pops saved XBP and removes all pushed parameters from XDATA stack. XDATA stack during reentrant procedure call looks like this:
XDATA ...
Reentrant Procedures in Turbo51
Pascal Compiler for 8051 Microcontrollers
For reentrant procedures all parameters are pushed on XDATA stack. Functions return simple result in first register set (R5R4R3R2). For functions which return ...
Turbo51 Compiler Internals
... in re-entrant procedures. In such cases you can use system type ByteBool which occupies 1 byte.
Global variables
Global variables are placed in default memory type for global variables which can be ...
8051 Assembler Statements
... R0 and not register R0). Procedure's parameters can be accessed as local variables with Procedure.Parameter. See also assembler procedures.
Example:
Additional notes:
DB
Use DB to define byte. ...
8051 Interrupts in Turbo51
Pascal Compiler for 8051 Microcontrollers
Interrupts are procedures declared with the Interrupt directive and interrupt address. In this example Timer0 is a constant defined in the System unit. For ...
Procedure at Absolute Address
Pascal Compiler for 8051 Microcontrollers
You can force placing a procedure at absolute address with the absolute directive. This way you can also reserve some bytes at fixed addresses in code segment. ...
Turo51 Inline Procedures
Pascal Compiler for 8051 Microcontrollers
Procedures (and functions) that are declared with the Inline directive are copied to the places where they are called. This has the effect that there is no ...
Turbo51 Assembler Procedures
Pascal Compiler for 8051 Microcontrollers
Here you can see some examples of procedures written entirely in 8051 assembly language. At the end of each procedure Turbo51 adds only RET instruction (or ...
Turbo51 System Functions
... has the same type as its argument, which can be Integer or Real.
Addr
Function Addr (X: T_DATA_Variable): ShortPtr;
Function Addr (X: T_XDATA_Variable): Pointer;
Function Addr (X: TProcedure): ...
Turbo51 System Procedures
Pascal Compiler for 8051 Microcontrollers
Assign
Procedure Assign (Var F: File; ReadFunction: Function; WriteProc: Procedure);
Procedure Assign assigns read function and write procedure to ...
Turbo51 Variables
... procedures. In such cases you can use system type ByteBool which occupies 1 byte. BitAddressable directive declares variable which will be placed in DATA address space from $20 to $2F - you can access ...
Turbo51 Objects
Pascal Compiler for 8051 Microcontrollers
Objects are data structures that merge pascal records and procedures called methods, i.e. data and code together. In order to use objects in Turbo51 you need ...
Turbo51 Files
Pascal Compiler for 8051 Microcontrollers
Turbo51 supports files - a general framework for IO handling. However, you have to provide the low level IO procedures. Files can be untyped, typed (File of ...
Compiler Switches And Directives
...
B-
Full boolean evaluation
C+
Show source lines in assembler file
DefaultFile Off
Assume CurrentIO system file variable is assigned with the actual IO procedures
I+
IDATA ...
Turbo51 Command Line Syntax
... variables)
O+
Optimizations
P-
Open string parameters
R-
Reentrant procedures
T-
Typed pointers
U-
Unique local variable names
V+
Strict var-strings
X+ ...
Turbo51 Documentation
... are already familiar with 8051 assembly language programming you can start with Turbo51 as 8051 assembly language compiler (see assembler procedures) and then add some Pascal statements step by step until ...
Turbo51 FAQ
... type ByteBool (WordBool and LongBool are also possible), this will occupy one byte (or 2 for WordBool and 4 bytes for LongBool)
Use sets. See some examples of sets in records on the inline procedures ...
Development of Turbo51
... size reported when no IDATA memory present
FIXED in 0.1.3.2
1
Unreachable RET/RETI at the end of assembler procedure is not eliminated
FIXED in 0.1.3.0
Planned features
#FEATURESTATUS
7 ...
Turbo51 Code Examples
... part of some real 8051 project. It shows how to use Turbo51 and its features.
Example 4
This example demonstrates sets and inline procedures/functions.
Example 5
Display controller - another real ...