PEEK and POKE
                             =============

This toolkit is a so called compatibility toolkit. It adds
SMSQ/E-compatible versions of the PEEK/POKE suit of commands to
SuperBASIC thus allowing programs written in SBASIC or compiled with Qlib
to run under Qdos. And allows programs written in SuperBASIC, with this
toolkit loaded, to run unmodified under both systems.

Unfortunately, programs using the enhanced parameter options of these
commands cannot, AFAIK, be compiled with Turbo, as Turbo uses its own
syntax graphs for certain keywords which have not, as of V4.x, at least,
been adapted.

Update: The information about Turbo may be wrong. Seems Ive been using an
out of date version. Still to be verified!

Syntax and examples can be found in the PEEK_txt file.


A couple of warnings/Troubleshooting:
=====================================

1. Programs that rely on certain system variables or S*BASIC variables on Qdos
may not exist in SMSQ/E - and vice versa! So although the PEEK/POKE commands
may be compatible, the underlying structures being accessed may not exist,
or have a different meaning!

2. Many of us have written our own versions of PEEK$ and POKE_F, etc over the
years (I know I have) and some of these are burried in various long-forgotten
toolkits that may still be loaded out of habit. So make sure this toolkit is
loaded AFTER other toolkits having commands with the same names if they are
to have the desired effect!

Another one is Turbo Toolkit (including TURBO_SMS_TK) which also has commands
like PEEK_F and POKE_F, but which are less versatile. However, the versions
in this toolkit should still be backwardly compatible with programs that use
the standard, simple parameters.

Update: Turbo's PEEK_F(<addr>) is NOT quite the same as this (and
SMSQ/E's) PEEK_F(<addr>) as this PEEK_F filters out data which doesnt
evaluate to a valid float! Turbo's parser_task needs to be able to peek a
"bad float" to function correctly, so you may need to obtain a "fixed"
version of parser_task if you use this toolkit. Currently you can get it
here. Later it may be available from the usual suspects.

3. I have not tested this toolkit extensively! I wrote a few test programs
and ran them, and then compiled them with Qlib and executed them on both
SMSQ/E and Qdos and Minerva systems. Everything seemed to work fine - as I
expected they would! But please let me know if any issues turn up! I'll
do my best to sort them out.


Program notes:
==============

To re-assemble this toolkit the SMSQ/E sources are required. They must be
attached to your system at dev8_.

It is unlikely, but possible, that the source files, or the way they are
organised, may change in the future. This compilation is based on SMSQ/E
V3.38.

At just under 1k this may seem like a rather large addition to add to a
machine with limited memory; in most cases only a few of the PEEK/POKE
commands are needed. It shouldnt be too hard to make a copy of the
dev8_sbsext_ext_peek_asm file and edit it to remove any superfluous
commands, and adjust the Key_asm file accordingly. Unlike making a soup:
in this case it is easier to subtract ingredients than to add them!


Software status:
================

I did not write this software myself! It was lifted out of the SMSQ/E
sources and was packaged by me in the form you see here. Thus, I believe,
the SMSQ/E licence applies. A copy of this license is included.

PEEK / POKE            V2.02    ©  1990  Tony Tebby   QJUMP

2005-12-10  2.01  Added PEEK_F, PEEKS_F, POKE_F, POKES_F (MK)
2005-12-29  2.02  Ensures that PEEK_F only returns valid floats (MK)

This package is:

V0.01, pjw, 2022 May 04

               Conditions of use and DISCLAIMER as per Knoware.no