"SQ" applies to both, SMSQ and SMSQ/E, w.r.t. any one of the many
versions.
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
1996!
NOTE on loading IO2:
The code, at least DVS_BYT if single blocks loading, should be
loaded AFTER the Pointer I.F.
yet uncorrected:
W_CLIP% scanning a "D" as the 1st character can
return a "[" or even nothing. Sub-/Superscript recognition is very
uncertain.
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
2.49, etc.):
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:
01/09/95
BEEPING new, to work while TUNE is waiting
(pause "note")
FIND err.xp (-18) if length limit
exceeded
LINUM also reading Qlib-compiled running
line numbers
parameters IO1 parameter evaluation made
faster
W_PIXCOL etc. WD1 graphic commands modified to
working with JM systems
04/09/95
CH_PILE 3rd -ve parm for own primary
window
09/09/95
CMD dummy channel -1 to resetting to
system standard
ST_EXECB stack bounds adjustment on return left
to user
STAK new: trap#3 opcode $41 to execute
a call to ri.execb
18/09/95
C_N big-/litle endian order &
no. of valid bits selectable
W_XMINW_YMIN new
W_YSCN bug fixed
POKE.. all executing in supervisor mode
(SMSQ feasiblity)
22/09/95
GET$ memory allocation bug fixed
REPORT$ SMSQ extended set of messages
inclusive
23/09/95
LANGUAGE$ SMSQ system-returns remain
unchanged
24/09/95
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
loaded.
26/09/95
character founts in DVS hi-/lo-script modified
and extended
mv.vlet memory allocation bug
fixed
30/9/95
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
calculation sequences.
W_CLIP$W_CLIP% reading non
standard height increment ok, and with JM
W_PRINT SQ: parameters memory properly
linked back to system
10/10/95
IO_FLINE basic-memory and string length bug
fixed
W_LINEL non-standard screen width bug
fixed.
16/10/95
GET$ direct sector read enabled.
10/11/95
ASO automatic display dis-/enabling
left to be initiated explicitely by AS_LNK.
18/11/95
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
memory-"protection".
19/11/95
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
other.
handling of pause-"notes" adjusted to SMSQ, again...
SOUND$ new function to reding the
currently playing "note".
24/11/95
SER_IS modified to alternatively work on
"par" devices,
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
<tun_poff>
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.
22/3/96
io2 SQ-pre-2.68 version bugs
processing removed.
"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
ser_is.
BYE new, synonym to QUIT.
14/4/96
dvs/version BX_..-calls show a different version
specification.
aso A4 saved at calls to mt.dmode
(JS-bug, SQ-"feature");
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.
CH_CHS[#]chan[,hash[,jobno|jobid]
new: displaying channel-id's & -names to [#]chan.
IO_FLINE string length determining bug
fixed.
17/6/96
dvs mayor work on MEM-device, virtual
addressing prepared.
GETHEAD$ padded with <nul>-bytes up to
the length of 64.
LINKUP (and others) memory management
fixed.
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
mistakes).
5/7/96
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
(CTR/SPACE).
BIGL_E removed.
17/7/96
BASICV_byt added (freeware);
much like the original procedure supplied with FIO, or VGET,
additionally fetching the 1st (index 0) item of dimensioned
variables.
DVS_byt vectored routines adjusted to
conform PEX20+ structure.
31/10/96
CH_CHS stack error if IO2-buffer-PIPE was
not found corrected.
4/11/96
SER_SEND modifying a SER channel to not
receiving, speeding up the system if the other port bi-directionally
in use.
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
unchanged.
CATCH executes VGET as a procedure,
setting ERNUM to the usual error code, itself returning always error
free. Thus CATCH
"hex$","abcd",19:THROW"print",#3,report$
will send an error message to #3 and proceed error free.
NOTE: 'CATCH_F'/'CATCH_P' of the "fio" group are different!
11/11/96
SOUND$ and related keywords might not
work with the Super-GC (rom 2.49!) and most certainly will not work
with QPC.
27/11/96
CH_QKEYQ finds the channel under the pointer
sprite, if active.
1/12/96
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.
19/12/96
LINUM extended to taking a
job-descriptor parameter for returning a QLib-compiled jobs current
line number.
CATCH_.. operating w. interrupts locked to
prevent erroneous addresses when called while jobs changing
(fast).
7/2/1997
ATARI new: 1 in Mega-ST, STE, TT,
Falcon, Stacy; -1 as above, with SMSQ; 0 otherwise (QL, ST,
QPC)
AS_GO etc. (automatic) display blanking
functional again, with Atari-ST and e-software and SMSQ/E (2.79
tested).
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
timers.
COMPCOMP_O videoram addressing
simplified, sending file data bug fixed.
11/2/1997
CLOSE_B% closed channels *Basic flag bug
fixed.
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.
9/3/97
MT_TRA prepared to working also with
pre-JS systems.
mtra_tab char 127 (SH/ESC) translated to
"(C)".
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
as GET$.
28/4/97
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
blanking!
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.
12/12/97
LINUM(job) with reference to interpreted SBasic
jobs implemented
CH_CHAN$ STX/SRX and EDI-channels fetching
xx/5/98
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.
new traps:
sd.fount A1=>device A2=>filename, to preparing v.m.
S.Basic: CHAR_USE#mem-channel,"device","filename"
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.
xx/6/98
CH_FIND leading 2 number parameters may be
omitted:
qch = CH_FIND( [[ job-id,] topmost-chan-no,] name$ [,joker] )
9.7.98 : io1
IO_FLINE as IO_FSTRG
: wd1
W_RPTR string$=W_RPTR([#chan,]string$)
read 32 bytes co-ordinates & pointer record, X/Y-posn in 1st 4
bytes of strg, in and out
24.7. : fio
REBOOT experimental:
flush & close all channels, and re-start the system
(software-reset).
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
2.76)
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.
example:
FOR f=0TO 7:PRINT NFSUSE$(8);f+1,NFSUSE$(f)
DEVUSE$
modified to return DEV-useage when called w/o parm$
22.11.1999 : ep0
FIND
S.Basic memory related bug fixed.
Searching long files or memory areae not locking up the system.