home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ARM Club 3
/
TheARMClub_PDCD3.iso
/
hensa
/
drivers
/
a066_1
/
!VMode
/
!Help
< prev
next >
Wrap
Text File
|
1992-03-03
|
5KB
|
130 lines
!VMode ($Revision: 1.5 $)
A replacement for !edit as a taskwindow driver. Handles most VDU calls so
taskwindowed app can use graphics, positioned text etc. (Works by
redirection to a sprite.) Requires taskwindow module.
* Supports any mode that can be a sprite
* Allows saving of a screen dump
* Allocates space for screens using flex style slot extension
* Cursor (!)
* Passes on f12
* Magnifier *NEW*
* Palette changes work *NEW*
* Flexable startup method *NEW*
* You get source
* Good enough to run nethack in the desktop :-)
Not supported:
* A better cursor (flashing?)
* Dragged input
* Input editing
* A Zoomed to full screen state.
* HARD: The thing under taskwindow reading the current mode or variables.
If I receive 25 pounds or more, or even just a substantial number of
letters, I will be encouraged enough to do something about these, and those
who sent money will receive the new versions of this and other things.
Alternatively, you have the source, so go ahead and add something
worthwhile! (Though please distribute my version as well as a modified one,
or send changes back to me.)
Intructions:
Run it. A click on the bar icon will launch a new taskwindow in mode 0, you
can then change mode in that window if you like, or run something. A menu
allows the same four operations on tasks as !Edit, and lets you save a
screendump. The menu from the bar icon allows you to control whether
requests for new taskwindows are grabbed - the default state of this comes
from the value of VMode$NewTasks.
This is not actually very useful, however, as requests launched by
taskwindow itself seem to contain only the command taskwindow, and not the
parameters. !Edit, however, kindly only traps ones of this form, so any
proper ones generated will be got by !VMode. These can come either from
the newtask command in my bits module, used something like
do newtask taskwindow <Obey$Dir>.!Run2 -ctrl
The problem with this is that VMode must already be running.
The recommended technique is now to use
do vmode taskwindow <Obey$Dir>.!Run2 -ctrl
which actually runs vmode (the alias is set up when vmode is seen by the filer)
and the new copy will quit if its already running. So for nethack, rename
its !run file to !run2, and put the line above in !run.
RiscOS 3.00 wimp vs taskwindow vs UKSwi handlers
Note that the 3.00 wimp during each poll makes a call to a swi that is in
fact undefined - possibly this is intended for some sort of expansion. This
would be ok, except that it means the UKSwi handler that an application has
installed is called, possibly when its not expected if taskwindow has
preempted it and called Wimp_Poll. For instance, some versions of H.Roger's
unixlib want to core dump when this occurs, but taskwindow eats the core
dump, so they just exit silently. Anyway, a simple patch is a
module that defines this swi to do nothing, which is in W300UKSwi - so use
this if you are lucky enough to have an A5000.
Distribution:
This software may be freely redistributed, so long as only a reasonable
copying or media charge is made, and all files I distribute are included. I
retain copyright to the code. Commercial (including magazine) distribution,
or distributing modified versions of this please contact me - I am normally
happy for it to be reused in other free software, but like to avoid deviant
versions of mine causing trouble.
If you like and use it, and feel that further work would be worthwhile,
please send me 5 (or more) pounds. If I receive 25 or more, I'll add some
more features and fix any problems - though I may do anyway.
$Log: !Help $
# Revision 1.5 92/03/04 16:34:24 bdb
# Better start up
#
# Revision 1.4 92/03/02 17:25:27 bdb
# Trap and use palette changes.
# Added magnifier - fixed cursor vs this
# Title changing
# Fixed rogue cursor bug
# Only pass on f12 and send other keys to task.
# And mode number with 127
# Trapped VDU 21
# Prevented status lag update on menu allowing multiple resumes
#
# Revision 1.3 92/02/25 11:46:50 bdb
# Changed newtasks behaviour to only trap on -ctrl ones,
# and no longer use weird patch. This supports a newtask
# command to replace taskwindow.
#
# Revision 1.2 92/02/20 11:12:42 bdb
# Added cursor, passing on keys
# dbox_query replaces error box.
# Added chat about UKSwi patch module to !Help
#
# Revision 1.1 92/02/19 16:28:22 bdb
# Initial revision
#
Me:
Brian.Brunswick@cl.cam.ac.uk
0223 334419
At least till Sep 92:
Brian Brunswick
Trinity College
Cambridge
CB2 1TQ
UK
0223 351516
Brian Brunswick
Fairview
Avenue des Hirondelles
Pool-in-WharfeDale
Leeds
LS21 1EY
UK
0532 843737