home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 6 / Sonderheft_6-96.iso / pd / libraries / newreqlibs / newreqlibs.doc < prev    next >
Text File  |  1996-11-03  |  13KB  |  446 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6. °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
  7.                       Januari 30, 1996
  8.  
  9.                      Torbjörn Andersson
  10.                           presents
  11.                        NewReqLibs 1.5
  12.  
  13.                           Freeware
  14.  
  15. °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
  16.  
  17.  
  18.  
  19.  
  20.  
  21. 1. Contents
  22. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  23. Contents ................................................. 1
  24. Introduction ............................................. 2
  25. Requirements ............................................. 3
  26. Installation ............................................. 4
  27. TRTPatch ................................................. 5
  28. Notes about the new asl.library .......................... 6
  29. Notes about the new req.library .......................... 7
  30. History .................................................. 8
  31. Credits .................................................. 9
  32. Distribution ............................................ 10
  33.  
  34.  
  35.  
  36.  
  37.  
  38. 2. Introduction
  39. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  40. NeqReqLibs is something similar to RTPatch by Nico François.
  41. RTPatch forces other libraries to use reqtools.library.
  42. Instead of adding something to disk based libraries, my
  43. solution is to replace them.
  44.  
  45. In the Libs directory of this distribution you will find the
  46. libraries asl.library and req.library.  They are both a
  47. rewrite of the original ones, asl.library from Commodore and
  48. req.library by Colin Fox and Bruce Dawson.
  49.  
  50. The new libraries doesn't have any code for putting up their
  51. own requesters, instead they call reqtools.library.  If you
  52. install these libraries, programs that use them will
  53. automatically use reqtools.library.  The purpose of doing
  54. this is that reqtools.library has better requesters.  They
  55. are more powerful, more user-friendly and have the
  56. look-and-feel of kickstart release 2.0.
  57.  
  58. The main advantage by using NewReqLibs is that they take
  59. less memory, a patch program takes more (both on disk and
  60. when loaded in RAM).
  61.  
  62. The disadvantage by using each new library might be that
  63. compatibility problems increases.  The whole library is
  64. "patched" not just the necessary functions.
  65.  
  66. In this distribution you will also find the program
  67. TRTPatch.  Its main purpose is to patch some kickstart
  68. functions to use reqtools.library.
  69.  
  70.  
  71.  
  72.  
  73.  
  74. 3. Requirements
  75. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  76. NewReqLibs requires reqtools.library by Nico François,
  77. preferably version 38 or higher.
  78.  
  79. The original asl.library does not work on kickstart releases
  80. lower than 2.0.  The new one does, except for the screen
  81. mode requester that isn't available in reqtools.library.
  82.  
  83.  
  84.  
  85.  
  86.  
  87. 4. Installation
  88. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  89. This distribution contains four parts to be installed:
  90.  
  91. * Copy Libs/asl.library to the LIBS: drawer.
  92. * Copy Libs/req.library to the LIBS: drawer.
  93. * Copy TRTPatch to your system and start it every time you
  94.   boot.
  95.  
  96. You can choose freely which parts to install, they work
  97. completely independent of each other.
  98.  
  99.  
  100.  
  101.  
  102.  
  103. 5. TRTPatch
  104. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  105. TRTPatch is a program that will do some changes to the OS.
  106. Some functions are patched to use reqtools.library to open a
  107. requester.  The patches can't always make use of
  108. reqtools.library and they will then call the original
  109. function.  TRTPatch can be started from both Workbench and
  110. CLI.
  111.  
  112. Usage: TRTPatch [NOTRAP] [NOALERT] [NODISPALERT] [NOTIMEDALERT]
  113.                 [NOAUTOREQ] [NOEASYREQ] [QUIET]
  114.  
  115. Explanation of options:
  116.  
  117. NOTRAP:
  118. Don't patch exec.library/AddTask().
  119.  
  120. NOALERT:
  121. Don't patch exec.library/Alert().
  122.  
  123. NODISPALERT:
  124. Don't patch intuition.library/DisplayAlert().
  125.  
  126. NOTMEDALERT:
  127. Don't patch intuition.library/TimedDisplayAlert().
  128.  
  129. NOAUTOREQ:
  130. Don't patch intuition.library/AutoRequest().
  131.  
  132. NOEASYREQ:
  133. Don't patch intuition.library/EasyRequestArgs().
  134.  
  135. QUIET:
  136. Don't show information about installed patches.
  137.  
  138. Functions patched: 
  139.  
  140. * exec.library/AddTask().
  141. The default task trap handler doesn't call
  142. exec.library/Alert() through the LVO, and trap handling of
  143. processes use a requester.  To make the Alert() patch more
  144. usefull, this AddTask() patch will install a new trap
  145. handler in each task added to the system.  This trap handler
  146. switches to user mode and calls exec.library/Alert() through
  147. the LVO.
  148.  
  149. When this patch is installed, all task that doesn't have its
  150. own custom trap handler will have the same one installed
  151. that the patch installs when new tasks are added.
  152.  
  153. * exec.library/Alert().
  154. The original function displays an alert number which doesn't
  155. tell you very much, especially if you are not a programmer.
  156. This patch will use reqtools.library to open a nice
  157. requester and display a lot of information.
  158.  
  159. The title will read "Not enough memory"/"Software Failure"
  160. or "Recoverable Alert", just like the first sentence of the
  161. original Alert().
  162.  
  163. The address of the task that called Alert() is displayed
  164. together with the ASCII-name.  The usual alert number is
  165. displayed, and information that could be extracted from it -
  166. who caused the alert and why.  A dump of CPU registers are
  167. also shown.
  168.  
  169. There are four responses to choose between -
  170. Continue/Suspend/Reboot and Alert.  Continue is the same as
  171. pressing the left mouse button after an original Alert(),
  172. the execution will continue with unpredictable results.
  173. Suspend will stop the execution of the task.  Reboot will
  174. reboot the machine.  Alert will call the original Alert().
  175.  
  176. * intuition.library/DisplayAlert().
  177. This patch will try to display the text in a requester
  178. instead.  There are five responses to choose between -
  179. LMB/RMB/Suspend/Reboot and Alert.  LMB and RMB does the same
  180. as if you pressed the left or right mouse button after an
  181. original DisplayAlert().  Suspend will stop the execution of
  182. the task.  Reboot will reboot the machine.  Alert will call
  183. the original DisplayAlert().
  184.  
  185. * intuition.library/TimedDisplayAlert().
  186. Requires kickstart release 3.0.  Identical to the
  187. DisplayAlert() patch.
  188.  
  189. * intuition.library/AutoRequest().
  190. This patch will use reqtools.library for the requester.
  191. Under kickstart release 1.3 the system requester "Software
  192. error - task held ..." will be replaced with one that looks
  193. more like, and has the same respones as, the one under 2.0.
  194.  
  195. * intuition.library/EasyRequestArgs().
  196. Requires kickstart release 2.0.  This patch will use
  197. reqtools.library for the requester.
  198.  
  199.  
  200.  
  201.  
  202.  
  203. 6. Notes about the new asl.library
  204. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  205. Current version emulated is 39.6.
  206.  
  207. Ignores ASLxx_PositiveText if longer than six chars.
  208.  
  209. Copies library bases from ReqTools (Intuition, Gfx, DOS,
  210. Utility, GadTools).  UtilityBase and GadToolsBase are only
  211. valid on kickstart version 36 and higher.
  212.  
  213. Doesn't try to open icon.library if kickstart version is
  214. lower than 36, assuming it is disk based.
  215.  
  216. Tags ignored:
  217. ASLxx_NegativeText
  218. ASLxx_InitialLeftEdge
  219. ASLxx_InitialTopEdge
  220. ASLxx_InitialWidth
  221. ASLxx_InitialHeight
  222. ASLxx_FilterFunc
  223. ASLFR_RejectIcons
  224. ASLFR_RejectPattern
  225. ASLFR_AcceptPattern
  226. ASLFR_FilterDrawers
  227. ASLFO_DoFrontPen
  228. ASLFO_DoBackPen
  229. ASLFO_DoStyle
  230. ASLFO_DoDrawMode
  231. ASLFO_MaxFrontPen
  232. ASLFO_MaxBackPen
  233. ASLFO_ModeList
  234. ASLFO_FrontColors
  235. ASLFO_BackColors
  236. ASLSM_InitialInfoOpened
  237. ASLSM_InitialInfoLeftEdge
  238. ASLSM_InitialInfoTopEdge
  239. ASLSM_CustomSMList
  240.  
  241. Flags ignored:
  242. FRF_DOWILDFUNC
  243. FRF_FILTERDRAWERS
  244. FRF_REJECTICONS
  245. FOF_DOFRONTPEN
  246. FOF_DOBACKPEN
  247. FOF_DOFONTSTYLE
  248. FOF_DODRAWMODE
  249. FOF_DOWILDFUNC
  250.  
  251.  
  252.  
  253.  
  254.  
  255. 7. Notes about the new req.library
  256. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  257. Current version emulated is 2.5.
  258.  
  259. Doesn't make the port "req timer port" public, when using
  260. TextRequest() with a timeout.
  261.  
  262. The library structure is 48 bytes larger, to hold the
  263. request needed to open console.device.  The memory for the
  264. request isn't allocated separately by the library itself.
  265.  
  266. No extra chip memory is allocated for the images.  The image
  267. data is already in a hunk that is loaded into chip memory.
  268.  
  269. Rexxsyslib.library is never opened, thus rl_RexxSysBase will
  270. always be zero.
  271.  
  272. Functions:
  273. Center
  274. SetSize
  275. SetLocation
  276. ReadLocation
  277. ReqFormat
  278. Dispatch
  279. -  Never tries to open rexxsyslib.library.
  280. -  Always returns the value 14.
  281. Fake1
  282. Fake2
  283. Fake3
  284. FileRequester
  285. -  Calls rtFileRequestA().
  286. -  Pattern:
  287.    -  The character "*" will be replaced by "#?".
  288.    -  The contents of frq_Hide is shown (as ~(pattern)), if
  289.       frq_Show is 0 or if its buffer is NULL.
  290.    -  Changes made in the pattern gadget will not be saved
  291.       for next call.
  292. -  frq_MaxExtendedSelect is ignored.
  293. -  frq_numlines is ignored.
  294. -  frq_numcolumns is ignored.
  295. -  frq_devcolumns is ignored.
  296. -  frq_Flags:
  297.    -  FRQSHOWINFOM is ignored.
  298.    -  FRQINFOGADGETM is ignored.
  299.    -  FRQNOHALFCACHEM is ignored.
  300.    -  FRQNOSORTM is ignored.
  301.    -  FRQNODRAGM is ignored.
  302.    -  FRQSAVINGM is supported.
  303.    -  FRQLOADINGM is supported.
  304. -  frq_dirnamescolor is ignored.
  305. -  frq_filenamescolor is ignored.
  306. -  frq_devicenamescolor is ignored.
  307. -  frq_fontnamescolor is ignored.
  308. -  frq_fontsizecolor is ignored.
  309. -  frq_detailcolor is ignored.
  310. -  frq_blockcolor is ignored.
  311. -  frq_gadgettextcolor is ignored.
  312. -  frq_textmessagecolor is ignored.
  313. -  frq_stringnamecolor is ignored.
  314. -  frq_stringgadgetcolor is ignored.
  315. -  frq_boxbordercolor is ignored.
  316. -  frq_gadgetboxcolor is ignored.
  317. -  frq_FileBufferPos is ignored.
  318. -  frq_FileDispPos is ignored.
  319. -  frq_DirBufferPos is ignored.
  320. -  frq_DirDispPos is ignored.
  321. -  frq_HideBufferPos is ignored.
  322. -  frq_HideDispPos is ignored.
  323. -  frq_ShowBufferPos is ignored.
  324. -  frq_ShowDispPos is ignored.
  325. ColorRequester
  326. -  Calls rtPaletteRequestA() (via ExtendedColorRequester()).
  327. DrawBox
  328. MakeButton
  329. MakeScrollBar
  330. PurgeFiles
  331. GetFontHeightAndWidth
  332. MakeGadget
  333. MakeString
  334. MakeProp
  335. LinkGadget
  336. LinkStringGadget
  337. LinkPropGadget
  338. GetString
  339. -  Calls rtGetStringA().
  340. -  D0=visiblechars is ignored.
  341. RealTimeScroll
  342. TextRequest
  343. -  Calls rtEZRequestA().
  344. -  TR_KeyMask is ignored.
  345. -  TR_AbortMask is ignored.
  346. -  If there are no gadgets in the requester it will be
  347.    terminated by a press on any mousebutton.
  348. GetLong
  349. -  Calls rtGetLongA().
  350. RawKeyToAscii
  351. ExtendedColorRequester
  352. -  Calls rtPaletteRequestA().
  353. NewGetString
  354. -  Calls rtGetStringA() (via GetString()).
  355. -  gs_visiblesize is ignored.
  356.  
  357.  
  358.  
  359.  
  360.  
  361. 8. History
  362. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  363. 1.0 (26.2.95)
  364. * First release.
  365.  
  366. 1.1 (4.3.95)
  367. * Optimized Open()/Close()/Expunge().
  368.   Saved 2 (!) bytes.
  369. * Included PatchArp.
  370. * Included new asl.library.
  371. * Changed name from NewReqLib to NewReqLibs.
  372.  
  373. 1.2 (26.3.95)
  374. * Arp: Handles FRF_DoMsgFunc and FRF_DoWildFunc.
  375. * Asl: AslRequest() makes dos.library/IoErr() return
  376.   ERROR_NO_FREE_STORE if request is NULL, else 0.
  377. * Asl: Handles ASLxx_PositiveText if not longer than six
  378.   chars.
  379. * Asl: Handles ASLxx_IntuiMsgFunc.
  380. * Asl: Some bug fixes.
  381. * Asl: Handles FOF_DOMSGFUNC and FRF_DOMSGFUNC.
  382. * Req: TextRequest() now handles TR_Timeout.
  383. * PatchArp: Cuts off code left over in FileRequest(),
  384.   finally resulting in a smaller arp.library. :-)
  385. * Changed function tables to use relative word displacements
  386.   instead of absolute function pointers.
  387.   Saved lots of bytes. :-)
  388.  
  389. 1.3 (18.6.95)
  390. * Asl: Fixed bug in handling of ASLxx_PositiveText.
  391. * Asl: Fixed bug in handling of FRF_DOMULTISELECT.
  392. * Asl: Fixed bug in Expunge().
  393.  
  394. 1.4 (5.8.95)
  395. * Req: Fixed bug in Center().
  396. * Req: Fixed bug in ReqFormat().
  397. * Included PatchOS.
  398.  
  399. 1.5 (30.1.96)
  400. * Removed installation script.
  401. * Removed PatchArp. I didn't like the idea of modifying
  402.   arp.library, and who uses arp anyway?
  403. * Renamed PatchOS to TRTPatch; my RTPatch.
  404. * TRTPatch: Removed enforcer hit.
  405.   (caused by calling dos.library/PutStr(0))
  406. * TRTPatch: AutoRequest() and EasyRequestArgs() patches
  407.   passed "System Request" when window title was zero, they
  408.   now pass a NULL string.
  409. * TRTPatch: Removed options WILDSTAR, NOCLICK and BBLANK.
  410. * Asl: Removed enforcer hit in font requester.
  411. * Asl: When doing multiple selection, the wa_Lock fields in
  412.   rf_ArgList was always set to zero.
  413. * Req: Didn't cache directory when cancel was selected.
  414.  
  415.  
  416.  
  417.  
  418.  
  419. 9. Credits
  420. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  421. * Nico François for reqtools.library.
  422.  
  423.  
  424.  
  425.  
  426.  
  427. 10. Distribution
  428. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  429. NewReqLibs is made by and copyright Torbjörn Andersson. No
  430. commercial usage is allowed without written permission from
  431. the author. Other distribution is allowed if no files in the
  432. original distribution are removed or modified.
  433.  
  434. Torbjörn Andersson
  435. Knöppletorp 4379
  436. S-380 31 LÄCKEBY
  437. SWEDEN
  438.  
  439. Email: d95ta@efd.lth.se
  440.  
  441.  
  442.  
  443.  
  444.  
  445.                                           I love you - AMIGA
  446.