"SQ" applies to both, SMSQ and SMSQ/E, w.r.t. any one of the many
SIGNIFICANT CHANGE due to restructured PEX code from PEX20 on.
Thus, never use a version of PEX prior to PEX20 with IO2 versions after July
NOTE on loading IO2:
The code, at least DVS_BYT if single blocks loading, should be
loaded AFTER the Pointer I.F.
W_CLIP% scanning a "D" as the 1st character can
return a "[" or even nothing. Sub-/Superscript recognition is very
SBAS detection depends on the actual job
structure and might lead to problems when executing compiled basic
in SMSomething environments.
system related errors, once more (SMSQ, SGC with rom
Some more recent versions again bear undocumented changes and
mistakes (as SGC/2.49 not formatting reliably; SMSQ/E deliberately,
apparently, loosing track of slave blocks, returning 'bad medium',
etc.) which to first reporting and, after receiving no action at all
or just denial of the bug concerned, circumventing from within the
IO2 codes over and over again I am tired.
Thus there will be no more IO2 adaptations to those, mostly SMSQ/E
specific, "peculiarities", nor will there be any response to fancy
"features", whatsoever, which are not clearly documented!
updates, bug fixes, SMSQ related adaptations:
BEEPING new, to work while TUNE is waiting
FIND err.xp (-18) if length limit
LINUM also reading Qlib-compiled running
parameters IO1 parameter evaluation made
W_PIXCOL etc. WD1 graphic commands modified to
working with JM systems
CH_PILE 3rd -ve parm for own primary
CMD dummy channel -1 to resetting to
ST_EXECB stack bounds adjustment on return left
STAK new: trap#3 opcode $41 to execute
a call to ri.execb
C_N big-/litle endian order &
no. of valid bits selectable
W_YSCN bug fixed
POKE.. all executing in supervisor mode
GET$ memory allocation bug fixed
REPORT$ SMSQ extended set of messages
LANGUAGE$ SMSQ system-returns remain
VERS genaralized VER$ function, to
circumventing a bug in JS
MODE separately initiated by MDE_INI
(since SMSQ-2.68 bp.init works as expected).
WMON functionality of internal call to
MODE restored in case of re-definition of the CON-handler; needs PEX
character founts in DVS hi-/lo-script modified
mv.vlet memory allocation bug
all IO2 blocks memory allocation bv.rip
re-/storing bugs fixed
ST_EXECB circumvents a JS and MGx roms bug (at
adddress $4530), calls to ATAN etc. are always safe now, at the
penalty of slightly slower executing. Consequently run-time
efficiency of ST_ECECB exceeds that of SBasic only with fairly long
W_CLIP$W_CLIP% reading non
standard height increment ok, and with JM
W_PRINT SQ: parameters memory properly
linked back to system
IO_FLINE basic-memory and string length bug
W_LINEL non-standard screen width bug
GET$ direct sector read enabled.
ASO automatic display dis-/enabling
left to be initiated explicitely by AS_LNK.
ASO another attempt to safely
initiate the timer interrupts on atari-tt's by adding AS_GO to
explicitely initiate the procedure.
QL_ROM modified to comply with atari's
AS_GO, AS_LNK once more adjusted
to the SMSQs,
ASO actions left to be initiated by AS_GO and AS_LNK, one after the
handling of pause-"notes" adjusted to SMSQ, again...
SOUND$ new function to reding the
currently playing "note".
SER_IS modified to alternatively work on
SERNAM$ new, to return the name currently
used by SER_IS,
SERNAM new, to supply new
ser/par-devicenames to SER_IS
dvs io1 buffer-pipe definition
extended to take that name.
TUNE pause-flag storage bug fixed at
aso finally, I had to give up:
automatic screen switching dispensed with for any other system than
those of the black QL and the e.xx Atari-QL.
io2 SQ-pre-2.68 version bugs
"SBAS" detection relating to the calling (basic-)job.
DMODE screen disabling bit untouched in
read only mode.
execution by mv.mrun with unchanged con-handler.
SERNAM$ additional parameter as with
BYE new, synonym to QUIT.
dvs/version BX_..-calls show a different version
aso A4 saved at calls to mt.dmode
automatic unlinking dummy device on owner-job removal; re AS_TAB
nn=FOPEN("ASO") or type 0 io.open-call returns address of aso
database ( = AS_TAB - 8 ).
EDLIN & EDLIN$ initially
timing out if 4th parm passed and +ve.
new: displaying channel-id's & -names to [#]chan.
IO_FLINE string length determining bug
dvs mayor work on MEM-device, virtual
GETHEAD$ padded with <nul>-bytes up to
the length of 64.
LINKUP (and others) memory management
io2 calls to fs.load/save modified
to io.fstrg/sstrg to error free operating with non-standard
formatted disks (where some fs..-calls can produce very bad
CH_CHAN$ ser-type & -parameter recognition
completed, also returning the SMSQ/E specific settings.
CH_CHS timeout 2,5s (for SER-/PAR-output)
intead of 40ms, additionally made "break"-sensitive
BASICV_byt added (freeware);
much like the original procedure supplied with FIO, or VGET,
additionally fetching the 1st (index 0) item of dimensioned
DVS_byt vectored routines adjusted to
conform PEX20+ structure.
CH_CHS stack error if IO2-buffer-PIPE was
not found corrected.
SER_SEND modifying a SER channel to not
receiving, speeding up the system if the other port bi-directionally
VERR$VNUL$ discarded (was
useless), new additional error handling; mainly to act on procedure
call errors, as any function return values will be lost:
THROW executes VGET as a procedure and
only if ERNUM =/= 0; it returns with no error, leaving ERNUM
CATCH executes VGET as a procedure,
setting ERNUM to the usual error code, itself returning always error
free. Thus CATCH
will send an error message to #3 and proceed error free.
NOTE: 'CATCH_F'/'CATCH_P' of the "fio" group are different!
SOUND$ and related keywords might not
work with the Super-GC (rom 2.49!) and most certainly will not work
CH_QKEYQ finds the channel under the pointer
sprite, if active.
dvs version changed to DD22 due to
new charcter set
EMUFOUNTS_BIN new, may NOT be loaded to old
versions of dvs, while loading old charctersets to the new version
does no harm, but might corrupt the display.
FT_LAT1 added, for the new LATIN-1
(ISO8859) charcterset. "founts_dat" updated accordingly.
LINUM extended to taking a
job-descriptor parameter for returning a QLib-compiled jobs current
CATCH_.. operating w. interrupts locked to
prevent erroneous addresses when called while jobs changing
ATARI new: 1 in Mega-ST, STE, TT,
Falcon, Stacy; -1 as above, with SMSQ; 0 otherwise (QL, ST,
AS_GO etc. (automatic) display blanking
functional again, with Atari-ST and e-software and SMSQ/E (2.79
AS_TIME optionally with an integer number
parameter will set the rate of, and return the previous setting in
ticks per second, for the screen disabling, TUNE, and TICK
COMPCOMP_O videoram addressing
simplified, sending file data bug fixed.
CLOSE_B% closed channels *Basic flag bug
CATCH made functional.
WORDS as EXTRAS, tabulating to the full
width of display, taking the WIDTH adjustment of SBasic channels, or
the display windows width. Channel parameter as GET$. <esc> for
compiled and interpreted jobs to <break>.
CATCH_OFF address error trapping improved.
MT_TRA prepared to working also with
mtra_tab char 127 (SH/ESC) translated to
CH_CHAN$ EDxx recognition modified,
SER/STX/SRX of "simser" added (SMSQ/E-ish specification)
BPUT modified to sending uncounted
characterstrings and byte codes, plus extended channels specfication
DEVUSE$(dev) Fu to return current devicename
usage (QL-Today 6/97).
AS_GO etc. (automatic) display blanking
functional again, with QXL and SMSQ 2.76 or SMSQ/E (2.79 & 2.81
tested). This occupies some extra memory space, depending on full
screen size (bytes of line length * no. of lines).
AS_ONAS_OFF Initial state is
AS_OFF; AS_ON used to activate the screen blanking - before regular
use test whether the particular system permits this mode of screen
POKE_N bug(s) fixed.
MEMV_BYT 1st attempt to adjust to SVGA screen
mode (QXL/AURORA) -> ok with QXL, no result with AURORA
PACODE bug fixed.
LINUM(job) with reference to interpreted SBasic
CH_CHAN$ STX/SRX and EDI-channels fetching
CH_CHS at least one blank space inserted
between data blocks
io2 error with "false" channel
tags fixed: -ve tag numbers are permitted (re. MGG)
dvs 2nd attempt to using
virtual memory, being invoked if requested amount
of heapmem not available.
sd.fount A1=>device A2=>filename, to preparing v.m.
fs.date always current
fs.mdinf fs.trunc fs.xinf standard
not much tested, use with care, if ever..
MEMV_BYT another attempt to make it displaying
with 'big' screens, ok now with the UQLX-emulator.
CH_FIND leading 2 number parameters may be
qch = CH_FIND( [[ job-id,] topmost-chan-no,] name$ [,joker] )
9.7.98 : io1
IO_FLINE as IO_FSTRG
read 32 bytes co-ordinates & pointer record, X/Y-posn in 1st 4
bytes of strg, in and out
24.7. : fio
flush & close all channels, and re-start the system
10.10 : wd1
modified LINE commands, also taking array parameters at any posn in
the parameter list, aligned to x/y-pairs:
LPLOT LINE of consecutive points;
Procedure made to displaying the "hershey" founts.
LINE [#chan], p1: LINE TO p2 TO p3 TO ...
is LPLOT [#chan],x1,y1,x2,y2,x3,y3, ...
A new line beginning after x(n)=-50 and y(n)=0.
LPLOT_P LINEs of pairs of points
LINE p1 TO p2; p3 TO p4; ...
is LPLOT_P x1,y1,x2,y2,x,y3,x4,y4, ...
24.3.99 : fio
NFSUSE$ (with TK2 2.12+, or GC, or smsq
ret string with the NFS_USE settings
parm 0..7 : a particular NFS drive;
parm > 7 : the nfs devicename;
parm -ve/none : all settings, "," separated.
FOR f=0TO 7:PRINT NFSUSE$(8);f+1,NFSUSE$(f)
modified to return DEV-useage when called w/o parm$
22.11.1999 : ep0
S.Basic memory related bug fixed.
Searching long files or memory areae not locking up the system.