1
1
Fork 0
mirror of https://github.com/QB64Official/qb64.git synced 2024-07-16 17:45:20 +00:00
qb64/internal/help/DEF-SEG.md

26 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)