

$FFFFF +--------------------------+
| Add-on ROM (up to 128kb) |
$E0000 +--------------------------+
| 8x16kb device slots |
$C0000 +--------------------------+
| Up to 512kb add-on RAM | } See } Top actual
$40000 +--------------------------+ } next } address goes
| 96kb on-board user RAM | } diagram } in SV_RAMT
$28000 +--------------------------+
| 32KB screen RAM |
$20000 +--------------------------+
| On-board IO (partially | $1806?3 = master chip status reg: bit 0=1 blanks display:
| decoded) | bit 0=0 enables display. ALSO??!! POKE 98403,2 to blank
$10000 +--------------------------+ screen, POKE..,2 to restore monitor mode.
| 16kb plug-in ROM |
$0C000 +--------------------------+
| 48kb on-board ROM |
$00000 +--------------------------+
Ram map
SV_RAMT +----------------+
SV_RESPR | Resident proc- | When not jobs present, QDOS can allocate &
| edure area | totally-deallocate space: no other QDOS ops.
+vvvvvvvvvvvvvvvv+
SV_TRNSP | Transient | Code/data/stack area per relocatable job.
| program area | Not normally re-entrant, but can be made so.
+vvvvvvvvvvvvvvvv+
SV_BASIC | SuperBASIC | Basic program, variables, its IO channels.
| area | See BV_ definitions: all pointers A6-relative.
+vvvvvvvvvvvvvvvv+ [Top regions grow down.]
SV_FREE | Free memory | Used by the filing
| area | system for slave blocks.
+^^^^^^^^^^^^^^^^+ [Common heap grows up]
SV_HEAP | Common heap | Channel definitions, workstore for IO & programs.
| area | MT_ALCHP & _RECHP. Auto RECHP at end of job.
+----------------+
| System manage- | Various. Info for joblist, etc. Also the
| ment tables | Supervisor Stack.
+----------------+
| System |
| variables SV_ |
$28000* +----------------+ Base of system variables. $28000 or MT_INF: see below
| Display RAM |
$20000 +----------------+ Base of RAM
* System variables start at $28000 in ROMs up to JS: in Minerva (up to
1.92 at least) running in two-screen mode they start at $30000 because
of the second screen's-worth of display ram. IN ANY ROM it is prudent
to use MT_INF to locate the base of the SVs.
NB: $28000 = 163840
$20000 = 196608
Allocation and release
| Allocate | Release | ||||
| Res. procedure area | MT_ALRES | MT_RERES | [total release only] | ||
| Trans. program area | ~MT_CJOB | ~MT_FRJOB | |||
| --------"-------- | MM_ALLOC | MM_LINKFR | [for heap allocation within the jobs own data area.] | ||
| SuperBASIC area | MT_ALBAS | MT_REBAS | [for interpreter only] | ||
| ------"------ | BV_CHRIX | automatic | [space in RI stack] | ||
| ------"------ | [see "BASIC interpreter"] | [in other SuperBASIC areas] | |||
| Free memory area | [not directly used by normal jobs] | ||||
| Common heap area | MT_ALCHP | MT_RECHP | - also released when owner job is deleted | ||
| ------"------ | MM_ALCHP | MM_RECHP | [from dev.drivers] - also released when owner job is deleted | ||
| Last updated 4th January 1999. |