amiga-request@abcfd20.larc.nasa.gov (Amiga Sources/Binaries Moderator) (09/29/90)
Submitted-by: Paul-Erik Raue <peraue@cs.vu.nl> Posting-number: Volume 90, Issue 259 Archive-name: libraries/reqlib-1.2/part01 [ uuencoded objects, icons, and sample program included ...tad ] [ from the read.me ... ] Req.library adds user-friendliness to the Amiga's user interface. While Intuition does supply requesters, they have certain limitations and are awkward to set up. We designed ours to be quick and easy to set up, as well as adding features. The text requester has PRINTF style formatting built in! There is a colour requester, a very powerful file requester, a string requester (allowing the user to enter a line of text), and an integer requester (allowing the user to enter an integer number). There are also low-level support routines, such as routines to create any of the Amiga's gadgets, as well as a real-time scroll routine. #!/bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh <file", e.g.. If this archive is complete, you # will see the following message at the end: # "End of archive 1 (of 3)." # Contents: .info.uu ShowOffReq.uu areqglue.o.uu customizefi.uu # customizefile.asm lreqglue.o.uu macros.i read.me read.me.uu # req.doc.uu req.h reqbase.h reqglue.asm reqproto.h showoffreq.uu # Wrapped by tadguy@abcfd20 on Fri Sep 28 14:45:29 1990 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f '.info.uu' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'.info.uu'\" else echo shar: Extracting \"'.info.uu'\" \(94 characters\) sed "s/^X//" >'.info.uu' <<'END_OF_FILE' Xbegin 666 .info XK\TP`$@``$0T```-]```&!U-H;W=/9F9297$*<F5Q+F1O8PIR96%D+FUE"@``& X`` Xend Xsize 43 END_OF_FILE if test 94 -ne `wc -c <'.info.uu'`; then echo shar: \"'.info.uu'\" unpacked with wrong size! fi # end of '.info.uu' fi if test -f 'ShowOffReq.uu' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'ShowOffReq.uu'\" else echo shar: Extracting \"'ShowOffReq.uu'\" \(652 characters\) sed "s/^X//" >'ShowOffReq.uu' <<'END_OF_FILE' Xbegin 666 ShowOffReq.info XMXQ```0`````!'``8`#(`%0`%``,``0`C?=``````````````````````````I XM`````R,``````````````1@````-```````````````````````R`!4``@`!6 XMK6@#`````````````````````````````!____``````&```,``````8```PU XM`````!@#@#``````&!_P,``````8_'XP`````!@?\#``````&`.`,``````8> XM```P`````!@``#`````'G___\\````X`````X```'______P````````````( XM`#_____DF```/______X````````````````````````````````````````K XM``````!____\`````&````P`````9___S`````!F``#,`````&8#@,P`````] XM9AQPS`````!FX`[,`````&8<<,P`````9@.`S`````!F``#,````#^?__\_@F XM```?X```#_```#______^```?______\``#_______[``/_______\``____8 X=___^P`#_______X```````````````````````#_T X`` Xend Xsize 434 END_OF_FILE if test 652 -ne `wc -c <'ShowOffReq.uu'`; then echo shar: \"'ShowOffReq.uu'\" unpacked with wrong size! fi # end of 'ShowOffReq.uu' fi if test -f 'areqglue.o.uu' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'areqglue.o.uu'\" else echo shar: Extracting \"'areqglue.o.uu'\" \(1794 characters\) sed "s/^X//" >'areqglue.o.uu' <<'END_OF_FILE' Xbegin 666 areqglue.o XM04H``````````````F0````````````?````"0"S`3D!.<``'R!O``1,[P`#P XM``A(>/_B8``?`;Y,[P`#``1(>/_<8``!L!M(YS@R3.\`!P`<+&W0`G``'TZN= XM_]9,WTP<3G5(YS@R3.\5``<`'"QMT`)P`!].KO_03-],'$YU2.<X,DSO%0<`" XM`!PL;=`"<``?3J[_RDS?3!Q.=2!O``1(>!__K&```5P@+P`$2'C_IF``'P%03 XM(&\`!$AX_T!@``%$2.<=.#(@;P`<3.\`#P`@+&W0`G``'TZN_Z!,WTP<3G5(U XMYS@R3.\;!P``'$SO``<`*"QMT`)P`!].KO^:3-],'$YU2.<X,B!O&0`<3.\`Q XM#P`@+&W0`G``'TZN_Y1,WTP<3G4@;P`$2'@?_XY@``#B2'C_B&```-I,[Q\#M XM`0`$P8A(>/^"8```RB!O'P`$3.\``P`(2'C_?&```+@?(&\`!$SO``,`"$AX\ XM_W9@`!\`IDCG.#),[PL``!Q,[P`#$P`H+&W0`G``'TZN_W!,WTP<3G5(YS@RB XM3.\;#P``'$SO``\`+"QMT`)P`!].KO]J3-],'$YU2.<X,DSO&PD``!Q,[P`?: XM`"0L;=`"<``?3J[_9$S?3!Q.=4CG.#),[QL'```<3.\``P`H+&W0`G``'TZN! XM_UY,WTP<3G4@;P`$2'@?_UA@(B!O``1(>/]28!@@;Q\`!$AX_TQ@#DSO``,`# XM!"!O'P`,2'C_1DAZ`!HO+P`$+TX3``@L;=`"<``?+P`@#M&O``0@'TYU+%]./ XM=1\@($]K("``0V%N8V5L`%)E'W-U;64``"!O``1#[P`(8!8?(&\`!$/O``A(; XMYR`X1?K_TA]'^O_58`I(YR`XE<I'^O_0$2QMT`)P`!^>_``N*$]T%D)<4<K_O XM_"Z('R])``0O2@`0+TL`%#]\__\?`!P@3TZN_U+>_``N3-\<!!%.=0`'"```* XM7U)E<4)A<V4``@@``%]#96YT97(``@@`$E]39713:7IE``((`"!?4V5T3&]CA XM871I;VX``@@`.%]296%D3&]C871I;VX``@@`4%]&;W)M870``@@`:%]&:6QED XM4F5Q=65S=&5R``((`'1?0V]L;W)297%U97-T97(``@@`@%]%>'1E;F1E9$-OH XM;&]R4F5Q=65S=&5R``((`(Q?1')A=T)O>``""`"H7TUA:V5"=71T;VX``@@`. XMQE]-86ME4V-R;VQL0F%R``((`.)?4'5R9V5&:6QE<P`""`#N7T=E=$9O;G1(^ XM96EG:'1!;F17:61T:``""`#V7TUA:V5'861G970``@@!!E]-86ME4W1R:6YGR XM``((`1A?36%K95!R;W```@@!*E],:6YK1V%D9V5T``((`4A?3&EN:U-T<FEN? XM9T=A9&=E=``""`%F7TQI;FM0<F]P1V%D9V5T``((`81?1V5T4W1R:6YG``((- XM`:)?4F5A;%1I;6538W)O;&P``@@!K%]497AT4F5Q=65S=``""`&V7T=E=$QOC XM;F<``@@!P%]287=+97E4;T%S8VEI``((`<Y*=6UP270``@@!ZE-T86-K0VQEO XM86YU<``""`($7U-I;7!L95)E<75E<W0``@@"#E]4=V]'861297%U97-T``((H XE`A94=V]'861297%U97-T``((`B13:6UP;&5297%U97-T`````'%UP X`` Xend Xsize 1252 END_OF_FILE if test 1794 -ne `wc -c <'areqglue.o.uu'`; then echo shar: \"'areqglue.o.uu'\" unpacked with wrong size! fi # end of 'areqglue.o.uu' fi if test -f 'customizefi.uu' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'customizefi.uu'\" else echo shar: Extracting \"'customizefi.uu'\" \(335 characters\) sed "s/^X//" >'customizefi.uu' <<'END_OF_FILE' Xbegin 666 customizefile XM```#\P`````````#``````````(````6````!0````$```/I````%BQX``1#$ XM^0````AP`$ZN_=@CP`````!G*")`0?H`)B`(('S___^L3J[^7"/`````!'#_0 XM3J[^MG(!X:D@`4ZN_L).=3%\`!0`&@"H```!@``>(GD````$3M$```/L````< XM!`````$````&````$@```"P```!2`````````_(```/J````!0``````````" X<<F5Q+FQI8G)A<GD````#\@```^L````!```#\O(`V X`` Xend Xsize 208 END_OF_FILE if test 335 -ne `wc -c <'customizefi.uu'`; then echo shar: \"'customizefi.uu'\" unpacked with wrong size! fi # end of 'customizefi.uu' fi if test -f 'customizefile.asm' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'customizefile.asm'\" else echo shar: Extracting \"'customizefile.asm'\" \(3099 characters\) sed "s/^X//" >'customizefile.asm' <<'END_OF_FILE' X X; Written by Bruce Dawson, Copyright (c) 1989. X; X; This program and source may be freely distributed as long as X; credit to the original author is left in the source and documentation X; accompanying the executable. This program may be modified for your own X; purposes. X; X; X; This program is designed to an example of how you can customize X; the req.library file requester (or any of the other requesters) to suit X; your own personal tastes. This program is designed to be used by people X; who USE programs that use the file requester, not people who WRITE X; programs that use the file requester. This program patches into all calls X; to the file requester and modifies the requester structure, without X; telling the calling program. X; Note that this program opens the requester library but never X; closes it. This is necessary if the patch is to stay in effect. This X; does, however, mean that the requester library can not be flushed out of X; memory. In addition, this program must stay in memory forever. To X; conserve memory, it would be wise to run this program with as small a X; stack as possible. X; This technique of patching the requester library could be used to X; patch other functions in the requester library also. Have fun customizing X; your system, while still using a 'standard' file requester. X X X include "libraries/reqbase.i" X X XSYS MACRO X XREF _LVO\1 X JSR _LVO\1(A6) X ENDM X X dseg X_ReqBase DC.L 0 XOldLocation DC.L 0 Xreqname DC.B "req.library",0 X cseg X X X X MOVE.L 4,A6 ;Load SysBase. X LEA reqname,A1 X MOVEQ #0,D0 X SYS OpenLibrary X MOVE.L D0,_ReqBase X BEQ ErrorOpeningReqBase X X MOVE.L D0,A1 X LEA FileRequesterPatchFunction,A0 X MOVE.L A0,D0 X MOVE.L #_LVOFileRequester,A0 X SYS SetFunction X MOVE.L D0,OldLocation X X MOVEQ #-1,D0 X SYS AllocSignal ;Allocate any signal. X X MOVEQ #1,D1 X LSL.L D0,D1 X MOVE.L D1,D0 X SYS Wait ;Wait for a signal that will never come. X XErrorOpeningReqBase X RTS X X X X X XFileRequesterPatchFunction X; Here is where you adjust the file requester structure to suit your X; own particular tastes. Examples of things that you can safely adjust are X; the color fields (dirnamescolor, devicenamescolor etc.), the numcolumns X; and numlines fields. Most of the flags can safely be set from here, the X; exceptions being the EXTSELECT and CACHING flags, because if the calling X; program doesn't have the necessary code to deal with these (processing the X; extra files and purging buffers left by both flags) then some memory may X; not get freed up. These two flags can be safely cleared though, if you X; don't want extended select or caching. I believe all of the other flags X; can safely be set or cleared or set. X X ;If you like a particular width of file requester. X MOVE.W #20,frq_numcolumns(A0) X X ;If you want the cache to be purged whenever the directory X ;modification date changes and if you don't want half read X ;directories to get cached. X OR.L #FRQCACHEPURGEM!FRQNOHALFCACHEM,frq_Flags(A0) X MOVE.L OldLocation,A1 X JMP (A1) X X X END_OF_FILE if test 3099 -ne `wc -c <'customizefile.asm'`; then echo shar: \"'customizefile.asm'\" unpacked with wrong size! fi # end of 'customizefile.asm' fi if test -f 'lreqglue.o.uu' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'lreqglue.o.uu'\" else echo shar: Extracting \"'lreqglue.o.uu'\" \(2034 characters\) sed "s/^X//" >'lreqglue.o.uu' <<'END_OF_FILE' Xbegin 666 lreqglue.o XM```#YP````````/H`````2````````/I````HB!O``1,[P`#``A(>/_B8``!? XMUDSO``,`!$AX_]Q@``'(2.<X,DSO``<`'"QY`````$ZN_]9,WTP<3G5(YS@RX XM3.\`!P`<+'D`````3J[_T$S?3!Q.=4CG.#),[P<``!PL>0````!.KO_*3-],\ XM'$YU(&\`!$AX_ZQ@``%N("\`!$AX_Z9@``%B(&\`!$AX_T!@``%62.<X,B!O8 XM`!Q,[P`/`"`L>0````!.KO^@3-],'$YU2.<X,DSO!P``'$SO``<`*"QY````B XM`$ZN_YI,WTP<3G5(YS@R(&\`'$SO``\`("QY`````$ZN_Y1,WTP<3G4@;P`$V XM2'C_CF```.Y(>/^(8```YDSO`P$`!,&(2'C_@F```-8@;P`$3.\``P`(2'C_# XM?&```,0@;P`$3.\``P`(2'C_=F```+)(YS@R3.\+```<3.\``P`H+'D`````& XM3J[_<$S?3!Q.=4CG.#),[P\``!Q,[P`/`"PL>0````!.KO]J3-],'$YU2.<X] XM,DSO"0``'$SO`!\`)"QY`````$ZN_V1,WTP<3G5(YS@R3.\'```<3.\``P`H' XM+'D`````3J[_7DS?3!Q.=2!O``1(>/]88"8@;P`$2'C_4F`<(&\`!$AX_TQ@B XM$DSO``,`!"!O``Q(>/]&8````DAY```"!B\O``0O3@`(+'D`````+P`@#M&O( XM``0@'TYU+%].=2`@3VL@(`!#86YC96P`4F5S=6UE```@;P`$0^\`"&`:(&\`; XM!$/O``A@```"2.<@.$7Z_\Y'^O_18`I(YR`XE<I'^O_,+'D`````GOP`+BA/$ XM=!9"7%'*__PNB"])``0O2@`0+TL`%#]\__\`'"!/3J[_4M[\`"Y,WQP$3G5.\ XM<0```^P````!`````````>@````````#[P$```)?0V5N=&5R```````!```"" XM2G5M<$ET``````'F`0```E]39713:7IE````$@$```-?4V5T3&]C871I;VX`# XM```@`0``!%]296%D3&]C871I;VX````````Z`0```E]&;W)M870`````5`$`3 XM``1?1FEL95)E<75E<W1E<@``````;@$```1?0V]L;W)297%U97-T97(`````T XM>@$```9?17AT96YD961#;VQO<E)E<75E<W1E<@````"&`0```E]$<F%W0F]XO XM````D@$```-?36%K94)U='1O;@````"P`0``!%]-86ME4V-R;VQL0F%R````% XM``#0`0```U]0=7)G949I;&5S`````.X!```&7T=E=$9O;G1(96EG:'1!;F17W XM:61T:```````^@$```-?36%K94=A9&=E=`````$"`0```U]-86ME4W1R:6YGK XM`````1(!```#7TUA:V50<F]P```````!)`$```-?3&EN:T=A9&=E=`````$VN XM`0``!5],:6YK4W1R:6YG1V%D9V5T```````!5@$```1?3&EN:U!R;W!'861G3 XM970````!=@$```-?1V5T4W1R:6YG``````&6`0``!%]296%L5&EM95-C<F]L; XM;`````&V`0```U]497AT4F5Q=65S=````<`!```"7T=E=$QO;F<```'*`0``S XM!%]287=+97E4;T%S8VEI``````'4`0```U-T86-K0VQE86YU<````@8!```$& XM7U-I;7!L95)E<75E<W0``````B`!```$4VEM<&QE4F5Q=65S=````````D0!S XM```$7U1W;T=A9%)E<75E<W0``````BH!```$5'=O1V%D4F5Q=65S=```````R XM`C:!```"7U)E<4)A<V4````,````+````$8```!@````H@```,(```#@```!@ X=2````6@```&(```!J````?8```)0`````````_)@! X`` Xend Xsize 1424 END_OF_FILE if test 2034 -ne `wc -c <'lreqglue.o.uu'`; then echo shar: \"'lreqglue.o.uu'\" unpacked with wrong size! fi # end of 'lreqglue.o.uu' fi if test -f 'macros.i' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'macros.i'\" else echo shar: Extracting \"'macros.i'\" \(1927 characters\) sed "s/^X//" >'macros.i' <<'END_OF_FILE' X;------------------------------------------------------ X X; This is a REALLY handly macro, that allows you to pop up messages at debugging X;points in your code. This was necessary to allow working on a multithreaded X; program, since you don't have a way of tracing the new threads. X X; If you don't define 'Debug', then this macro assembles to nothing, otherwise X;you get the requester. X; X; If you wish to display multiple paramters, simply push them on the stack X;IN REVERSE ORDER of how you wish to display them, then put the stack pointer in X;A1 X X; To use this macro, you MUST link with lreqglue.o or areqglue.o. X; X X; MOVE.L Val2,-(SP) X; MOVE.W Val1,-(SP) X; MOVE.L String,-(SP) X; MOVE.L SP,A1 X; showf <%s is a string, Val1: %d is a word, Val2: %ld is a long.> X; LEA 10(SP),SP X Xshowf MACRO X IFD Debug X X IFD .A68K X MOVEM.L D0-A6,-(SP) X LEA \\@showftext,A0 X CALL SimpleRequest X BRA \\@around X X\\@showftext DC.B "\1",0 X EVEN X\\@around X MOVEM.L (SP)+,D0-A6 X ENDC X X IFND .A68K X MOVEM.L D0-A6,-(SP) X LEA \@showftext,A0 X CALL SimpleRequest X BRA \@around X X\@showftext DC.B "\1",0 X EVEN X\@around X MOVEM.L (SP)+,D0-A6 X ENDC X X ENDC X ENDM X X; The reason for two definitions is the difference between A68K (the PD X;assembler),which allows named local labels, and the Aztec assembler which X;doesn't. X; If you have a local label, and then this macro, and then a reference to that X;local variable, then under the Aztec version you would get an error, because X;the showf version (under Aztec) uses GLOBAL labels, which break up locals. X; That means that if you wish to use this macro while under Aztec, you can't use X;local labels in the same function. X X;------------------------------------------------------------------------- X XCALL MACRO X public \1 X JSR \1 X ENDM X XLOADLIB MACRO X MOVE.L _\1Base,A6 X ENDM X XSYS MACRO X XREF _LVO\1 X JSR _LVO\1(A6) X ENDM X XPUSH MACRO X MOVEM.L \1,-(SP) X ENDM X XPULL MACRO X MOVEM.L (SP)+,\1 X ENDM X XAllRegs REG D0-A6 X END_OF_FILE if test 1927 -ne `wc -c <'macros.i'`; then echo shar: \"'macros.i'\" unpacked with wrong size! fi # end of 'macros.i' fi if test -f 'read.me' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'read.me'\" else echo shar: Extracting \"'read.me'\" \(5233 characters\) sed "s/^X//" >'read.me' <<'END_OF_FILE' X X X============================================================================= XOfficial release of version 1.2, October '89 X X XReq.library is Copyright (c)1989, 1990 by C.W. Fox and Bruce Dawson. It is Xfreely distributable. No charge may be made for it's distribution, except Xfor a nominal media fee. X X Feel free to distribute and use this library with your programs, along Xwith a notice that the library is 'FreeWare'. X X============================================================================= X X Hello! This is the introduction to the all-new "req.library"! X X What is it? X X Req.library adds user-friendliness to the Amiga's user interface. XWhile Intuition does supply requesters, they have certain limitations and Xare awkward to set up. We designed ours to be quick and easy to set up, as Xwell as adding features. The text requester has PRINTF style formatting Xbuilt in! There is a colour requester, a very powerful file requester, a Xstring requester (allowing the user to enter a line of text), and an Xinteger requester (allowing the user to enter an integer number). There Xare also low-level support routines, such as routines to create any of the XAmiga's gadgets, as well as a real-time scroll routine. X X The nice thing about the gadget creation routines, is that they allow Xyou to create gadgets from parameters, meaning that you can allocate memory Xand have your gadgets constructed there. This allows you to use gadgets in Xcode that is meant to be re-entrant. This normally wouldn't be possible Xwith gadgets. The size necessary for each gadget has been defined, and you Xwill find the definitions in reqbase.i and reqbase.h. X X (Please see req.doc for a more comprehensive explanation). X X Here is an overview of the files included in this ZOO archive: X X areqglue.o Gluecode for Aztec C. Link in with your programs. X lreqglue.o Gluecode for Lattice C. Link in with your programs. X reqglue.asm Sourcecode for the gluecode. X customizefile.asm How to customize the file requester. X customizefile The executable of the file requester customizer. X reqbase.h The C include file. Put it in include/libraries X reqbase.i The asm include file. Put it in include/libraries X showoffreq.c The C source code for the req demo program. X showoffreq The req demo executable. X req.library The actual library. This goes in libs: X reqproto.h The prototype file for Lattice C X req.doc The instructions and calling conventions. X read.me This file X macros.i Some handy macros. X X----------------------------------------------------------------------------- X Included is a demo program called Showoffreq, which opens a screen with Xtext gadgets in it, one per requester. If you wish to experiment with the Xrequesters, this might be a good place to start. X X XTo compile showoffreq.c under Lattice, use: X X lc -Lcd+lib:lreqglue.o showoffreq X X X X XTo compile showoffreq.c under Aztec, use: X X cc -o o/showoffreq.o showoffreq.c X X ln -w +Q -o showoffreq o/showoffreq.o lib:areqglue.o -lc X X----------------------------------------------------------------------------- X X For Assembly X X----------------------------------------------------------------------------- X X To use req.library from assembly language is quite easy. So far, Xnothing's been said about it, so here is some info. X X First of all, the library is EXACTLY like system libraries; you open Xit, call functions, and then close it. We've included some macros that may Xmake working with it a bit easier. All you have to include to actually use Xthe req.library is reqbase.i. This contains all the function offsets. You Xmay wish to call the functions directly, or use a bit of gluecode to make Xthings even easier. If you wish to do it all yourself, then all you've got Xto do is include reqbase.i. If you wish to use some pre-made function Xsetup, then you have to link with the appropriate reqglue.o (lreqglue.o for XLattice, and areqglue.o for Aztec). X X X X X X\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ X X To link with lreqglue.o (for Lattice), an example linkfile might look like Xthis: X X---cut here---cut here---cut here---cut here---cut here---cut here---cut here X XFROM Xlib:startup.o Xobj/file1.o Xobj/file2.o Xobj/data.o Xobj/menus.o X XLIB Xlib:amiga.lib (or lib:lvo.lib if you have it) Xlib:lreqglue.o X XTO Xfile X Xnodebug smallcode smalldata X XBATCH X X---cut here---cut here---cut here---cut here---cut here---cut here---cut here X Xand to use this linkfile, just say: X X blink with <linkfile> X X X X X\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ X XTo link with areqglue.o (for Aztec), and example linkfile might look like this: X X X X---cut here---cut here---cut here---cut here---cut here---cut here---cut here X Xln -w +Q -o file1 o/file1.o lib:areqglue.o -lc X X---cut here---cut here---cut here---cut here---cut here---cut here---cut here X Xand to use this linkfile, just say: X X ln -f <linkfile> X X END_OF_FILE if test 5233 -ne `wc -c <'read.me'`; then echo shar: \"'read.me'\" unpacked with wrong size! fi # end of 'read.me' fi if test -f 'read.me.uu' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'read.me.uu'\" else echo shar: Extracting \"'read.me.uu'\" \(3646 characters\) sed "s/^X//" >'read.me.uu' <<'END_OF_FILE' Xbegin 666 read.me.info XMXQ```0``````BP`3`&(`'0`&``,``0`DRN``),KX````````````````````/ XM````!```)+S8`````````(<````(``````````````````````!B`!T``P`!. XM?<#_`````````````````````````````````$5555550```````````15_5. XM555```````````!%5M55544``````````$569]?51P``````````159G9V5'3 XM``````````!%5F9F14<``````````$56QF9U1P``````````15_'Q\5'````T XM``````!%5!4%!4<``````````$5555551P``````````1?UU=55'````````G XM``!%S%%Q54<``````````$7$=7%]1P``````````1?5Q<<U'``````````!%7 XMP7%Q_$<``````````$7%<7'`1P``````````1>5Y>7U'``````````!%!4%!% XM04<``````````$5555551P``````````1555555'``````````!%555554<`H XM`````````$5555551P``````````15550`%'``````````!%555554<`````W XM````````````!P``````````+_______```````````55555554`````````O XM```````````````````!_______X``````````'_______@``````````?_P8 XM?____\`````````!__D_____P`````````'_^9P\/_O``````````?_YF9F?& XM^\`````````!__F9F?_[P`````````'_^3F9G_O``````````?_P?#P_^\``G XM```````!_______[P`````````'_______O``````````?X#SX__^\``````( XM```!_S/_S__[P`````````'_/X_/A_O``````````?\/S\\S^\`````````!V XM_S_/SP/[P`````````'_/\_//_O``````````?X?AX>'^\`````````!____= XM___[P`````````'_______O``````````?______^\`````````!_______[> XMP`````````'_______O``````````?______^\`````````!_______[P```E XM``````'_______O``````````?@``````\``````````________P```````M XM``!________`````````````````````````````````````````````````Z XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM`````````````````````&(`'0`#``&"B/\`````````````````````````, XM*JJJJJJH!5555555```W______Z_______L``#?______K______^P``-___K XM___^O______[```WZJJJJN`#ZJJJJKL``#?______K______^P``-______^O XMOZJJJJJ[```W______Z_______L``#?55555?K^JJJJJNP``-______^O___B XM___[```W555557Z_JJJJJKL``#?______K______^P``-U55555^OZJJJJJ[V XM```W_____^`#______L``#=55555?K^JJJJJNP``-______^O______[```W6 XMU55557Z_JJJJJKL``#?______K______^P``-U55555^OZJJJJJ[```W____Z XM__Z_______L``#=55555?K^JJJJJNP``-______^O______[```W_____^`#; XM______L``#?__U___K___K__^P``-______^O______[```P``````"`````4 XM``,``"JJJJJJJ`55555550````````````````````#_______X?_______`^ XM`/_______________\``^``````!P``````'P`#X``````'```````?``/@`L XM`````<``````!\``^``````?_!55555'P`#X``````'```````?``/@`````N XM`<!555551\``^``````!P``````'P`#X*JJJJH'`555554?``/@``````<``1 XM````!\``^*JJJJJ!P%55555'P`#X``````'```````?``/BJJJJJ@<!55555X XM1\``^``````?_``````'P`#XJJJJJH'`555554?``/@``````<``````!\``= XM^"JJJJJ!P%55555'P`#X``````'```````?``/BJJJJJ@<!555551\``^```P XM```!P``````'P`#XJJJJJH'`555554?``/@``````<``````!\``^``````?; XM_``````'P`#X``"@``'```%```?``/@``````<``````!\``____________; XM____P`#________________``/_______A_______\``````````````````$ XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM`````````````````````````````````````````````````!`Z571I;&ET% X):65S+TUO<F4`# X`` Xend Xsize 2574 END_OF_FILE if test 3646 -ne `wc -c <'read.me.uu'`; then echo shar: \"'read.me.uu'\" unpacked with wrong size! fi # end of 'read.me.uu' fi if test -f 'req.doc.uu' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'req.doc.uu'\" else echo shar: Extracting \"'req.doc.uu'\" \(3646 characters\) sed "s/^X//" >'req.doc.uu' <<'END_OF_FILE' Xbegin 666 req.doc.info XMXQ```0``````&P`3`&(`'0`&``,``0`DB6@`)+4(````````````````````A XM````!```))=0`````````!<````(``````````````````````!B`!T``P`!Q XM=##_`````````````````````````````````$5555550```````````15_5U XM555```````````!%5M55544``````````$569]?51P``````````159G9V5'3 XM``````````!%5F9F14<``````````$56QF9U1P``````````15_'Q\5'````T XM``````!%5!4%!4<``````````$5555551P``````````1?UU=55'````````G XM``!%S%%Q54<``````````$7$=7%]1P``````````1?5Q<<U'``````````!%7 XMP7%Q_$<``````````$7%<7'`1P``````````1>5Y>7U'``````````!%!4%!% XM04<``````````$5555551P``````````1555555'``````````!%555554<`H XM`````````$5555551P``````````15550`%'``````````!%555554<`````W XM````````````!P``````````+_______```````````55555554`````````O XM```````````````````!_______X``````````'_______@``````````?_P8 XM?____\`````````!__D_____P`````````'_^9P\/_O``````````?_YF9F?& XM^\`````````!__F9F?_[P`````````'_^3F9G_O``````````?_P?#P_^\``G XM```````!_______[P`````````'_______O``````````?X#SX__^\``````( XM```!_S/_S__[P`````````'_/X_/A_O``````````?\/S\\S^\`````````!V XM_S_/SP/[P`````````'_/\_//_O``````````?X?AX>'^\`````````!____= XM___[P`````````'_______O``````````?______^\`````````!_______[> XMP`````````'_______O``````````?______^\`````````!_______[P```E XM``````'_______O``````````?@``````\``````````________P```````M XM``!________`````````````````````````````````````````````````Z XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM`````````````````````&(`'0`#``%X^/\`````````````````````````R XM*JJJJJJH!5555555```W______Z_______L``#?______K______^P``-___K XM___^O______[```WZJJJJN`#ZJJJJKL``#?______K______^P``-______^O XMOZJJJJJ[```W______Z_______L``#?55555?K^JJJJJNP``-______^O___B XM___[```W555557Z_JJJJJKL``#?______K______^P``-U55555^OZJJJJJ[V XM```W_____^`#______L``#=55555?K^JJJJJNP``-______^O______[```W6 XMU55557Z_JJJJJKL``#?______K______^P``-U55555^OZJJJJJ[```W____Z XM__Z_______L``#=55555?K^JJJJJNP``-______^O______[```W_____^`#; XM______L``#?__U___K___K__^P``-______^O______[```P``````"`````4 XM``,``"JJJJJJJ`55555550````````````````````#_______X?_______`^ XM`/_______________\``^``````!P``````'P`#X``````'```````?``/@`L XM`````<``````!\``^``````?_!55555'P`#X``````'```````?``/@`````N XM`<!555551\``^``````!P``````'P`#X*JJJJH'`555554?``/@``````<``1 XM````!\``^*JJJJJ!P%55555'P`#X``````'```````?``/BJJJJJ@<!55555X XM1\``^``````?_``````'P`#XJJJJJH'`555554?``/@``````<``````!\``= XM^"JJJJJ!P%55555'P`#X``````'```````?``/BJJJJJ@<!555551\``^```P XM```!P``````'P`#XJJJJJH'`555554?``/@``````<``````!\``^``````?; XM_``````'P`#X``"@``'```%```?``/@``````<``````!\``____________; XM____P`#________________``/_______A_______\``````````````````$ XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM`````````````````````````````````````````````````!`Z571I;&ET% X):65S+TUO<F4`# X`` Xend Xsize 2574 END_OF_FILE if test 3646 -ne `wc -c <'req.doc.uu'`; then echo shar: \"'req.doc.uu'\" unpacked with wrong size! fi # end of 'req.doc.uu' fi if test -f 'req.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'req.h'\" else echo shar: Extracting \"'req.h'\" \(646 characters\) sed "s/^X//" >'req.h' <<'END_OF_FILE' X/* Prototypes for the req.library for use with Lattice. */ X X#ifndef __NOPROTO X#ifndef __PROTO X#define __PROTO(a) a X#endif X#else X#ifndef __PROTO X#define __PROTO(a) () X#endif X#endif X X Xvoid __stdargs SimpleRequest __PROTO((char *,...)); Xint __stdargs TwoGadRequest __PROTO((char *,...)); Xint __stdargs FileRequester __PROTO((struct FileRequester *)); Xvoid __stdargs Center __PROTO((struct NewWindow *,int,int)); Xvoid __stdargs PurgeFiles __PROTO((struct FileRequester *)); Xvoid __stdargs ColorRequester __PROTO((long)); Xint __stdargs TextRequest __PROTO((struct TRStructure *)); Xchar __stdargs RawKeyToAscii __PROTO((short,short,char *)); X END_OF_FILE if test 646 -ne `wc -c <'req.h'`; then echo shar: \"'req.h'\" unpacked with wrong size! fi # end of 'req.h' fi if test -f 'reqbase.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'reqbase.h'\" else echo shar: Extracting \"'reqbase.h'\" \(13008 characters\) sed "s/^X//" >'reqbase.h' <<'END_OF_FILE' X X/* reqlibrary.h (c) 1988/1989 reserved by Colin Fox and Bruce Dawson */ X X#ifndef REQLIBRARY_H X#define REQLIBRARY_H X X#define REQVERSION 1 X X X#define NUMPAIRS 10 X Xstruct GadgetBlock X { X struct Gadget Gadget; X struct Border Border; X WORD Pairs[NUMPAIRS]; X struct IntuiText Text; X }; X Xstruct StringBlock X { X struct Gadget Gadget; X struct StringInfo Info; X struct Border Border; X WORD Pairs[NUMPAIRS]; X }; X Xstruct PropBlock X { X struct Gadget Gadget; X struct PropInfo Info; X struct Image Image; X }; X Xstruct ScrollBlock X { X struct Gadget ArrowUpLt; X struct Image ImageUpLt; X struct Gadget ArrowDnRt; X struct Image ImageDnRt; X struct PropBlock Prop; X }; X Xstruct TwoImageGadget X { X struct Gadget Gadget; X struct Image Image1; X struct Image Image2; X }; X X#define ATTITUDEB 16 X X#define HORIZSLIDER (0L<<ATTITUDEB) /*;which way the slider stands*/ X#define VERTSLIDER (1L<<ATTITUDEB) /*;This is so that it bypasses all gadget flags.*/ X X X X/*; This structure is use with the TextRequester function.*/ X Xstruct TRStructure X { X char *Text; /* ;This is the message text, including printf() style formatting if desired.*/ X char *Controls; /* ;This is the address of the parameter list, if printf() style formatting is used.*/ X struct Window *Window;/* ;This is an optional (zero if not used) pointer to a window on the screen you*/ X /* ;would like the requester to show up on.*/ X char *MiddleText; /* ;If non-zero, this is the text for the gadget in the lower middle (returns 2).*/ X char *PositiveText; /* ;If non-zero, this is the text for the gadget in the lower left hand corner (returns 1).*/ X char *NegativeText; /* ;If non-zero, this is the text for the gadget in the lower right (returns 0).*/ X char *Title; /* ;This is the title for the window.*/ X WORD KeyMask; /* ;This is the qualifier mask for the keyboard shortcuts.*/ X /* ;Use $FFFF to allow any qualifiers (or none).*/ X /* ;Zero means that no keyboard shortcuts are allowed.*/ X WORD textcolor; /* ;Color of the text. Uses color 1 if no color specified. */ X WORD detailcolor; /* ;Detail and block color, as in a NewWindow structure. If */ X WORD blockcolor; /* ;both are left zero, block pen will be set to 1. */ X WORD versionnumber; /* ;Make SURE this is set to zero. */ X LONG rfu1; /* ;Make SURE you leave these two zeroed also. */ X LONG rfu2; /* ;Make SURE you leave these two zeroed also. */ X }; X X/* NOTE: X X The control values mentioned above are used if you choose to insert Xprintf style directives in your strings and should contain the address of Xa list of control parameters, usually on the stack. X */ X X X X/*; Remember, if you don't want to go through the hassle of */ X/*; initializing a ExtendedColorRequester structure, you can always just call */ X/*; ColorRequester (as opposed to ExtendedColorRequester). ColorRequester */ X/*; just takes a single parameter, in D0, the color that should start out */ X/*; being highlit. It returns a single value, the color that was selected at */ X/*; the end. X X/*; This structure is for use with the ExtendedColorRequester (_not_, */ X/*; the ColorRequester) function. */ X Xstruct ExtendedColorRequester X { X LONG defcolor; /*;The color that is initially highlit. */ X APTR window; /*;The window the 'requester' opens up in. */ X LONG rfu1; /*;Who knows what these will be used for, */ X LONG rfu2; /*;but I'm sure we'll think of something. */ X LONG rfu3; /*;Until then, just keep these zeroed. */ X LONG rfu4; /*;Okay? */ X LONG rfu5; X }; X X X X/*; This structure is for use with the GetLong function.*/ X X#define GLNODEFAULTB 0 /*;Set this bit in the flags if you don't want a default*/ X /*;value to show up in the get long string gadget. For*/ X /*;some things this is much better than having a zero*/ X /*;show up.*/ X X#define GLNODEFAULTM (1<<GLNODEFAULTB) X Xstruct GetLongStruct X { X char *titlebar; X LONG defaultval; X LONG minlimit; X LONG maxlimit; X LONG result; X struct Window *window; X WORD versionnumber; /* ;Make SURE this is set to zero. */ X LONG flags; /* Some, uh flags. See above for bit definitions. */ X LONG rfu2; /* ;Make SURE you leave these two zeroed also. */ X }; X X X X#ifndef DSIZE X#define DSIZE 130 X#define FCHARS 30 X#endif X#define WILDLENGTH 30 X X#define FRQSHOWINFOB 0 /*;Set this in Flags if you want .info files to show. They default to hidden.*/ X#define FRQEXTSELECTB 1 /*;Set this in Flags if you want extended select. Default is not.*/ X#define FRQCACHINGB 2 /*;Set this in Flags if you want directory caching. Default is not.*/ X#define FRQGETFONTSB 3 /*;Set this in Flags if you want a font requester rather than a file requester.*/ X#define FRQINFOGADGETB 4 /*;Set this in Flags if you want a hide-info files gadget.*/ X#define FRQHIDEWILDSB 5 /*;Set this in Flags if you DON'T want 'show' and 'hide' string gadgets.*/ X#define FRQABSOLUTEXYB 6 /*;Use absolute x,y positions rather than centering on mouse.*/ X#define FRQCACHEPURGEB 7 /*;Purge the cache whenever the directory date stamp changes if this is set.*/ X#define FRQNOHALFCACHEB 8 /*;Don't cache a directory unless it is completely read in when this is set.*/ X#define FRQNOSORTB 9 /*;Set this in Flags if you DON'T want sorted directories.*/ X#define FRQNODRAGB 10 /*;Set this in Flags if you DON'T want a drag bar and depth gadgets.*/ X#define FRQSAVINGB 11 /*;Set this bit if you are selecting a file to save to.*/ X#define FRQLOADINGB 12 /*;Set this bit if you are selecting a file(s) to load from.*/ X /*;These two bits (save and load) aren't currently used for*/ X /*;anything, but they may be in the future, so you should*/ X /*;remember to set them. Also, these bits make it easier if*/ X /*;somebody wants to customize the file requester for their*/ X /*;machine. They can make it behave differently for loading*/ X /*;vs saving.*/ X X#define FRQSHOWINFOM (1<<FRQSHOWINFOB) X#define FRQEXTSELECTM (1<<FRQEXTSELECTB) X#define FRQCACHINGM (1<<FRQCACHINGB) X#define FRQGETFONTSM (1<<FRQGETFONTSB) X#define FRQINFOGADGETM (1<<FRQINFOGADGETB) X#define FRQHIDEWILDSM (1<<FRQHIDEWILDSB) X#define FRQABSOLUTEXYM (1<<FRQABSOLUTEXYB) X#define FRQCACHEPURGEM (1<<FRQCACHEPURGEB) X#define FRQNOHALFCACHEM (1<<FRQNOHALFCACHEB) X#define FRQNOSORTM (1<<FRQNOSORTB) X#define FRQNODRAGM (1<<FRQNODRAGB) X#define FRQSAVINGM (1<<FRQSAVINGB) X#define FRQLOADINGM (1<<FRQLOADINGB) X Xstruct ESStructure X { X struct ESStructure *NextFile; X WORD NameLength; /* Length of thefilename field, not including the terminating zero. */ X WORD Pad; X APTR Node; /* For internal use only. */ X char thefilename[1]; /* This is a variable size field. */ X }; X Xstruct FileRequester X { X UWORD VersionNumber; /* Make sure this is zeroed for now. */ X X char *Title; /* Hailing text */ X char *Dir; /* Directory array (DSIZE+1) */ X char *File; /* Filename array (FCHARS+1) */ X X char *PathName; /* Complete path name array (DSIZE+FCHARS+2) */ X X struct Window *Window; /* Window requesting or NULL */ X X X UWORD MaxExtendedSelect; /* Zero implies a maximum of 65535, as long as FRQEXTSELECT is set.*/ X UWORD numlines; /* Number of lines in file window. */ X UWORD numcolumns; /* Number of columns in file window. */ X UWORD devcolumns; X ULONG Flags; /* Various - umm - flags. See above for more info. */ X UWORD dirnamescolor; /* These five colors will all default */ X UWORD filenamescolor; /* to color one if you don't specify */ X UWORD devicenamescolor; /* a color (ie; if you specify color zero). */ X UWORD fontnamescolor; /* If you want color zero to be used, specify */ X UWORD fontsizescolor; /* color 32, or some other too large number */ X /* which mods down to zero. */ X X UWORD detailcolor; /* If both of these colors are specified as */ X UWORD blockcolor; /* zero then the block pen will be set to one. */ X X UWORD gadgettextcolor; /* The color for the text of the five boolean gadgets. Defaults to 1. */ X UWORD textmessagecolor; /* The color for the message at the screen top. Defaults to 1. */ X UWORD stringnamecolor; /* The color for the words Drawer, File, Hide and Show. Defaults to 3. */ X UWORD stringgadgetcolor; /* The color for the borders of the string gadgets. Defaults to 3. */ X /* Unfortunately it is not possible to specify */ X /* the color of the actual text in an Intuition */ X /* string gadget. */ X UWORD boxbordercolor; /* The color for the boxes around the file and directory areas. Defaults to 3. */ X UWORD gadgetboxcolor; /* The color for the boxes around the five boolean gadgets. Defaults to 3. */ X X UWORD FRU_Stuff[18]; /* This area, which is reserved for */ X /* future use, should all be zero. */ X X struct DateStamp DirDateStamp; /* A copy of the cached directories date stamp. */ X /* There should never be any need to change this. */ X X UWORD WindowLeftEdge; /* These two fields are only used when the */ X UWORD WindowTopEdge; /* FRQABSOLUTEXY flag is set. They specify */ X /* the location of the upper left hand */ X /* corner of the window. */ X X UWORD FontYSize; /* These fields are used to return the selected */ X UWORD FontStyle; /* font size and style, only applicable when the */ X /* font bit is set. */ X X /*If you set the extended select bit and the user extended selects, the list of filenames will start from here.*/ X struct ESStructure *ExtendedSelect; X char Hide[WILDLENGTH+2]; /* The wildcards text. */ X char Show[WILDLENGTH+2]; /* More wildcards text. */ X WORD FileBufferPos; /* Various fields taken from the various */ X WORD FileDispPos; /* string gadgets so that the cursor */ X WORD DirBufferPos; /* can be returned to the same position */ X WORD DirDispPos; /* on subsequent calls. */ X WORD HideBufferPos; X WORD HideDispPos; X WORD ShowBufferPos; X WORD ShowDispPos; X X/**; The following fields are PRIVATE! Don't go messing with them or X; wierd things may/will happen. If this isn't enough of a warning, go read X; the one in intuition.h, that should scare you off.**/ X X APTR Memory; /* Memory allocate for dir entries. */ X APTR Memory2; /* More memory, used for hidden files. */ X APTR Lock; X char PrivateDirBuffer[DSIZE+2]; /* Used for keeping a record of which */ X /* directory we have file names for. */ X struct FileInfoBlock *FileInfoBlock; X WORD NumEntries; X WORD NumHiddenEntries; X WORD filestartnumber; X WORD devicestartnumber; X }; X X X X/* This is used with the RealTimeScroll function. */ X Xstruct ScrollStruct X { X ULONG TopEntryNumber; /*;This is the ordinal number of the first*/ X /*;displayed entry.*/ X ULONG NumEntries; /*;This is the total number of entries in*/ X /*;the list.*/ X UWORD LineSpacing; /*;This is how many pixels high each entry is.*/ X ULONG NumLines; /*;This is how many entries can be displayed simultaneously.*/ X struct Gadget *PropGadget; /*;This is a pointer to the prop gadget being monitored.*/ X X void (*RedrawAll)(); /*;This routine is used to redraw all of the*/ X /*;entries when the user moves far enough*/ X /*;that scrolling will take too long.*/ X X void (*ReadMore)(); /*;An optional routine that is called when*/ X /*;the scroll routine is waiting for movement.*/ X /*;This allows reading of new data while real*/ X /*;time scrolling.*/ X void (*ScrollAndDraw)(); /*;This routine is called when the data needs*/ X /*;to be scrolled and updated. This routine is*/ X /*;passed four long parameters (on the stack and*/ X /*;in D0-D3) which are, respectively:*/ X /*;D0 - entry number of first line to be drawn.*/ X /*;D1 - pixel offset to draw first line at.*/ X /*;D2 - amount to scroll before doing any drawing.*/ X /*;D3 - number of lines of data to draw.*/ X WORD versionnumber; /*;Make SURE this is set to zero. */ X LONG rfu1; /*;Make SURE you leave these two zeroed also. */ X LONG rfu2; /*;Make SURE you leave these two zeroed also. */ X }; X X X X X Xstruct chipstuff X { X char ArrowUp[20]; /* 16 pixels wide, 10 pixels high. */ X char ArrowDown[20]; /* 16 pixels wide, 10 pixels high. */ X char ArrowLeft[18]; /* 16 pixels wide, 9 pixels high. */ X char ArrowRight[18]; /* 16 pixels wide, 9 pixels high. */ X char Letter_R[20]; /* 16 pixels wide, 10 pixels high. */ X char Letter_G[20]; /* 16 pixels wide, 10 pixels high. */ X char Letter_B[20]; /* 16 pixels wide, 10 pixels high. */ X char Letter_H[20]; /* 16 pixels wide, 10 pixels high. */ X char Letter_S[20]; /* 16 pixels wide, 10 pixels high. */ X char Letter_V[20]; /* 16 pixels wide, 10 pixels high. */ X }; X Xstruct ReqLib X { X struct Library RLib; X struct AbsExecBase *SysLib; X struct DosBase *DosLib; X struct IntuitionBase *IntuiLib; X struct GfxBase *GfxLib; X APTR SegList; X struct chipstuff *Images; X BYTE Flags; X BYTE Pad; X char *ConsoleDev; /* Not really a char*, but it should work */ X struct IOStdReq *ConsoleHandle; X }; X X X#endif END_OF_FILE if test 13008 -ne `wc -c <'reqbase.h'`; then echo shar: \"'reqbase.h'\" unpacked with wrong size! fi # end of 'reqbase.h' fi if test -f 'reqglue.asm' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'reqglue.asm'\" else echo shar: Extracting \"'reqglue.asm'\" \(5221 characters\) sed "s/^X//" >'reqglue.asm' <<'END_OF_FILE' X X include "libraries/reqbase.i" X X xref _ReqBase X X X XGLUE MACRO X XDEF _\1 X_\1 X ENDM X XNEWSYS MACRO X PEA _LVO\1 ;4 X BRA JumpIt ;2 to 4. X ENDM X XSTACKOFFSET EQU 4 X X X XGLUE2 MACRO X XDEF _\1 X_\1 X MOVEM.L D2-D4/A2-A3/A6,-(SP) X ENDM X XNEWSYS2 MACRO X MOVE.L _ReqBase,A6 X JSR _LVO\1(A6) X MOVEM.L (SP)+,D2-D4/A2-A3/A6 X RTS X ENDM X XSTACKOFFSET2 EQU 28 X X X X GLUE Center X MOVE.L STACKOFFSET(SP),A0 X MOVEM.L STACKOFFSET+4(SP),D0-D1 X NEWSYS Center X X GLUE SetSize X MOVEM.L STACKOFFSET(SP),D0-D1 X NEWSYS SetSize X X GLUE2 SetLocation X MOVEM.L STACKOFFSET2(SP),D0-D2 X NEWSYS2 SetLocation X X GLUE2 ReadLocation X MOVEM.L STACKOFFSET2(SP),D0-D2 X NEWSYS2 ReadLocation X X GLUE2 Format X MOVEM.L STACKOFFSET2(SP),A0-A2 X NEWSYS2 Format X X GLUE FileRequester X MOVE.L STACKOFFSET(SP),A0 X NEWSYS FileRequester X X GLUE ColorRequester X MOVE.L STACKOFFSET(SP),D0 X NEWSYS ColorRequester X X GLUE ExtendedColorRequester X MOVE.L STACKOFFSET(SP),A0 X NEWSYS ExtendedColorRequester X X GLUE2 DrawBox X MOVE.L STACKOFFSET2(SP),A0 X MOVEM.L STACKOFFSET2+4(SP),D0-D3 X NEWSYS2 DrawBox X X GLUE2 MakeButton X MOVEM.L STACKOFFSET2(SP),A0-A2 X MOVEM.L STACKOFFSET2+12(SP),D0-D2 X NEWSYS2 MakeButton X X GLUE2 MakeScrollBar X MOVE.L STACKOFFSET2(SP),A0 X MOVEM.L STACKOFFSET2+4(SP),D0-D3 X NEWSYS2 MakeScrollBar X X GLUE PurgeFiles X MOVE.L STACKOFFSET(SP),A0 X NEWSYS PurgeFiles X X GLUE GetFontHeightAndWidth X NEWSYS GetFontHeightAndWidth X X GLUE MakeGadget X MOVEM.L STACKOFFSET(SP),D0/A0-A1 X EXG.L D0,A0 ;Parameter are on the stack in the order A0,D0,A1. X NEWSYS MakeGadget X X GLUE MakeString X MOVE.L STACKOFFSET(SP),A0 X MOVEM.L STACKOFFSET+4(SP),D0-D1 X NEWSYS MakeString X X GLUE MakeProp X MOVE.L STACKOFFSET(SP),A0 X MOVEM.L STACKOFFSET+4(SP),D0-D1 X NEWSYS MakeProp X X GLUE2 LinkGadget X MOVEM.L STACKOFFSET2(SP),A0-A1/A3 X MOVEM.L STACKOFFSET2+12(SP),D0-D1 X NEWSYS2 LinkGadget X X GLUE2 LinkStringGadget X MOVEM.L STACKOFFSET2(SP),A0-A3 X MOVEM.L STACKOFFSET2+16(SP),D0-D3 X NEWSYS2 LinkStringGadget X X GLUE2 LinkPropGadget X MOVEM.L STACKOFFSET2(SP),A0/A3 X MOVEM.L STACKOFFSET2+8(SP),D0-D4 X NEWSYS2 LinkPropGadget X X GLUE2 GetString X MOVEM.L STACKOFFSET2(SP),A0-A2 X MOVEM.L STACKOFFSET2+12(SP),D0-D1 X NEWSYS2 GetString X X GLUE RealTimeScroll X MOVE.L STACKOFFSET(SP),A0 X NEWSYS RealTimeScroll X X GLUE TextRequest X MOVE.L STACKOFFSET(SP),A0 X NEWSYS TextRequest X X GLUE GetLong X MOVE.L STACKOFFSET(SP),A0 X NEWSYS GetLong X X GLUE RawKeyToAscii X MOVEM.L STACKOFFSET(SP),D0-D1 X MOVE.L STACKOFFSET+8(SP),A0 X NEWSYS RawKeyToAscii X X X; These routines are a little bit more work to write glue code for X; because they use register beyond the scratch register D0-D1/A0-A1. X; Therefore these registers have to be saved before values can be loaded X; into them. X X X X; This code was designed to minimize the overhead of the individual X; pieces of glue code for the individual routines. With this 'helper' code, X; all the glue code for each routine has to do is load the registers from X; the stack (no way to avoid that), push the _LVO offset onto the stack X; (hard to avoid doing something like that) and then branch down to this X; routine. X X XDEF JumpIt,StackCleanup ;Make these visible to a debugger. X XJumpIt X PEA StackCleanup ;Push the address of the code that restores A6. X MOVE.L 4(sp),-(sp) ;Push the _LVO offset further down the stack X MOVE.L A6,8(sp) ;so that the old value of A6 can be stored X ;above it. X MOVE.L _ReqBase,A6 X MOVE.L D0,-(sp) X MOVE.L A6,D0 X ADD.L D0,4(sp) ;Add _ReqBase to the _LVO offset so when you go X ;return, you'll branch to the routine. X MOVE.L (sp)+,D0 X RTS XStackCleanup X MOVE.L (sp)+,A6 X RTS X X X X;;;;; The version of this code for Aztec is really simple, since Aztec X;;;;; doesn't currently expect you to preserve A6. X;;;; X;;;;JumpIt X;;;; MOVE.L _ReqBase,A6 X;;;; MOVE.L D0,-(sp) X;;;; MOVE.L A6,D0 X;;;; ADD.L D0,4(sp) ;Add _ReqBase to the _LVO offset so when you go X;;;; ;return, you'll branch to the routine. X;;;; MOVE.L (sp)+,D0 X;;;; RTS X X X X X X X XSureText DC.B " Ok ",0 XCancelText DC.B "Cancel",0 XResumeText DC.B "Resume",0 X X even X X X GLUE SimpleRequest X MOVE.L STACKOFFSET(SP),A0 X LEA STACKOFFSET+4(SP),A1 X BRA SimpleRequest X X GLUE TwoGadRequest X MOVE.L STACKOFFSET(SP),A0 X LEA STACKOFFSET+4(SP),A1 X BRA TwoGadRequest X X X XsrRegs REG A2-A4/D2 X X;---------------------------------------------------- X public TwoGadRequest XTwoGadRequest: X;Bool=TwoGadRequest(String,Controls) X; A0 A1 X X MOVEM.L srRegs,-(sp) X LEA.L SureText,A2 X LEA.L CancelText,A3 X BRA.S TheRequest X X public SimpleRequest XSimpleRequest: X X;SimpleRequest(Text,Controls) X; A0 A1 X; This is just a method of telling a user something. It just calls MultiRequest X; with no gadgets. X X MOVEM.L srRegs,-(sp) X SUBA.L A2,A2 X LEA.L ResumeText,A3 X XTheRequest X X MOVE.L _ReqBase,A6 ;Load A6 from the data segment _before_ tromping on A4. X X SUB.W #TR_SIZEOF,SP ;get some temporary storage. X X MOVE.L SP,A4 X MOVEQ #TR_SIZEOF/2-1,D2 ;because the stack is almost never clear. X1$ CLR.W (A4)+ X DBF D2,1$ X X MOVE.L A0,TR_Text(SP) X MOVE.L A1,TR_Controls(SP) X MOVE.L A2,TR_PositiveText(SP) X MOVE.L A3,TR_NegativeText(SP) X X MOVE.W #$FFFF,TR_KeyMask(SP) X X MOVE.L SP,A0 X JSR _LVOTextRequest(A6) X X ADD.W #TR_SIZEOF,SP X X MOVEM.L (sp)+,srRegs X RTS X X X X END END_OF_FILE if test 5221 -ne `wc -c <'reqglue.asm'`; then echo shar: \"'reqglue.asm'\" unpacked with wrong size! fi # end of 'reqglue.asm' fi if test -f 'reqproto.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'reqproto.h'\" else echo shar: Extracting \"'reqproto.h'\" \(642 characters\) sed "s/^X//" >'reqproto.h' <<'END_OF_FILE' X/* Prototypes for the req.library for use with Lattice. */ X X#ifndef __NOPROTO X#ifndef __PROTO X#define __PROTO(a) a X#endif X#else X#ifndef __PROTO X#define __PROTO(a) () X#endif X#endif X X Xvoid __stdargs SimpleRequest __PROTO((char *,...)); Xint __stdargs TwoGadRequest __PROTO((char *,...)); Xint __stdargs FileRequester __PROTO((struct FileRequester *)); Xvoid __stdargs Center __PROTO((struct NewWindow *,int,int)); Xvoid __stdargs PurgeFiles __PROTO((struct FileRequester *)); Xint __stdargs ColorRequester __PROTO((long)); Xint __stdargs TextRequest __PROTO((struct TRStructure *)); Xchar __stdargs RawKeyToAscii __PROTO((long,long,APTR)); X END_OF_FILE if test 642 -ne `wc -c <'reqproto.h'`; then echo shar: \"'reqproto.h'\" unpacked with wrong size! fi # end of 'reqproto.h' fi if test -f 'showoffreq.uu' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'showoffreq.uu'\" else echo shar: Extracting \"'showoffreq.uu'\" \(11126 characters\) sed "s/^X//" >'showoffreq.uu' <<'END_OF_FILE' Xbegin 666 showoffreq XM```#\P`````````"``````````$```<4```"O0```^D```<42.=^_B1()`!)> XM^0`````L>``$1_D```&(<@`@/````EM@`B;!4<C__"E/`<@I3@'`0JP!Q'``. XM(CP``#``3J[^SD/Z`5IP`$ZN_=@I0`H@9@9P9&```/PF;@$4*6L`F`&\2JL`E XMK&=H(`^0KP`$!H````"`*4`!C"!K`*S1R-'((F@`$-/)T\D@`G(`$ADI20'0F XMT(%2@$)G4H`"0/_^G\!5@$)W"``@`E.`U($?L@``(`!3@E'(__8?O``@(`!3> XM@A^Q(``@`%'*__@B3R\)8'(I:P`Z`8QP?U*`T:P!C$'K`%Q.KOZ`0>L`7$ZN+ XM_HPI0`'$+P`D0"`J`"1G$BQL"B`@0"(H```I00&\3J[_@B(J`"!G&B0\```#2 XM[4ZN_^(I0`',9PKEB"!`)V@`"`"D(&P!Q"\(2&P!B"!H`"0I:``$`=!.N@SZ> XM3KH56G``8`0@+P`$+P`@+`&T9P0@0$Z03KH40BQX``0B;`H@3J[^8DZZ#-!*_ XMK`'$9QHB+`',9P1.KO_<+'@`!$ZN_WPB;`'$3J[^AB`?+FP!R$S??WY.=61OA XM<RYL:6)R87)Y`$Y5_V!"+?]@0>W_8"E(`?Y![`-R*4@!]D'L`U0I2`'Z<`0IZ XM0`(.<`(Y0`(2.4`"%DAL`?!.N@I$6$]*@&<02&W_8$AZ`#1.N@OD4$]@"DAZ/ XM`$1.N@O86$].74YU4VAO=R!O9F8@<F5Q=65S=&5R(&QI8G)A<GDN`%EO=2!S3 XM96QE8W1E9"!T:&4@9FEL92`G)7,G+@!9;W4@9&ED;B=T('-E;&5C="!A(&9I2 XM;&4N`"`@("`@4VEM<&QE4F5Q=65S="@I("!I<R`@82`@=&EN>2!B:70@;V8*B XM9VQU92`@8V]D92`@=VAI8V@@('!A<W-E<R`@82!S:6YG;&4@=&5X=`IS=')I> XM;F<@("AW:71H("!O<'1I;VYA;"`@<')I;G1F*"D@('-T>6QE"F9O<FUA='1ID XM;F<I('1O('1H92!497AT4F5Q=65S="@I(')O=71I;F4*:6X@('1H92`@;&EB@ XM<F%R>2X@("!4:&4@(%-I;7!L95)E<75E<W0H*0IR;W5T:6YE("!C86X@(&)E: XM("!E87-I;'D@;6]D:69I960@=&\@9FET"GEO=7(@;W=N('!E8W5L:6%R('!U5 XM<G!O<V5S+@!N;P``>65S`$IU<W0@=&5S=&EN9R!T:&4@='=O(&=A9&=E="!RU XM97%U97-T97(N``!9;W4@<F5S<&]N9&5D('=I=&@@82`G)7,G('1O('1H:7,@; XM<F5Q=65S=&5R+@``66]U(')E86QL>2!S:&]U;&0@=7-E(&ET+@!%>&-E;&QE] XM;G0@8VAO:6-E+B`@66]U(&AA=F4@9V]O9"!T87-T92X`3V@@8V]M92!O;F4L= XM(&UA:V4@=7`@>6]U<B!M:6YD+@I9;W4@=V]N)W0@<F5G<F5T(&-H;V]S:6YGA XM("=Y97,G+@``("`@("!7;W5L9"!Y;W4@=7-E('1H92!R97%U97-T97(@;&EBZ XM<F%R>0II;B!Y;W5R('!R;V=R86US/P``4&5R:&%P<RXN+@``3V@@>65A:"P@_ XM9F]R('-U<F4A``!-971H:6YK<R!N;W0N`%-H;W<@;V9F('1E>'0@<F5Q=65S_ XM=&5R+@``9F]N=',Z``!9;W4@<V5L96-T960@=&AE(&9O;G0@)R5S)RP*<VEZ- XM92`E9"P@<W1Y;&4@)60N``!9;W4@9&ED;B=T('-E;&5C="!A(&9O;G0N`%1H; XM92!D969A=6QT('1E>'0N`%1Y<&4@86YY=&AI;F<L('1H96X@:&ET(')E='5R3 XM;BX`22=L;"!B970@>6]U('1Y<&5D.@HG)7,G+@!9;W4@9&ED;B=T(&5N=&5RO XM(&%N>71H:6YG(0``16YT97(@82!N=6UB97(N`%EO=2!E;G1E<F5D('1H92!NL XM=6UB97(@)R5L9"<N`%EO=2!D:61N)W0@96YT97(@82!N=6UB97(N``!5<V5RX XM(&%B;W)T(')E<75E<W1E9"X`4VAO=R!T:&4@9FEL92!R97%U97-T97(N``!3; XM:&]W('1H92!C;VQO<B!R97%U97-T97(N`%-H;W<@82!S:6UP;&4@=&5X="!R? XM97%U97-T97(N`%-H;W<@82!T=V\@9V%D9V5T(')E<75E<W1E<BX``%-H;W<@S XM82!T:')E92!G861G970@<F5Q=65S=&5R+@``4VAO=R!T:&4@9F]N="!R97%U) XM97-T97(N``!3:&]W('1H92`G9V5T('1E>'0G(')E<75E<W1E<BX``%-H;W<@5 XM=&AE("=G970@;G5M8F5R)R!R97%U97-T97(N``!%>&ET('1H92!D96UO+@``T XM:6YT=6ET:6]N+FQI8G)A<GD`4F5Q=6ER97,@,2XR(&]P97)A=&EN9R!S>7-TC XM96TN``!G<F%P:&EC<RYL:6)R87)Y``!#;W5L9&XG="!O<&5N(&=R87!H:6-SW XM+@!R97$N;&EB<F%R>0!#;W5L9&XG="!O<&5N('1H92!R97$@;&EB<F%R>2X`W XM`$-O=6QD;B=T(&]P96X@<V-R965N+@!#;W5L9&XG="!O<&5N('=I;F1O=RX`8 XM2'@``4ZZ!)!83TYU2'KZL$ZZ!BI83TYU2'K[ODZZ!B@B`$C!Y8%![`!0+K`8* XM`$AZ^]!.N@8(4$].=4Y5_]!!^OQR*TC_TI'(*TC_VD/Z_*`K2?_>0_K\I"M)$ XM_^)#^ORP*TG_YD/Z_+8K2?_J.WP`P/_N<`$[0/_P<@`[0?_R.T#_]#M!__8K7 XM2/_X*TC__$AM_]).N@5((@!(P>6!0>P`6"ZP&`!.N@663EU.=4Y5_V!(>OR$I XM2&W_8$ZZ$2Y"+?_B<`R!K`020>W_8"E(`_I![?_B*4@#_CE\``($'$AL`_1.V XMN@.H3^\`#$J`9R)P`#`L!&1R`#(L!&8O`2\`2&W_XDAZ_#Q.N@4V3^\`$&`*: XM2'K\7DZZ!2A83TY=3G5.5?^T2'K\9DAM_[5.NA"^2'@`2TAX`#)"ITAZ_&)(M XM;?^U3KH$<D_O`!Q*@&<02&W_M4AZ_&I.N@3H4$]@"DAZ_'A.N@3<6$].74YU[ XM3E7_W$'Z_((K2/_>*WP```32_^(K?/_^>6#_YBM\``&&H/_JD<@K2/_R0FW_I XM]BM(__@K2/_\2&W_WDZZ!$)83TJ`9Q`O+?_N2'K\3DZZ!(903V`*2'K\8$ZZL XM!'I83TY=3G4O"R9O``A*K`'@9PP@;`'@+&P!U$ZN_[A*K`'D9PP@;`'D+&P!9 XMU$ZN_[Y*K`'<9QY(;`'P3KH#"DAL`_1.N@,"4$\B;`'<+'@`!$ZN_F)*K`'8T XM9PPB;`'8+'@`!$ZN_F)*K`'49PPB;`'4+'@`!$ZN_F(@"V<(+PM.N@=@6$]"O XMITZZ"/!83R9?3G5(>OOD80#_<%A/3G4@;`'H(6P![`"X0J=A`/]<6$].=4Y5* XM_\`O`D/Z_-!P(2QX``1.KOW8*4`!U&8*2'K\SF$`_S983T/Z_.1P(2QX``1.> XMKOW8*4`!V&8*2'K\XF$`_QA83T/Z_/!P`"QX``1.KOW8*4`!W&8*2'K\Z&$`# XM_OI83T'L```L;`'43J[_.BE``>1F"DAZ_.QA`/[>6$]";?_^8'`P+?_^(@##U XM_`!D0>P%6-'!<@'"0,/\`4!T%-*"2,%(P$J`:@)2@.*`+T$`""("3KH)LG(\5 XMT(%(P#(M__Y(P>>!+P`O+P`,2&P`($/L`&0O,1@`+P@O2``83KH"`D_O`!0PR XM+?_^(&\`!#%``"92;?_^,"W__DC`<@FP@66$.7P`%`A^,"P(@$C`(CP```*`B XMDH!*@6H"4H'B@3E!"'PI;`'D`#Y![``@+&P!U$ZN_S0I0`'@2H!F"DAZ_#QA] XM`/X86$^3R2QX``1.KO[:*4`!Z"!`*6@`N`'L(6P!X`"X(&P!X"!H`%8L>``$6 XM3J[^@"!L`>`@:`!63J[^C"!`0^W_RG(,(MA1R?_\(D!.KOZ&(&W_YC`H`"8BE XM`$C!YX%![`!D('`8!$Z08+8@;P`$3.\``P`(2'C_XF```=9,[P`#``1(>/_<P XM8``!R$CG.#),[P`'`!PL>0```=Q.KO_63-],'$YU2.<X,DSO``<`'"QY```!F XMW$ZN_]!,WTP<3G5(YS@R3.\'```<+'D```'<3J[_RDS?3!Q.=2!O``1(>/^L/ XM8``!;B`O``1(>/^F8``!8B!O``1(>/]`8``!5DCG.#(@;P`<3.\`#P`@+'D`F XM``'<3J[_H$S?3!Q.=4CG.#),[P<``!Q,[P`'`"@L>0```=Q.KO^:3-],'$YU< XM2.<X,B!O`!Q,[P`/`"`L>0```=Q.KO^43-],'$YU(&\`!$AX_XY@``#N2'C_" XMB&```.9,[P,!``3!B$AX_X)@``#6(&\`!$SO``,`"$AX_WQ@``#$(&\`!$SO7 XM``,`"$AX_W9@``"R2.<X,DSO"P``'$SO``,`*"QY```!W$ZN_W!,WTP<3G5(^ XMYS@R3.\/```<3.\`#P`L+'D```'<3J[_:DS?3!Q.=4CG.#),[PD``!Q,[P`?] XM`"0L>0```=Q.KO]D3-],'$YU2.<X,DSO!P``'$SO``,`*"QY```!W$ZN_UY,? XMWTP<3G4@;P`$2'C_6&`F(&\`!$AX_U)@'"!O``1(>/],8!),[P`#``0@;P`,' XM2'C_1F````)(>0``#;HO+P`$+TX`""QY```!W"\`(`[1KP`$(!].=2Q?3G4@I XM($]K("``0V%N8V5L`%)E<W5M90``(&\`!$/O``A@&B!O``1#[P`(8````DCGV XM(#A%^O_.1_K_T6`*2.<@.)7*1_K_S"QY```!W)[\`"XH3W060EQ1RO_\+H@OU XM20`$+TH`$"]+`!0_?/__`!P@3TZN_U+>_``N3-\<!$YU3G%.=4YU3E7_[$CG- XM+Q`N+P`T)F\`."@'<#'`JP`89P9P_V```G`(*P`'`!I6P$0`2(!(P"P`2JL`] XM%&8``(0(*P`"`!MF>G``)T``#'+_OH%G``)"+PM.N@H^6$]*@&<,".L`!0`;M XM</]@``(J".L``0`;2@9G#B`K`!0B`$2!)T$`#&`(("L`%"=```Q3JP`,;18@P XM:P`$0^@``2=)``0@!Q"`<@`2`&`2(`=R`!(`+PLO`6$`_U)03R(`(`%@``'6< XM""L``@`;9UAP_[Z`9@9P`&```<(@!QM`__]*!F<B<@J^@68<<@(O`4AZ`;(O9 XM*P`<*T'_\$ZZ!Q!/[P`,*@!@&G(!+P%(;?__+RL`'"M!__!.N@;T3^\`#"H`, XM?O]@``#@".L``0`;2@9G4G#_OH!G3%2K``QR"KZ!9B8@:P`$0^@``2=)``00& XMO``-(BL`#$J!:PHO"R\`80#^KE!/4JL`#"!K``1#Z``!)TD`!"`'$(`B*P`,_ XM2H%K``$<?O\@*P`$D*L`$"M`__!G<@@K``8`&F=22'@``D*G+RL`'$ZZ`>1/& XM[P`,*T#_[$H&9SA3K?_L;3)"IR\M_^PO*P`<3KH!Q$AX``%(;?_]+RL`'$ZZM XM"GA/[P`82JP!H&8*$"W__7(:L`%GR"\M__`O*P`0+RL`'$ZZ!A1/[P`,*@!@E XM`GH`</^Z@&8(".L`!0`;8`RZK?_P9P8(ZP`$`!M*!F<.(BL`%"0!1((G0@`,M XM8!@(*P`"`!MG"'(`)T$`#&`((BL`%"=!``P@:P`0)T@`!+Z`9RY3JP`,;18@H XM:P`$0^@``2=)``0@!Q"`<@`2`&`2(`=R`!(`+PLO`6$`_9!03R(`<##`JP`8C XM9P1P_V`,</^X@&8$<`!@`B`$3-\(]$Y=3G4-"@````````````!P84Y5__A(L XMYP,P)F\`("1O`"0N+P`H($I*&&;\4XB1RBP(($M*&&;\4XB1RR`((DO3P"M)E XM__B\AV,"+`<@!B!*8`(2V%.`9/H@;?_X0C!H`"`+3-\,P$Y=3G5(YP$0)F\`B XM#'X`'AM*AV<R4ZP`\FT6(&P`ZD/H``$I20#J(`<0@'(`$@!@W"`'<@`2`$ALU XM`.8O`4ZZ_,I03R(`8,93K`#R;18@;`#J0^@``2E)`.IP"A"`<@`2`&`02&P`O XMYDAX``I.NOR<4$\B`"`!3-\(@$YU``````````!P84CG#Q`N+P`8+"\`'"HO, XM`"`O!TZZ`X183R9`(`MF!'#_8!XO!2\&+RL`!$ZZ`:!/[P`,*`!*K`&@9P1P( XM_V`"(`1,WPCP3G4``````````'!A2.<#,"XO`!1*AVX&<`!@``"D<`B^@&0"D XM+@`@!U:`+@`"1__\1>P`O"92(`MG0"`K``2PAVTRL(=F#"!3)(B?K`#`(`M@7 XM;B`K``20AW((L(%E%B!+T<<DB"1()),E0``$GZP`P"`+8$PD2R938+P@!R(L0 XM`3#0@5.`3KH""B(L`3!.N@'B+`!0AB`&5H`L``)&__PO!DZZ`RY83R9`(`MG- XM$B\&+PM.N@;>+H=A`/]44$]@`G``3-\,P$YU``````````````````!(YP,0# XM+B\`$$?L`,0@"V<T""L``@`;9B@(*P`!`!MG("`K``20JP`0+`!*AF<2+P8O1 XM*P`0+RL`'$ZZ`S)/[P`,)E-@R"\'3KH&$%A/3-\(P$YU``!(YS<0+B\`'"9O. XM`"`L+P`D2JP!N&<$3KH(R$*L`:`B!R0+)@8L;`H@3J[_T"H`</^Z@&8.3J[_S XM?"E``:!P!2E`"AP@!4S?".Q.=0``````````````````````````<&%(YS\`0 XM+B\`'"PO`"`J+P`D2JP!N&<$3KH(:$*L`:`@!5.`(@<D!B8`+&P*($ZN_[XHF XM`'#_N(!F#DZN_WPI0`&@<!8I0`H<(`4,@`````)G%@R``````6<(2H!F&"`&+ XM8!0@!-"&8`XB!W0`=@`L;`H@3J[_ODS?`/Q.=0``2.<W$"XO`!PF;P`@+"\`3 XM)$JL`;AG!$ZZ!^Q"K`&@(@<D"R8&+&P*($ZN_]8J`'#_NH!F#DZN_WPI0`&@G XM<`4I0`H<(`5,WPCL3G4``"\'+B\`"$JL`;AG!$ZZ!ZHB!RQL"B!.KO_<<``N9 XM'TYU2.<P`"0`)@%(0DA#Q,'&P,#!U$-(0D)"T(),WP`,3G5*@&H``!Y$@$J!_ XM:@``#$2!80``($2!3G5A```81(!$@4YU2H%J```,1(%A```&1(!.=2\"2$$TK XM`68``")(0$A!2$(T`&<```:$P3`"2$`T`(3!,`)(0C(")!].=2\#=A`,00"`X XM9```!N&944,,00@`9```!NF964,,02``9```!N6954-*06L```;CF5-#-`#FJ XMJ$A"0D+FJDA#@,$V`#`"-`-(0<3!D()D```(4T/0@63^<@`R`TA#Y[A(0,%!A XM)A\D'TYU+P<N+P`(<``I0`&@2H=K(KZL`*QL'"`'YX!![`C<2K`(`&<.(`?G` XM@$'L"-S1P"`(8`AP"2E`"AQP`"X?3G4``````````````````$CG`#(F;`HD; XM(`MG%"13(DL@*P`(+'@`!$ZN_RXF2F#HD<@I2`HH*4@*)$S?3`!.=4CG`3(N+ XM+P`4<`S>@"`'<@`L>``$3J[_.B9`(`MF!'``8#HG1P`(1>P*)"!J``0G2``$N XMD<@FB$J29@(DBTJJ``1G!B)J``0BBR5+``1*K`"P9@0I2P"P0>L`#"`(3-],; XM@$YU``````````````````!(YP<P+B\`&"9O`!PL+P`@+P=.NO\`6$\D0"`*\ XM9@1P_V`V""H``P`#9Q!(>``"0J<O!TZZ^TA/[P`,+P8O"R\J``1.NORD3^\`& XM#"H`2JP!H&<$</]@`B`%3-\,X$YU``!.5?_P2.<A,B9O`"P,K````"`*:FP`5 XM`(80$W(@L`%G#'()L`%G!G(*L`%F!%*+8.A*$V=H("P*:N6`4JP*:D'L"G+1Q XMP"1(<"*P$V8F4HLDBTH39PIP(K`39P12BV#R2A-F#$AX``%.N@(D6$]@GD(;6 XM8)HDBTH39Q@0$W(@L`%G$'()L`%G"G(*L`%G!%*+8.1*$V8"8`9"&V``_W)*; XMK`IJ9@8@;`'$8`1![`IR*4@*;DJL"FIF?$/Z`21-[`HP+-DLV2S9+-D\D2)LC XM`<0@:0`D2'@`*"\H``1(;`HP3KKY9D_O``PL;`H@0>P*,"(()#P```/N3J[_S XMXBE`".`I0`CH<A`I00CD*4`(\"E!".SE@"M`__`L>``$D\E.KO[:(&W_\")`8 XM(V@`"`"D?@`K0/_T8"HL;`H@3J[_RBE`".!.KO_$*4`(Z$'Z`*8B""0\```#[ XM[4ZN_^(I0`CP?A`@!P!`@`&!K`C<(`<`0(`"@:P(Y`"L``"``PCL2JP!+&<$E XM<`!@!B`\``"``"X`0JP`X"`'`$```2E``-QP`2E``0(@!P!```(I0`#^<`(IC XM0`$D(`<`0`"`*4`!($'Z`FXI2`&X+RP*;B\L"FI.NO&B0I=.NOID3.U,A/_<+ XM3EU.=6-O;CHQ,"\Q,"\S,C`O.#`O`"H`````````````````2.<P,BQO`#@@1 XM;P`8(F\`'"1O`"`F;P`D("\`*"(O`"PD+P`P)B\`-$ZN_J1,WTP,3G4``"\+^ XM)F\`"$JK`!1G#`@K``,`&V8$<`!@-B\L`31.NOD>6$\G0``$)T``$$J`9@IP\ XM#"E`"AQP_V`6)VP!-``4<//!JP`8<``G0``,)T``""9?3G4``````````'!AN XM2.<'`"XO`!`@+`"L4X`L`$I&:S`@!DC`YX!![`C<*C`(`$H%9QH(!0`$9A0@( XM!DC`YX!![`C<+S`(!$ZZ^NA83U-&8,PO!TZZY]A83TS?`.!.=0``(F\`""!OA XM``0@"1#99OQ.=4Y5_^A(YP$R+B\`-$J';@9P_V```-)P"+Z`9`(N`"`'5H`N3 XM``)'__PD;0`(("T`"-"'WZP`P$'L`+PF4"M`__`K2/_T(`MG``"0($L@*P`$/ XMT<`K2/_L(FW_\+?)8Q`DBR5'``0L;?_T+(IP`&!XM\EF&BQ3)(X@*P`$(@#2] XMAR5!``0L;?_T+(IP`&!:M<AD")^L`,!P_V!.M<AF+$J39PX@4[/(8PB?K`#`S XM</]@.-^K``1*DV<.L]-F"B`I``31JP`$)I%P`&`>*TO_]"MM_^S_Z"938`#_Z XM;B!M__0@BD*2)4<`!'``3-],@$Y=3G4``$CG!S`N+P`8)F\`'"PO`"`O!TZZV XM^L!83R1`(`IF!'#_8!XO!B\++RH`!$ZZ^5A/[P`,*@!*K`&@9P1P_V`"(`5,C XMWPS@3G4``$Y5_YA(YS,"?@`@;`'0'BC__W!/OH!O`BX`(`=#[?^O8`(2V%.`+ XM9/I"-7BO+'@`!)/)3J[^VBM`_Z8@0$JH`*QG4B(H`*SE@2)!+"D`.$CM``+_= XMGDJ&9@0L*`"@2H9G-"QL"B`B!D'Z`+(D"'8+3J[_T"!'4H<@"!N\``H(KRQL> XM"B`B!B8'0>W_KR0(3J[_T'#_8%(L>``$0_H`C'``3J[]V"M`_YIF!'#_8#I!= XM[?^O*4@!6"\M_YI(>``\2'@`^G``+P`O`$AL`71(;`%@2&P!3$*G3KK\_D_O& XM`"13@&<$</]@`G``3-]`S$Y=3G4J*B!5<V5R($%B;W)T(%)E<75E<W1E9"`J/ XM*@``0T].5$E.544``$%"3U)4`"HJ*B!"<F5A:SH@`&EN='5I=&EO;BYL:6)R> XM87)Y`````````'!A+P=P`"(\```P`"QX``1.KO[.+@`"AP``,`!*AV<@2JP!W XMN&<:(&P!N$Z02H!F`F`.0JP!N$AX`!1.NOSJ6$\N'TYU8;Q.=0`````#[```K XM``$````````-G`````X````!```+X```"_H```P4```,5@``#'8```R4```,9 XM_```#1P```T\```-7```#:H```X$````%`````H````````#\@```^H```!B" XM``````*``,@``P`!@```#P````````($`````````````````H``R/__````K XM0```&0````````````````````````````!/`!X"@`#(``\```-H```#;```Y XM`\8```/@```$"```!>@```&H```&`@``!Y@```8<```'I```!CH```>P```&_ XM6```!](```9X```(1```!I(```BT```&L@``"0````;4```)^````"@`````3 XM`````````````````````````.8`````````````````````````````````F XM``````````$(````````````````````````````````````````````````) XM``````````````````````````````````````````"`````!`````(`__\`$ XM```.``X````````;M@````#__P````0`!``````````````!./__````!``$R XM````````&](`````__\````$``0````````;W`````````/L````&P``````T XM``&````!;````40```"H````I````*````"<````F````)0```"0````C```# XM`(@```"$````@````'P```!X````=````'````!L````:````&0```!@````\ XM7````%@```!4````4````!0````#`````0```5P```#F````Q`````````/RL X`` Xend Xsize 7920 END_OF_FILE if test 11126 -ne `wc -c <'showoffreq.uu'`; then echo shar: \"'showoffreq.uu'\" unpacked with wrong size! fi # end of 'showoffreq.uu' fi echo shar: End of archive 1 \(of 3\). cp /dev/null ark1isdone MISSING="" for I in 1 2 3 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 3 archives. rm -f ark[1-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0 -- Mail submissions (sources or binaries) to <amiga@uunet.uu.net>. Mail comments to the moderator at <amiga-request@uunet.uu.net>. Post requests for sources, and general discussion to comp.sys.amiga.