QDOS+ System Variables

QDOS+ System Variables


The following are relative to MT_INF trap result: the $280xx can only be relied on for ROMs up to JS/MG. "+" numbers in braces are decimal offsets in the area.

$28000.W SV_IDENT Identification
Pointers defining QDOS memory map:
$28004.L SV_CHEAP Base of common heap area
$28008.L SV_CHPFR First free space in common heap area
$2800C.L SV_FREE Base of free area {+12 }
$28010.L SV_BASIC Base of BASIC area {+16 }
$28014.L SV_TRNSP Base of transient program area
$28018.L SV_TRNFR First free space in TPA
$2801C.L SV_RESPR Base of resident procedure area
$28020.L SV_RAMT Top of RAM(+1) {+32 }
$2802E.W SV_RAND Random number(constantly changing)
$28030.W SV_POLLM Count of poll interrupts missed
$28032.B SV_TVMOD 0 if not TV display {+50 }
$28033.B SV_SCRST Screen status (0=active)
$28034.B SV_MCSTA Current value of MC status register
$28035.B SV_PCINT Current value of PC interrupt register
$28037.B SV_NETNR Network station number {+55 }
Pointers to the list of tasks and drivers:
$28038.L SV_I2LST Pointer to list of interrupt 2 drivers
$2803C.L SV_PLIST Pointer to list of polled tasks
$28040.L SV_SHLIST Pointer to list of scheduler tasks
$28044.L SV_DRLST Pointer to list of device drivers
$28048.L SV_DDLST Pointer to list of directory device drivers
$2804C.L SV_KEYQ Pointer to a keyboard queue
$28050.L SV_TRAPV Pointer to trap redirection table
Pointers to resource management tables:
$28054.L SV_BTPNT Pointer to most recent slave block entry Slave tables are of
8-byte entries,
others are 4-byte.
$28058.L SV_BTBAS Pointer to base of slave block table
$2805C.L SV_BTTOP Pointer to top of slave block table
Jobs table: The jobtable is a sequence
of .Ls, each pointing to
a job control block. LSW
of a JobID is the position
of that job's .L in the
jobtable.
$28060.W SV_JBTAG Current value of job tag
$28062.W SV_JBMAX Highest current job number
$28064.L SV_JBPNT Pointer to current job table entry
$28068.L SV_JBBAS Pointer to base of job table
$2806C.L SV_JBTOP Pointer to top of job table
Channel table:
$28070.W SV_CHTAG Current value of channel tag
$28072.W SV_CHMAX Highest current channel number
$28074.L SV_CHPNT Pointer to last channel checked
$28078.L SV_CHBAS Pointer to base of channel table
$2807C.L SV_CHTOP Pointer to top of channel table
MINERVA:
$2807C.L - pointer to new extensions, including default fonts, cursor style, etc: see ASM.15-19
Keyboard [poke only those marked with asterisk]
$28088.W SV_CAPS *Caps lock: 0=normal, -256.L=255.B=caps locked {+136 }
$2808A.W SV_ARBUF Auto repeat buffer
$2808C.W SV_ARDEL *Autorepeat delay: default=30 {+140 }
$2808E.W SV_ARFRQ *Autorepeat 1/frequency: default=2 {+142 }
$28090.W SV_ARCNT Autorepeat count
$28092.W SV_CQCH Keyboard change queue character code - default ctrl-C=$03 {+146 }
Misc
$28094.W SV_WP Write protect
$28096.W SV_SOUND Sound status
$28098.L SV_SER1C Receive channel 1 queue address
$2809C.L SV_SER2C Receive channel 2 queue address
$280A0.B SV_TMODE ZX8032 transmit mode
$280A2.L SV_CSUB *If non-zero, is address of subroutine to jump to when CAPSLOCK is pressed: the s/routine should spoil nothing.
$280A6.W SV_TIMO Timeout for switching transmit mode
$280A8.W SV_TIMOV Value of switching timeout (2 chars.)
$280AA.W SV_FSTAT Flashing cursor status
$280EE.W } MDV
stuff
$280FF.W
$28100.L*16 SV_FSDEF Pointers to file system physical defn.
$28140.L SV_FSLST Pointer to list of file channels
SV+176 = pointer to DATAD$? See QLW 9108 p35 for a demo


Last updated 4th January 1999.

Back to my QL home page
Disclaimer