... discussion outlines those aspects of the 8051 architecture relevant to linking and locating - the memory model and the addressing modes. 
The memory model of the 8051 family consists of three non-overlapping ...
	8051 IP Cores
... for memory mapped peripherals 
    T8032: Wishbone bus interface 
Features 
    All peripherals/interrupts implemented 
    Single cycle per byte fetch 
    Supports synchronous RAM/ROM 
    ...
	8051 Instruction Set
... Carry Not Set 
    JNZ - Jump if Accumulator Not Zero 
    JZ - Jump if Accumulator Zero 
    LCALL - Long Call 
    LJMP - Long Jump 
    MOV - Move Memory 
    MOVC - Move Code Memory 
    MOVX ...
	8051 Microcontroller
... of RAM and ROM 
    On-chip RAM - 128 bytes ("DATA Memory") 
    On-chip ROM - 4 kB ("CODE (program) Memory") 
    Four 8-bit bi-directional input/output ports 
    UART (serial port) 
    Two 16-bit ...
	Turbo51 Methods
... STACK low memory    
  
Pushed address for String result (for functions which return String) 
  
   Pushed parameters    
  
Outer procedure's XBP (if there is outer procedure) ...
	Reentrant Procedures in Turbo51
... stack during reentrant procedure call looks like this: 
   XDATA STACK low memory     
  
Pushed address for String result (for functions which return String) 
  
 ...
	Turbo51 Compiler Internals
... DATA memory wich is available in all 8051 derivatives. Boolean variables can not be passed by reference (8051 has no instruction to reference bit variable by address) and can not be passed as parameter ...
	8051 Interrupts in Turbo51
... point operations, file I/O, string manipulations, large memory moves, etc. 
Example of interrupt declaration: 
Compiled program above looks like this: 
 ...
	Turbo51 System Functions
... memory. 
Copy 
Function Copy (Const S: String; Index: Byte; Count: Byte): String;
Copy returns a string which is a copy if the Count characters in S, starting at position Index. If Count is larger ...
	Turbo51 System Procedures
... Dispose (P: Pointer); 
Procedure Dispose (P: TypedPointer; Destuct: Procedure); 
The first form Dispose releases the memory allocated with a call to New. The released memory is returned to the heap. ...
	Turbo51 Variables
Pascal Compiler for 8051 Microcontrollers 
Turbo51 variables can have memory type directives DATA, IDATA, or XDATA which overrides default memory type for variables (IDATA memory with addresses starting ...
	Turbo51 Types
... (points to IDATA), Pointer (points to XDATA) and CodePointer (points to CODE). Similarly there are ShortPChar, PChar and CodePChar. Pointers to ordinal types can have memory type directive DATA, IDATA ...
	Turbo51 Constants
Pascal Compiler for 8051 Microcontrollers 
Turbo51 constants can be of any ordinal type. Typed constants are stored in CODE memory (in little endian format) and can not be modified. Boolean typed constants ...
	Turbo51 Objects
... XDATA memory. The syntax is equivalent to that in Borland Turbo Pascal 7. Turbo51 supports: 
Inheritance 
Static and dynamic objects 
Private fields 
Constructors and destructors 
Static, virtual ...
	Turbo51 Memory Organization
Pascal Compiler for 8051 microcontrollers 
CODE memory 
By default the maximum code size is $10000 bytes (64 KB). This can be changed in the main program with the $M directive. 
IDATA memory 
By ...
	Compiler Switches And Directives
... [CODE Size], [XDATA Start], [XDATA Size], [Heap Size] 
Memory sizes (only in program), default values: $0000 $10000 $0000 $0000 $0000 
IDATA 
IDATA memory available 
XDATA 
XDATA memory available ...
	Turbo51 Command Line Syntax
... 
Make modified units 
-MG 
Set default memory type for global variables (memory type = D, I or X) 
-ML 
Set default memory type for local variables (memory type = D, I or X) 
-MP 
Set ...
	About Turbo51
... by many hobby and professional embedded system engineers worldwide. I never imagined that Turbo51 will be used to compile such huge projects that would require changes in internal memory manager. I also ...
	Turbo51 Documentation
... on how to write effective code and become familiar with the compiler. 
General 
License Agreement 
Syntax 
Compiler switches and directives 
Memory organization 
System unit 
Files 
Objects 
Declarations ...
	Turbo51 FAQ
... 
Boolean variables use BIT (boolean) memory in 8051. If you would like to use boolean variables in DATA or XDATA memory (or even in CODE memory as typed constant) then you have two possibilities: 
Use ...
	
