home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus Special 6
/
Sonderheft_6-96.iso
/
pd
/
libraries
/
newreqlibs
/
newreqlibs.doc
< prev
next >
Wrap
Text File
|
1996-11-03
|
13KB
|
446 lines
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
Januari 30, 1996
Torbjörn Andersson
presents
NewReqLibs 1.5
Freeware
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
1. Contents
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Contents ................................................. 1
Introduction ............................................. 2
Requirements ............................................. 3
Installation ............................................. 4
TRTPatch ................................................. 5
Notes about the new asl.library .......................... 6
Notes about the new req.library .......................... 7
History .................................................. 8
Credits .................................................. 9
Distribution ............................................ 10
2. Introduction
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NeqReqLibs is something similar to RTPatch by Nico François.
RTPatch forces other libraries to use reqtools.library.
Instead of adding something to disk based libraries, my
solution is to replace them.
In the Libs directory of this distribution you will find the
libraries asl.library and req.library. They are both a
rewrite of the original ones, asl.library from Commodore and
req.library by Colin Fox and Bruce Dawson.
The new libraries doesn't have any code for putting up their
own requesters, instead they call reqtools.library. If you
install these libraries, programs that use them will
automatically use reqtools.library. The purpose of doing
this is that reqtools.library has better requesters. They
are more powerful, more user-friendly and have the
look-and-feel of kickstart release 2.0.
The main advantage by using NewReqLibs is that they take
less memory, a patch program takes more (both on disk and
when loaded in RAM).
The disadvantage by using each new library might be that
compatibility problems increases. The whole library is
"patched" not just the necessary functions.
In this distribution you will also find the program
TRTPatch. Its main purpose is to patch some kickstart
functions to use reqtools.library.
3. Requirements
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NewReqLibs requires reqtools.library by Nico François,
preferably version 38 or higher.
The original asl.library does not work on kickstart releases
lower than 2.0. The new one does, except for the screen
mode requester that isn't available in reqtools.library.
4. Installation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This distribution contains four parts to be installed:
* Copy Libs/asl.library to the LIBS: drawer.
* Copy Libs/req.library to the LIBS: drawer.
* Copy TRTPatch to your system and start it every time you
boot.
You can choose freely which parts to install, they work
completely independent of each other.
5. TRTPatch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TRTPatch is a program that will do some changes to the OS.
Some functions are patched to use reqtools.library to open a
requester. The patches can't always make use of
reqtools.library and they will then call the original
function. TRTPatch can be started from both Workbench and
CLI.
Usage: TRTPatch [NOTRAP] [NOALERT] [NODISPALERT] [NOTIMEDALERT]
[NOAUTOREQ] [NOEASYREQ] [QUIET]
Explanation of options:
NOTRAP:
Don't patch exec.library/AddTask().
NOALERT:
Don't patch exec.library/Alert().
NODISPALERT:
Don't patch intuition.library/DisplayAlert().
NOTMEDALERT:
Don't patch intuition.library/TimedDisplayAlert().
NOAUTOREQ:
Don't patch intuition.library/AutoRequest().
NOEASYREQ:
Don't patch intuition.library/EasyRequestArgs().
QUIET:
Don't show information about installed patches.
Functions patched:
* exec.library/AddTask().
The default task trap handler doesn't call
exec.library/Alert() through the LVO, and trap handling of
processes use a requester. To make the Alert() patch more
usefull, this AddTask() patch will install a new trap
handler in each task added to the system. This trap handler
switches to user mode and calls exec.library/Alert() through
the LVO.
When this patch is installed, all task that doesn't have its
own custom trap handler will have the same one installed
that the patch installs when new tasks are added.
* exec.library/Alert().
The original function displays an alert number which doesn't
tell you very much, especially if you are not a programmer.
This patch will use reqtools.library to open a nice
requester and display a lot of information.
The title will read "Not enough memory"/"Software Failure"
or "Recoverable Alert", just like the first sentence of the
original Alert().
The address of the task that called Alert() is displayed
together with the ASCII-name. The usual alert number is
displayed, and information that could be extracted from it -
who caused the alert and why. A dump of CPU registers are
also shown.
There are four responses to choose between -
Continue/Suspend/Reboot and Alert. Continue is the same as
pressing the left mouse button after an original Alert(),
the execution will continue with unpredictable results.
Suspend will stop the execution of the task. Reboot will
reboot the machine. Alert will call the original Alert().
* intuition.library/DisplayAlert().
This patch will try to display the text in a requester
instead. There are five responses to choose between -
LMB/RMB/Suspend/Reboot and Alert. LMB and RMB does the same
as if you pressed the left or right mouse button after an
original DisplayAlert(). Suspend will stop the execution of
the task. Reboot will reboot the machine. Alert will call
the original DisplayAlert().
* intuition.library/TimedDisplayAlert().
Requires kickstart release 3.0. Identical to the
DisplayAlert() patch.
* intuition.library/AutoRequest().
This patch will use reqtools.library for the requester.
Under kickstart release 1.3 the system requester "Software
error - task held ..." will be replaced with one that looks
more like, and has the same respones as, the one under 2.0.
* intuition.library/EasyRequestArgs().
Requires kickstart release 2.0. This patch will use
reqtools.library for the requester.
6. Notes about the new asl.library
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Current version emulated is 39.6.
Ignores ASLxx_PositiveText if longer than six chars.
Copies library bases from ReqTools (Intuition, Gfx, DOS,
Utility, GadTools). UtilityBase and GadToolsBase are only
valid on kickstart version 36 and higher.
Doesn't try to open icon.library if kickstart version is
lower than 36, assuming it is disk based.
Tags ignored:
ASLxx_NegativeText
ASLxx_InitialLeftEdge
ASLxx_InitialTopEdge
ASLxx_InitialWidth
ASLxx_InitialHeight
ASLxx_FilterFunc
ASLFR_RejectIcons
ASLFR_RejectPattern
ASLFR_AcceptPattern
ASLFR_FilterDrawers
ASLFO_DoFrontPen
ASLFO_DoBackPen
ASLFO_DoStyle
ASLFO_DoDrawMode
ASLFO_MaxFrontPen
ASLFO_MaxBackPen
ASLFO_ModeList
ASLFO_FrontColors
ASLFO_BackColors
ASLSM_InitialInfoOpened
ASLSM_InitialInfoLeftEdge
ASLSM_InitialInfoTopEdge
ASLSM_CustomSMList
Flags ignored:
FRF_DOWILDFUNC
FRF_FILTERDRAWERS
FRF_REJECTICONS
FOF_DOFRONTPEN
FOF_DOBACKPEN
FOF_DOFONTSTYLE
FOF_DODRAWMODE
FOF_DOWILDFUNC
7. Notes about the new req.library
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Current version emulated is 2.5.
Doesn't make the port "req timer port" public, when using
TextRequest() with a timeout.
The library structure is 48 bytes larger, to hold the
request needed to open console.device. The memory for the
request isn't allocated separately by the library itself.
No extra chip memory is allocated for the images. The image
data is already in a hunk that is loaded into chip memory.
Rexxsyslib.library is never opened, thus rl_RexxSysBase will
always be zero.
Functions:
Center
SetSize
SetLocation
ReadLocation
ReqFormat
Dispatch
- Never tries to open rexxsyslib.library.
- Always returns the value 14.
Fake1
Fake2
Fake3
FileRequester
- Calls rtFileRequestA().
- Pattern:
- The character "*" will be replaced by "#?".
- The contents of frq_Hide is shown (as ~(pattern)), if
frq_Show is 0 or if its buffer is NULL.
- Changes made in the pattern gadget will not be saved
for next call.
- frq_MaxExtendedSelect is ignored.
- frq_numlines is ignored.
- frq_numcolumns is ignored.
- frq_devcolumns is ignored.
- frq_Flags:
- FRQSHOWINFOM is ignored.
- FRQINFOGADGETM is ignored.
- FRQNOHALFCACHEM is ignored.
- FRQNOSORTM is ignored.
- FRQNODRAGM is ignored.
- FRQSAVINGM is supported.
- FRQLOADINGM is supported.
- frq_dirnamescolor is ignored.
- frq_filenamescolor is ignored.
- frq_devicenamescolor is ignored.
- frq_fontnamescolor is ignored.
- frq_fontsizecolor is ignored.
- frq_detailcolor is ignored.
- frq_blockcolor is ignored.
- frq_gadgettextcolor is ignored.
- frq_textmessagecolor is ignored.
- frq_stringnamecolor is ignored.
- frq_stringgadgetcolor is ignored.
- frq_boxbordercolor is ignored.
- frq_gadgetboxcolor is ignored.
- frq_FileBufferPos is ignored.
- frq_FileDispPos is ignored.
- frq_DirBufferPos is ignored.
- frq_DirDispPos is ignored.
- frq_HideBufferPos is ignored.
- frq_HideDispPos is ignored.
- frq_ShowBufferPos is ignored.
- frq_ShowDispPos is ignored.
ColorRequester
- Calls rtPaletteRequestA() (via ExtendedColorRequester()).
DrawBox
MakeButton
MakeScrollBar
PurgeFiles
GetFontHeightAndWidth
MakeGadget
MakeString
MakeProp
LinkGadget
LinkStringGadget
LinkPropGadget
GetString
- Calls rtGetStringA().
- D0=visiblechars is ignored.
RealTimeScroll
TextRequest
- Calls rtEZRequestA().
- TR_KeyMask is ignored.
- TR_AbortMask is ignored.
- If there are no gadgets in the requester it will be
terminated by a press on any mousebutton.
GetLong
- Calls rtGetLongA().
RawKeyToAscii
ExtendedColorRequester
- Calls rtPaletteRequestA().
NewGetString
- Calls rtGetStringA() (via GetString()).
- gs_visiblesize is ignored.
8. History
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1.0 (26.2.95)
* First release.
1.1 (4.3.95)
* Optimized Open()/Close()/Expunge().
Saved 2 (!) bytes.
* Included PatchArp.
* Included new asl.library.
* Changed name from NewReqLib to NewReqLibs.
1.2 (26.3.95)
* Arp: Handles FRF_DoMsgFunc and FRF_DoWildFunc.
* Asl: AslRequest() makes dos.library/IoErr() return
ERROR_NO_FREE_STORE if request is NULL, else 0.
* Asl: Handles ASLxx_PositiveText if not longer than six
chars.
* Asl: Handles ASLxx_IntuiMsgFunc.
* Asl: Some bug fixes.
* Asl: Handles FOF_DOMSGFUNC and FRF_DOMSGFUNC.
* Req: TextRequest() now handles TR_Timeout.
* PatchArp: Cuts off code left over in FileRequest(),
finally resulting in a smaller arp.library. :-)
* Changed function tables to use relative word displacements
instead of absolute function pointers.
Saved lots of bytes. :-)
1.3 (18.6.95)
* Asl: Fixed bug in handling of ASLxx_PositiveText.
* Asl: Fixed bug in handling of FRF_DOMULTISELECT.
* Asl: Fixed bug in Expunge().
1.4 (5.8.95)
* Req: Fixed bug in Center().
* Req: Fixed bug in ReqFormat().
* Included PatchOS.
1.5 (30.1.96)
* Removed installation script.
* Removed PatchArp. I didn't like the idea of modifying
arp.library, and who uses arp anyway?
* Renamed PatchOS to TRTPatch; my RTPatch.
* TRTPatch: Removed enforcer hit.
(caused by calling dos.library/PutStr(0))
* TRTPatch: AutoRequest() and EasyRequestArgs() patches
passed "System Request" when window title was zero, they
now pass a NULL string.
* TRTPatch: Removed options WILDSTAR, NOCLICK and BBLANK.
* Asl: Removed enforcer hit in font requester.
* Asl: When doing multiple selection, the wa_Lock fields in
rf_ArgList was always set to zero.
* Req: Didn't cache directory when cancel was selected.
9. Credits
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Nico François for reqtools.library.
10. Distribution
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NewReqLibs is made by and copyright Torbjörn Andersson. No
commercial usage is allowed without written permission from
the author. Other distribution is allowed if no files in the
original distribution are removed or modified.
Torbjörn Andersson
Knöppletorp 4379
S-380 31 LÄCKEBY
SWEDEN
Email: d95ta@efd.lth.se
I love you - AMIGA