mirror of
https://github.com/QB64Official/qb64.git
synced 2024-09-28 11:17:47 +00:00
25 lines
1.3 KiB
Markdown
25 lines
1.3 KiB
Markdown
[DEF SEG](DEF-SEG) is used to define the area in memory to access QB64's emulated conventional memory.
|
|
|
|
## Legacy Support
|
|
|
|
* **QB64 implements memory access using [_MEM](_MEM) and related functions. For that reason, [DEF SEG](DEF-SEG) isn't recommended practice anymore and is supported to maintain compatibility with legacy code.**
|
|
|
|
## Syntax
|
|
|
|
> [DEF SEG](DEF-SEG) [=][{segment|VARSEG(variable}]
|
|
|
|
## Description
|
|
|
|
* Used to set the pointer to a memory area of a variable/array or register.
|
|
* [PEEK](PEEK) and [POKE](POKE) require a segment memory address (often just 0) without using VARSEG.
|
|
* Important segments using [PEEK](PEEK) and [POKE](POKE) include &HB800 (text segment) and &HA000 (graphics segment).
|
|
* [BSAVE](BSAVE) and [BLOAD](BLOAD) require a VARSEG reference to the grahic array(0 index) used.
|
|
* Always use DEF SEG when the procedure is completed, in order to reset the segment to QBasic's default value.
|
|
* [DEF SEG](DEF-SEG), [VARSEG](VARSEG), [VARPTR](VARPTR), [PEEK](PEEK) and [POKE](POKE) access QB64's emulated 16 bit conventional memory block. **It is highly recommended to use QB64's [_MEM](_MEM) memory system to avoid running out of memory.**
|
|
|
|
## See Also
|
|
|
|
* [DEF SEG = 0](DEF-SEG-=-0)
|
|
* [VARPTR](VARPTR), [VARSEG](VARSEG)
|
|
* [PEEK](PEEK), [POKE](POKE)
|
|
* [BSAVE](BSAVE), [BLOAD](BLOAD)
|