Short: V1.46 of the best TA online filelister Author: s_supp@ira.uka.de Uploader: s_supp ira uka de Type: comm/bbs Architecture: m68k-amigaos History ------- V1.0 - 25.07.94 : First public release V1.1 - 29.07.94 : The CONTINUE-prompt now has also an entry in the language files (thanks to Chris). Demarking in the download-menu no more cause a crash. NOT PUBLIC RELEASED VERSIONS 31.07.94 : Filelister now recognices idle timeout. 04.08.94 : GetFile was rewritten to C. This causes a speed improvemt while pattern searching up to 7 times. 10.08.94 : GetFile can now search through the complete fileline. This mean you can also search for a descriptions, dates and filelenths. Patterns are also possible. New parameter : CompleteLine or CL V1.2 - 12.08.94 : Serious bug while using the timer.device removed. Filelister should no longer drop out users with the idle-timeout-message when they call a filelist. Thanks to Thomas for the BlitzBlank source. NOT PUBLIC RELEASED VERSIONS 12.08.94 : LOADINDEX was replaced by a C-Tool (ReadFLData). It sorts the index up to 8 times faster. 15.08.94 : ReadFLData (Index-Load-Replacement) acknowledges if an index is already in memory. GetFile no more says a listed file doesn't exist. 27.08.94 : Filelister know uses the right system-path of TA every- time and get the right idle time. 28.08.94 : Example.Trans corrected. Thanks to Michael Schaffner. V1.3 - 18.09.94 : The moment is here :-) Filelister can be registered and this version will check if there's a correct keyfile. V1.31 - 21.09.94 : Bug removed while using command key stacking with country specific keys (J/A/...). ReadFLData got a workarround for Kickpascal. Protocolnames now should have the correct name :-) New versions : Filelister[_NC] ReadDLData[020/040] FreeFLData V1.32 - Testversion, not released. V1.33 - 06.10.94 : Thanks to Thomas for reporting a serious bug that allowed standard users to mark files out of the Sysop- Area ! (Patternmarking was possible :-((( ) V1.4 - 19.10.94 : Because of nerving users ( ;-) ), you can now select the areas to list while new/search/all-files scan. Simply say NO to the question to scan all areas. V1.41 - 09.11.94 : Filelister, TACfl, ReadFLData sometimes crashes with some Files.BBS of the AmiNet-CD Vol. 4. The reason was that there're line longer than 100 characters. Thanks to Harald Meinzer for detailed reporting. 19.01.94 : Now GetFile also shows ALL occurrence of one file if there are more than one. Additional you can select the areas to be scanned. 28.01.95 : Added parameter "DELEMPTY" to TACfl (see doc) V1.42 - 03.03.95 : Total length of files will now be calculated correctly in download menu even if some files was unmarked. V1.43 - 12.03.95 : Filelister now aborts the trial of marking a file that contains a : or / . Before there was some strange AmigaDOS requesters. V1.44 - 21.05.95 : From now on there comes a info line if new/search/all/ area/list-scan was unsuccessful. Texte 111-115 added to config file. 15.07.95 : FreeFLData NOW frees ALL memory allocated by ReadFLData 26.08.95 : GetFile-Source completed (after lost of last changes :-( ) and added new parameter VERBOSE. Date will be displayed now. (this version is 2.5) V1.45 - 27.08.95 : New keyword for the config file : WaitAfterLine You can specify a delay after each line for saving CPU time. Parameter is in microseconds. (1.000.000 microsecs = 1 sec !! ) V1.46 - 25.09.95 : New Keyword : TaskPriority (should say all :-) ) Transamiga FileLister V1.46 --------------------------- written 1993-95 by Mathias Supp Sysop of the Amiga Inside I Line 1: ++49(0)721-854112 Line 2: ++49(0)721-841292 Line 3: ++49(0)721-841230 reachable via : 2:2476/539.0@fidoclassic 39:173/50.0@amiganet s_supp@ira.uka.de Modem : 1. ZyXEL U-1496E Plus - 1200-19200bps [V32(bis),ZyX] 2. Digitech SG2834 - 1200-28800bps [V32(bis),VFC,V34] 3. Digitech SG2834 - 1200-28800bps [V32(bis),VFC,V34] Release : 25.09.1995 =============================== Copyright ================================== Filelister is shareware. All rights a reserved by the author. The test version of FileLister has no limits except of a nerv text at the start and the end of EVERY filelist call. Shareware donation : for Germany DM25.- other countries $US20.- (postal costs included) How to register : ----------------- Send the donation to the following address : Mathias Supp Görresstr. 29 76185 Karlsruhe Germany or use your bank : Badische Beamtenbank BLZ: 66090800 KNr: 3426580 Send me also your COMPLETE name and address. ============================== Introduction ================================ In 1993 May, 19th I started programming a filelist replacement for Trans- amiga in Pascal. Although I have programmed an ARexx version of such a utility in the beginning of 1993, I was frustrated about the speed ARexx. Therfore I converted my first 3000 lines to Pascal. Filelister wasn't developed to save memory ! If you haven't at least 1MB of free fast memory when TA was started you shouldn't use Filelister. As there are many possible memory configurations you have several options to waste your memory ( ;-) ) and get speed improvement. Because of the problem of memory fragmentation on low memory machines the archive contains a little ARexx utility to check your largest free block. Dependent on this block this program resets your machine to get cleaned memory. You need at least 18462 Bytes of Stack. Filelister was tested with enforcer and mungwall which tells no hits ! ============================== Installation ================================ - copy FileLister or FileLister_NC to BBS:Bin/ (if you use the NoCheck version rename it to FileLister) - copy FileLister.Cfg.Deutsch or FileLister.Cfg.English to BBS:Configs/ and rename it to FileLister.Cfg - copy ReadFLData.0x0 depending on your system to BBS:Bin/ and rename it to ReadFLData - copy FreeFLData to BBS:Bin/ - look at Example.trans, duplicate it and change the ARexx commands dependent of the wanted action (or use my examples; see later) - copy DeleteMarks.trans to BBS:Rexx/ (sorry, german only so far :-( ) - copy FL.Help* to BBS:Text/ (ATTENTION : default = german, delete FL.Help[.255][.ANSI] and remove ".english" from the english language filename to get english as default - copy #?.FL.Lang to BBS:Configs/ - copy GetFile to BBS:Bin/ - edit FileLister.Cfg at BBS:Configs and look at the descriptions of the keywords - edit your "File.Cmds" and set an unused character for the filelist commands; additionally set access to 256 for this lines Example : File.Cmds ; ********************** *** ******** G Good-Bye (Log off) 0 -------- Q Quit to Main Menu 0 -------- H Help With Commands 5 -------- A Change Area 5 -------- K Kill File 250 -------- ~ Files in Current Area 256 -------- ~ New Files 256 -------- ~ Download File 256 -------- ~ Search File List 256 -------- M Move File 250 -------- U Upload File 10 -------- V View Archive Contents 5 -------- ~ Entire File List 256 -------- R Read Text File 5 -------- I Information on File 5 -------- ~ Browse Mode Toggle 256 -------- ~ Clear Marked Files 256 -------- - create/edit "File.Rx" and add the FileLister commands Example : File.Rx ; ********************** *** ******** ************************************** E list new files 5 -------- NewFiles.trans F list files 5 -------- AllFiles.trans S search files 5 -------- SearchFiles.trans D download Files 5 -------- Download.trans L delete marks 5 -------- DeleteMarks.trans - replace all original filelist calls in your rexx programms (especially logon.trans !) - if you want to use TACFl, look at the archiv :-) - more informations on "starting filelister" =========================== Contents of Archive ============================ - FileLister : The programm - FileLister_NC : The program WITHOUT stack/subrange/...-checking Be carefull, because in the case of a program error your machine will crash surely. Advantage : higher execution speed - FileLister.DOC : This documentation - FileLister.DOK : German documentation without installing infos (sorry) and the complete history of Filelister - FileListerTech.DOK : Technical infos for developers (sorry, german only at the moment) - History.DOC : History since first public release - Example.trans : Example ARexx script how to call Filelister Additional the scripts for the above "File.Rx" - NewFiles.trans - AllFiles.trans - SearchFiles.trans - Download.trans - Logoff.trans : Necessary entries for logoff.trans - CheckMem.Rexx : Tests largest free memory block - Reset : Does it :-) - DeleteMarks.trans : Script to unmark files. Will be soon replaced with a Pascal version. - Upload.Trans : Example when using "MemoryLamer NO" - FileLister.Cfg.Deutsch : Example config for filelister with german and - FileLister.Cfg.English english comments. ALL keywords are documented. If Filelister doesn't find this it use an implemented standart config which is the same as this sample config. - Deutsch.FL.Lang : Example file for german text output - English.FL.Lang : Example file for english text output - FL.Help* : The online help texts Format : FL.Help[.Access][.Language][.ANSI] Included help texts : FL.Help FL.Help.ANSI FL.Help.255 FL.Help.255.ANSI FL.Help.Deutsch FL.Help.Deutsch.ANSI FL.Help.255.Deutsch FL.Help.255.Deutsch.ANSI FL.Help.English FL.Help.English.ANSI FL.Help.255.English FL.Help.255.English.ANSI - TACFl156.lha : Filelist generator which can create an index file for Filelister and can use its memory when an INTERNAL sorted index was created - MakeIndex : Example script to create an EXTERNAL sorted index for Filelister. Only usefull if there is not anough memory to usw an INTERNAL sorted index. (see LOADINDEX ARexx command) - ReadFLData.0?0 : Replacement for LOADINDEX-Command. Loads an in- ternal fileindex into the memory. Should be executed BEFORE starting any filelisters ! Template : ReadFLData CONFIGPATH/A SHOWNEW/K NOTININDEX/K ATTENTION : ShowNew and NotInIndex should have the same values as specified in Filelister.Cfg !! - FreeFLData : deallocate memory from ReadFLData - GetFile : Helps you to find files very quickly when using an INTERNAL sorted index. Execution : GetFile NAME/A/M OS2.x+ patterns are allowed. This is version 2.4. ================================ Filelist ================================== General : --------- Independent of your choise (Mark, Info) in the prompt, you can enter one of the four possible types of file selecting : 1. number (stays before each fileline) 2. number range (e.g. 1-5 for selecting the files from number 1 to 5) 3. filename (who guessed ? ;-) ) 4. pattern (OS2.x+ compatible filepattern) Features : * or #? - matches all #x - matches any amount of x (even 0 !) ? - matches one character [a-d] - matches characters a to d a|d - matches a or d ~x - matches unequal x Examples : ff(99[1-9]|1000).lha => ff991.lha to ff999.lha & ff1000.lha recent[0-9]#[0-9] => recent00... to recent99... All types of selecting can be used at one time by using "," or spaces. e.g. : 1,xx,ff#? 5-10 "name,extension" In this example you can see the situation, if a file has a "," in its name. For this case there are quotes. Characters between quotes will be used as you write them. Cursor keys ----------- While prompt is displayed, you can use your cursor keys to mark or unmark certain files. Simply choose cursor up or the numeric keys (Up,Home,End,PgUp,PgDn) to step through the screen. If there was more than one page shown, you can go back with SHIFT+Up or the numeric key 9 and forward with SHIFT+Down or the numeric key 3. RETURN or SPACE marks and demarks a selected file. Marked files are shown with a star between the number and the filename. So you'll see imediately which files are marked and which not. Mark prompt ----------- Trying to mark one file twice will cause a request if you'll want to unmark this file. Otherwise files will be listed with length and total length of all marks. Marked files also get stars like cursor marking does. Info prompt ----------- Some files may have a long description that contains more informations. 1. extact length in bytes 2. uploader name 3. long description of the file (has no 40 characters limit) ANSI users won't loose the displayed lines above because Filelister completes the screen after returning to the prompt. Fake prompt (Co-)Sysop function ----------- Sometimes there may be uploads which are fakes, old in the bad case or special wanted uploads, very new upload in the good case. This subroutine gives you the possibility to give the user certain credits for his upload : - After activation you'll ask for the user's name. If the .Desc-file contains the right name you can simply press RETURN. Otherwise enter the name of the user. - Faker now tells you the correct file length in bytes - Then you can enter an integer-value (-32768 ... 32767) to be multi- plied to the file length and added to the user's upload value. - You get the informations of the actions (new upload value etc.) - Because Faker sends a mail to the user when you add/subtract uploaded bytes from him, you can enter a max. 50 characters reason for your behaviour. - If you entered a negative value to be multiplied to the file length, you can immediately delete this file Delete prompt (Co-)Sysop function ------------- Normally self documenting, but although some infos : If you select more than one file (e.g. you enter "1-10" or a pattern) you'll get a request for deletion for each file, except you entered "A" for all. After "A" you can say goodbye to all selected files Maybe you're fast anough to break with Space or CTRL+C. :-) "Q" lets return you to the prompt. Changedesc prompt (Co-)Sysop function ----------------- Simply changes the short description of a certain file. If there is no downloadcounter, Filelister adds the default (Filelister.Cfg). ATTENTION : If you use one of the (co-)sysop functions, changes will be done at the lowest state (Files.BBS/directories/ .Desc-files). Filelister don't recognize these actions ! (not yet :-) ) Be carefull when using this features in a multiline BBS. Download menu ------------- Shows you marked files and displays a mark prompt. It has the same function as the mark prompt in the list except of setting/unsetting the star. =========================== Starting Filelister ============================ Even FileLister is written in Pascal it can be made resident with "RESIDENT BBS:Bin/FileLister FORCE" Filelister knows two parameters : BBSLINE/A/N,CONFIG/K BBSLine : number of the BBS line Config : name of the filelister config file (default : BBS:Configs/FileLister.Cfg) If you're using MEMORYLAMER NO _and_ USEINDEX YES you MUST load the index manually via ARexx. First you have to start Filelister with the linenumber as the parameter. Example : run bbs:bin/FileLister 0 waitforport FILELISTER.0 rx "address 'FILELISTER.0' 'LOADINDEX bbs:configs/transamiga.cfg'" ^ for Line 0 Do this after Transamiga was started. ============================= ARexx commands =============================== NEWFILES : Call newfiles scan ALLNEWFILES : Call newfiles scan of all areas AREAFILES : Show files of the actual area ALLFILES : Show files of all areas LISTFILES : Show files and ask if list all or actual area SEARCHFILES : Call searchfiles scan DOWNLOAD : Call download routine MARK : Does the same as in the filelist except the screen outputs ! Parameters : - Number (if something was lister before) - Pattern (ATTENTION : no break possible until done) - Name - some of the above separated by komma or space mit der Ausnahme, dass KEINERLEI Bildschirmausgaben Example : RX "ADDRESS 'FILELISTER.0' 'MARK ff901.lha,ff80?.lha'" RESCAN [No] : Deallocate memor of the last listet files. If "No" is given a certain area will be read again. When using MemoryLamer NO and PutNotInIndex is empty you MUST call this function after EVERY upload. (see Upload.Trans) LOADINDEX [Cfg] : Loads ALL Files.BBS' and creates a sorted index in the memory. "Cfg" (=Masterconfig of TA !) should be given because TA doesn't give any informations about the master- config when it's offline. The ENV variable "TA.Index" was created (see FileLister_Tech) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Removed since V1.3 !!!! If you try to use this command Filelister will tell you how to use ReadFLData :-) QUITFILELISTER or QUIT : remove Filelister from memory and free ARexx port Example to quit Filelister on line 0 : RX "ADDRESS 'FILELISTER.0' 'QUITFILELISTER'" ============================================================================ Known problems : ---------------- - some messages (from CLI-Commands) are still german - FilelisterTech.DOK not yet available in english - Filelister crashes on low stack (should be at least >25kB) ============================================================================ Do to : ------- There are many things to do :-) If you're quiet good in german, read the german documentation for more informations. ============================================================================ Thanks to : (in alphabetical order) ----------- Daniel Baumgartl (former beta tester) Thomas Boerkel (beta tester) Jens Depenau (beta tester) Michael Doerr (shocked user :-) ) Martin Eitel (shocked user :-) ) Bernd Ernesti (shocked user :-) ) Mario Jung (former beta tester) Hartmut Meiering (beta tester) Sami Radwan (beta tester and TA developer) Yves Rausch (beta tester) Mathias Supp (for TACfl ;-) ) Alexander Wiggert (shocked user :-) ) for tests, suggestions, bug report have fun Mathias P.S. : Sorry for my bad school english but I hope you understood what I mean.