headline
Screenshot Amiga Demo: Prophecy | Intro

Intro

Prophecy

Intro 1990


Released on Xmas Commodore Show

Auf Demodisk 93, Cytax Crazy Candy 33


Amiga Diskfile Image (ADF)

Downloadcode eingeben:

Downloadcode


Textauszug generiert aus ADF-Image:

(Text gehört zur ganzen Disk, nicht immer zwangsläufig zum angezeigten Demo!)


| scoopex utility boot v 1.0 *drives are: off memory is: off:f1 memory off f2 toggle drivescf3 memory on f4 install boot lf5 hard reset f6 toggle filteruf7 kill virus f8 exit to cli. d no virus has been detected! ncoded by n.o.m.a.d of scoopex | xatyc yb edam saw ksid siht | s opco uexliti btyt oo 1 v .0ri*ds vee:arff ome rymos: iff o1 :fmome ory ff tf2glogdre esiv3 cfmome ory n if4tans bllt oo5 lfrdhaes r et tf6glogfie erlt7 ufllkiir v us ef8t xi cto. li nd vio s rus haenbeet dteec d!odnc bed ny .m.o.d.aof co sexop | `pubdo aleioctv1n | .0y bncviofe ri tarst | unable to open library | unable to open window | unable to open screen | unable to validate key disk | unable to open requester | unable to open input.device | poker solitaire scores | unsane key disk v1.1trackdisk.device | count 12 hands | "english scoring | hamerican scoring | lmake pat hands | user scoring | change rules | right side | left side | right game port | left game port | deal 1 cards | allow 1 common rejects | xatyc yb edam saw ksid siht | input.device port | card drawer task | 42m 7500 karlsruhe 7500 karlsruhe | 42m germany germany | 42m contact cytax | 42m division karlsruhe at: | 42m 7500 karlsruhe 7500 karlsruhe | 42m germany germany | coded by leo of cytax | #pragma libcall ppbase ppgetlong 48 a9803 | * release 1.0 library version 33.1 | #ifdef no_pragmas | #define c_args __stdargs | #define c_args | ulong c_args pploaddata (char *, ulong, ulong, ubyte **, ulong *, bool (*)()); | void c_args ppdecrunchbuffer (ubyte *, ubyte *, ulong *, ulong); | uword c_args ppcalcchecksum (char *); | ulong c_args ppcalcpasskey (char *); | void c_args ppdecrypt (ubyte *, ulong, ulong); | bool c_args ppgetpassword (struct screen | bool c_args ppgetstring (struct screen *, ubyte *, ulong, char *); | bool c_args ppgetlong (struct screen *, ulong *, char *); | #ifndef no_pragmas | #pragma libcall ppbase pploaddata 1e ba910806 | #pragma libcall ppbase ppdecrunchbuffer 24 0a9804 | #pragma libcall ppbase ppcalcchecksum 2a 801 | #pragma libcall ppbase ppcalcpasskey 30 801 | #pragma libcall ppbase ppdecrypt 36 10803 | #pragma libcall ppbase ppgetpassword 3c 109804 | #pragma libcall ppbase ppgetstring 42 a | jul 1990 nico fran | * release 1.0 library version 33.1 | #ifdef no_pragmas | #define c_args __stdargs | #define c_args | ulong c_args pploaddata (char *, ulong, ulong, ubyte **, ulong *, bool (*)()); | void c_args ppdecrunchbuffer (ubyte *, ubyte *, ulong *, ulong); | uword c_args ppcalcchecksum (char *); | ulong c_args ppcalcpasskey (char *); | void c_args ppdecrypt (ubyte *, ulong, ulong); | bool c_args ppgetpassword (struct screen | * error codes returned by pploaddata | ok ifnd libraries_ppbase_i | ** (c) copyright 1990 nico fran | ** all rights reserved | ifnd exec_lists_i | include "exec/lists.i" | ifnd exec_libraries_i | include "exec/libraries.i" | ppname macro | structure ppbase,lib_size | ubyte pp_flags | ubyte pp_pad | ulong pp_seglist | label ppbase_size | * decrunch colors for pploaddata and | truct library libnode; | ubyte pp_flags; | /* decrunch colors for pploaddata and ppdecrunchbuffer */ | #define decr_col0 0l | #define decr_col1 1l | #define decr_pointer 2l | #define decr_scroll 3l | #define decr_none 4l | /* error codes returned by pploaddata */ | #define pp_openerr -1l | #define pp_readerr -2l | #define pp_nomemory -3l | #define pp_crypted -4l | #define pp_passerr -5l | #define pp_unknownpp -6l | l#ifndef libraries_ppbase_h | #define libraries_ppbase_h | ** (c) copyright 1990 nico fran | ** all rights reserved | #ifndef exec_types_h | #include <exec/types.h> | #ifndef exec_lists_h | #include <exec/lists.h> | #ifndef exec_libraries_h | #include <exec/libraries.h> | #define ppname "powerpacker.library" | #define ppversion 33l | struct ppbase { | mef _lvoppcalcchecksum | libdef _lvoppcalcpasskey | libdef _lvoppdecrypt | libdef _lvoppgetpassword | libdef _lvoppgetstring | libdef _lvoppgetlong | libdef _lvoppdecrhdr ; private ! | libdef _lvoppcryptdecrhdr ; private ! | ifnd libraries_powerpacker_lib_i | ** (c) copyright 1990 nico fran | ** all rights reserved | ifnd exec_types_i | include "exec/types.i" | ifnd exec_nodes_i | include "exec/nodes.i" | ifnd exec_lists_i | include "exec/lists.i" | ifnd exec_libraries_i | include "exec/libraries.i" | libdef _lvopploaddata | libdef _lvoppdecrunchbuffer | * the following private functions are for use in the decrunch | * header of crunched executables. don't use them ! they are | * guaranteed to crash if not used properly ! | jul 1990 nico fran | * release 1.0 library version 33.1 | ##base _ppbase | moveq #decr_pointer,d0 | lea buffer,a1 | lea length,a2 | jsr _lvopploaddata(a6) ; try to load file 'testfile' | beq.s loadok ; if zero everything went ok | * ... ; check error code in d0 and react | * ... ; file was loaded, so use it | jsr _lvofreemem(a6) ; free memory allocated by pploaddata | jsr _lvocloselibrary(a6) ; close powerpacker.library | section "data",data | * library base | * buffer position/length | moveq #decr_pointer,d0 | lea buffer,a1 | lea length,a2 | jsr _lvopploaddata(a6) ; try to load file 'testfile' | beq.s loadok ; if zero everything went ok | * ... ; check error code in d0 and react | * ... ; file was loaded, so use it | section "ppexample",code | include "exec/types.i" | include "exec/funcdef.i" | include "exec/exec_lib.i" | include "libraries/ppbase.i" | include "libraries/powerpacker_lib.i" | lea ppname,a1 | jsr _lvoopenlibrary(a6) ; open powerpacker.library | beq.s endit ; quit if not available | move.l d0,_ppbase ; store in _ppbase | * (c) jul 1990 nico fran | * this source is public domain * | * in all respects. * | commercial distributions | without permission from the author. | include (dir) | libraries (dir) | proto (dir) | all of these files (except example.c and example.as | m) must remain | unmodified and are copyrighted by the author. none of these files may be | distributed on its own, the entire package must be distributed as one whole. | example.c and example.asm are full public domain and can be used in any way | you like :-) | there is one exception to the above. if your program is freely | distributable and uses powerpacker.library you have permission to include | powerpacker.library with your distribution. | powerpacker.library cannot be included with | the complete pplib package contains following files: | doc (dir) | include (dir) | libraries (dir) | proto (dir) | all of these files (except example.c and example.as | (c) jul 1990 nico fran | powerpacker.library is freeware. this means that you can copy it freely as | long as you don't ask any more money for it than a nominal fee for copying. | this does *not* mean you are free to do with it what you want :-) | in part of the ppgetpassword() function). | automatically adjusts the requester to the screens font. | none known | cker.library/ppgetlong powerpacker.library/ppgetlong | name ppgetlong() | bool = ppgetlong (screen, &longvar, title); | bool ppgetlong (struct screen *, ulong *, char *); | puts up a requester to get a signed long (32-bit) number from the user. | 6 screen - address of intuition screen where requester should appear, | or null for workbench screen. | &longvar - address of (!) long (32 bit) variable to hold result. | title - points to null terminated title of requester window. | bool - true if user entered a number, false if not. | doesn't have much to do with powerpacker, but was put in because it is | a useful function and it only required a small amount of code (using | of the ppgetpassword() function). | automatically adjusts the requester to the screens font. | none known | name ppgetlong() | bool = ppgetlong (screen, &longvar, title); | bool ppgetlong (struct screen *, ulong *, char *); | puts up a requester to get a signed long (32-bit) number from the user. | na}o buffer to hold characters entered. | maxchars - maximum number of characters that fit in buffer (ex-cluding | the 0 to terminate the string !). | title - pointer to null terminated title of requester window. | bool - true if user entered something, false otherwise (empty buffer). | doesn't have much to do with powerpacker, but was put in because it is | a useful function and it only required a small amount of code (using | the main part | ring (screen, buffer, maxchars, title); | bool ppgetstring (struct screen *, ubyte *, ulong, char *); | puts up a string requester to get a line of text from the user. | the string present in 'buffer' upon entry will be displayed, ready to | screen - address of intuition screen where requester should appear, | or null for workbench screen. | buffer), false when no correct password was given after three | this function will be used by pploaddata() to prompt for a password when | you called it with 'func' equal to null. | automatically adjusts the requester to the screens font. | none known | name ppgetstring() | will not be visible when typed. | screen - address of intuition screen where requester should appear, | or null for workbench screen. | buffer - buffer to hold correct password. | maxchars - maximum number of characters in password (should be 16, | buffer should be at least 17 bytes big !). | checksum - checksum of password we are looking for. | bool - true when the correct password was entered (can be f | /urord powerpacker.library/ppgetpassword | name ppgetpassword() | bool = ppgetpassword (screen, buffer, maxchars, checksum); | bool ppgetpassword (struct screen *, ubyte *, ulong, uword); | opens a small requester to prompt the user for a password. returns when | the user enters a password with a checksum equal to 'checksum' or when | he has failed to enter a correct password (three chance | < len - length in bytes of memory region to decrypt (rounded up to the | next multiple of 4). | key - key of password as returned by ppcalcpasskey(). | if you call this function before calling ppdecrunchbuffer make sure you | decrypt the correct memory region, don't decrypt the last longword ! | name ppdecrypt() | ppdecrypt (buffer, len, key) | void ppdecrypt (ubyte *, ulong, ulong); | this function will decrypt a memory region with a given passkey. it | must be called before calling ppdecrunchbuffer() (if the file was | buffer - start address of memory region to decrypt (word alligned !). | name ppcalcpasskey() | key = ppcalcpasskey (password); | ulong ppcalcpasskey (char *); | string - pointer to a null terminated character string. | key - passkey corresponding to the given password. | function used to decrypt encrypted files. | sum = ppcalcchecksum (string); | uword ppcalcchecksum (char *); | this function calculates a 16 bit checksum of a given string of | string - pointer to a null terminated character string. | sum - checksum of 'string'. | function used to check if a password is correct. | 5s behind the start of the crunched file). | effptr - pointer to efficiency table. | col - decrunching effect (see pploaddata). | this function is used by pploaddata() and will probably not be used very | often on its own. | none known | name ppcalc | j|ight after | 'decrunch info', 'decrbuff' pointing 8 bytes after where you loaded the | file and 'effptr' pointing to the 'efficieny' longword. | if this seems complicated that is probably because it is :-) pploaddata | was written to make things simpler and should suffice for most cases. | endcrun - pointer just after the last byte of the crunched block. | decrbuff - pointer to beginning of memory to decrunch to (this must be | at least 8 byte | - read identifier. | - if px20, read checksum. | - read efficiency. | - allocate 'decrlen' + 8 (safety margin) bytes. | - load 'crunched file' and 'decrunch info' at start of allocated memory. | - if px20, prompt for a password (compare checksum !). | - if px20, calculate the passkey (use ppcalcpasskey). | - if px20, call ppdecrypt to decrypt 'crunched file' only. | (not 'decrunch info' !) | - and finally call ppdecrunchbuffer() with 'endcrun' pointing r | 'decrlen' << 8 | '8 bits other info' | the following procedure must be followed to decrunch a file: | first you must read 'decrunch info' to find the length of the decrunched | file, then you must allocate memory to decrunch it in (shift 'decrunch | info' right 8 bits and add a safety margin (8 bytes) to get the length | of this memory block). if the file is encrypted ('px20') you must call | ppdecrypt to decrypt the crunched part before calling ppdecrunchbuffer. | y|estination can be as close as 8 bytes after the start address of | the source, so you can decrunch a file with almost no memory overhead. | if you wish to call this function you need to know the format of a | crunched file: | 1 longword identifier 'pp20' or 'px20' | [1 word checksum (if 'px20') $ssss] | 1 longword efficiency $eeeeeeee | x longwords crunched file $cccccccc,$cccccccc,... | 1 longword decrunch info | name ppdecrunchbuffer() | ppdecrunchbuffer (endcrun, decrbuff, effptr, col); | void ppdecrunchbuffer (ubyte *, ubyte *, ulong *, ulong); | function to decrunch from one memory location to another. the address of | * like this: | struct window *yourwindow; | struct process *proc; | aptr oldwinptr; | /* open your screen and window... */ | /* set pr_windowptr */ | proc = (struct process *)findtask (null); | /* restore before quitting (very important !!) */ | none known | te that 'password' is a c string and must be null terminated ! | in case you call pploaddata() with 'func' equal to null (use automatic | password prompting) the pr_windowptr of your process will be used to | find the screen to open the password requester on. if pr_windowptr | equals 0 or -1 the workbench screen will be used, otherwise the screen | of the pr_windowptr window will be used. only a process can call | pploaddata() (it uses dos) so pr_windowptr exists. set it | ere quitting your program, but only if | pploaddata() didn't return an error. | after calling 'func()' pploaddata() doesn't check the checksum again, | only the returned boolean. therefore it is very important that your | function is correct and only returns true when the entered password has | the correct checksum ! | don't forget to copy your string to the memory pointed to by 'password' | before leaving 'func()' ! this password is needed to decrypt the file !! | pp_openerr - unable to open file. | pp_readerr - read error. | pp_nomemory - not enough memory to load file. | pp_crypted - file is encrypted (only when 'func' == -1). | pp_passerr - incorrect password, 'func()' returned false. | pp_unknownpp - crunched by unknown version of powerpacker. | do not forget to free the memory allocated by this function ! | use "freemem (buffer, len);" befo | buffer - address of (!) variable to hold memory location of loaded | &len - address of (!) variable to hold length of loaded file. | func - function to be called to prompt the user for a password, | null for the the default password prompt and -1 for no | password prompt. | error - 0 if all went ok, if not one of the following error codes will | be returned (defined in "libraries/ppbase.(h|i)"): | nated pathname of the file to load. | col - the effect to be used during decrunching. one of the | following (defined in "libraries/ppbase.[hi]"): | decr_col0 - flash color 0 | decr_col1 - flash color 1 | decr_pointer - flash mouse pointer | decr_scroll - weird stuff :-) | decr_none - no decrunching effect | memtype - type of memory to allocate (see allocmem()). | -eturn true, if not you should give the user a few more | chances (usually three in all) and return false if no correct password | was entered. the two arguments are pushed on the stack according to c | convention, so if you write your function in assembly you will find the | arguments on the stack, the pointer to the buffer at 4(a7) and the | checksum at 8(a7) (longword !). assembly functions must preserve all | filename - pointer to a null termi | + of function: | bool __stdargs myfunction (ubyte *password, uword checksum); | on entry 'password' points to a buffer to hold up to 16 characters and a | terminating zero (so 17 bytes in all), 'checksum' is the checksum of the | password we are looking for. your function must prompt for a string and | compare the checksum with 'checksum' (use ppcalcchecksum() for this). if | they are equal you must store the string in 'password' (in c you can use | ?gyc?'len'. you must | free this memory yourself (see note) ! | the 'func' argument is the address of a function to be called when | pploaddata() needs a password to decrypt an encrypted file. if you do | not want to load encrypted files call with func equal to -1, if you want | pploaddata() to use ppgetpassword(), call with func equal to null. | if you wish to use your own password prompting function you must call | pploaddata() with func equal to the address of this type | this function loads a file in memory. the memory necessary to load the | file will be allocated by this function. files crunched with powerpacker | will be decrunched, plain files will simply be loaded. if the file can't | be opened ".pp" will be appended before trying again. the address of the | loaded file will be stored in 'buffer', the length in | 6table of contents | name pploaddata() | error = pploaddata (filename, col, memtype, &buffer, &len, func); | ulong pploaddata (char *, ulo | gluedef ppgetlong | gluedef ppgetpassword | * void ppdecrunchbuffer (ubyte *, ubyte *, ulong *, ulong); | gluedef ppdecrunchbuffer | * bool ppgetstring (struct screen *, ubyte *, ulong, char *); | gluedef ppgetstring | * bool ppgetlong (struct scre | gluedef ppdecrypt | * bool ppgetpassword (struct screen *, ubyte *, ulong, uword); | gluedef ppgetpassword | * void ppdecrunchbuffer (ubyte *, ubyte *, ulong *, ulong); | * ulong ppcalcchecksum (char *); | gluedef ppcalcchecksum | * ulong ppcalcpasskey (char *); | gluedef ppcalcpasskey | * void ppdecrypt (ubyte *, ulong, ulong); | ifnd small_code | ifnd large_code | moveq.l #12323,a0 ; cause an error! | * now for the actual glue routines | xref _ppbase | section "ppglue",code | * ulong pploaddata (char *, ulong, ulong, ubyte **, ulong *, bool (*)()); | gluedef pploaddata | this_lib set _lvo\1 ; set the offset to call | * set small_code=1 for a4 addressing... | * set large_code=1 for absolute addressing... | * if neither, just cause an error... | callpp macro | ifd small_code | move.l _ppbase(a4),a6 ; if a4 addressing.... | ifd large_code | move.l _ppbase,a6 ; if not a4 addressing... | * to use link with 'lib:ppscglue.o' or 'lib:pplcglue.o' * | * (based on arp glue code, thanks arp :-) * | ifnd libraries_powerpacker_lib_i | include "libraries/powerpacker_lib.i" | * first some macros | * to assemble the small_code version use: * | * asm -olib:ppscglue.o -iinclude: -dsmall_code latticeglue.asm * | * to assemble the large_code version use: * | * asm -olib:pplcglue.o -iinclude: -dlarge_code latticeglue.asm * | * powerpacker library glue code * | * (for lattice c 5.0) * | * copyright (c) 1990 by nico fran | /* file is loaded at 'filestart' and can now be used */ | puts ("done, freeing file..."); | /* free all resources */ | if (filestart) freemem (filestart, filelen); | if (ppbase) closelibrary ((struct library *)ppbase); | oading text file !"); | case pp_nomemory: | puts ("no memory to decrunch file !"); | puts ("incorrect password, loading aborted !"); | case pp_openerr: | puts ("can't open file !"); | case pp_unknownpp: | puts ("crunched with unknown pp !"); | puts ("unknown error !"); | puts ("file in memory, using it..."); | puts ("you need powerpacker.library v33+ !"); | puts ("loading file..."); | err = pploaddata (file, decr_pointer, 0l, &filestart, &filelen, null); | if (err) { | switch (err) { | case pp_readerr: | puts ("error loading text file !"); | case pp_nomemory: | puts ("no memory to decrunch file !"); | #include <exec/types.h> | #include <exec/memory.h> | #include <libraries/dos.h> | #include <proto/exec.h> | #include <proto/dos.h> | #include <stdio.h> | /* if you define no_pragmas before including proto/powerpacker.h | you must link with ppscglue.o or pplcglue.o */ | #include <proto/powerpacker.h> | #include <libraries/ppbase.h> | struct ppbase *ppbase = null; | ubyte *filestart = null; | ulong filelen; | char file[108] = "testfile"; | if (!(ppbase = (struct ppbase *)open | * (c) jul 1990 nico fran | * this source is public domain * | * in all respects. * | powerpacker.library written by nico fran | ois (yes, nico is my first name :-) | thanks to moroder andreas for the useful suggestions. | (c) 1990 nico fran | thanks to \x/ amiga for being the best computer ever ! | ude the correct files and open | powerpacker.library. to call a function they must load a6 with the library | base, put the argum | ents in the appropriate registers and jump to the library | vector offset of the function they want to call. see 'example.asm' for a very | simple example. | all library functions are explained in the file 'pplib.doc'. | library history: | release 1.0 (library version 33.1) | first release. | on 4.0 or lower, you must define no_pragmas before | including 'proto/powerpacker.h' and link with ppscglue.o (small code) or | pplcglue.o (large code). | programmers that use manx c can use 'bind' to generate the glue routines | they need (or if they are using 5.0 they can of course use pragmas for in-line | library calls). | assembly programmers should also include the correct files and open | powerpacker.library. to call a function they must load a6 with the library | base, put the argum | clicking its icon). | using powerpacker.library | if you are a c programmer all you need to do is include the correct | headers and open powerpacker.library. after that you can use the functions in | the library as if they were c functions. if your program quits it must of | course close the library again. see 'example.c' for a very simple example. | if you are using lattice c 5.0 and you don't want to use pragmas, or if | you are using versi | s exactly what this is. | this library tries to make it very easy to support powerpacked files. it | is a standard amiga shared, runtime library and is called exactly like all | the other amiga libraries. using this library it will be a lot simpler to make | your program 'powerpacker compatible' than with the previously distributed | decrunch source. | to install powerpacker.library copy it to your libs: directory by hand, | or run the installation script 'install' (by using 'execute' or | (c) jul 1990 nico fran | first of all read the distribution file for information on... euh well... | several people suggested the development of a library to help programs | decrunch files crunched with powerpacker, and that i | powerpacker support lib 33.1 (14 jul 1990) | nuresident program | has a checksum error. | cannot open from file %s | new process %d. | con:0/0/640/100/arp process | s@nudirectory error | out of memory | bad template or internal error | arp warning! a program didn't free its resources! | unmatched quotes | too many arguments | bad positional argument | keyword needs an argument | required argumen | sorry, no extra help available. | arp shell process | arp background shellarp.library | powerpacker support lib 33.1 (14 jul 1990) | pptype 1.1 written by nico fran | ois (yes, nico is my first name :-) | (c) 1990 nico fran | thanks to \x/ amiga for being the best computer ever ! | ogram useful ! | program history: | first release. | no wildcards yet, sorry :( | uses the all new powerpacker.library => shorter code :^d | starting pptype from the cli with a directory as an argument now puts | up the requester positioned in that directory. extremely useful once | you get used to this :^) | if you are running workbench 2.0 pptype will use the asl.library | instead of the arp.library (for the filerequester). | e reason i didn't make pptype detach automatically from | the cli is that it then could no longer be made resident, and i | thought it was more useful if it could. | as always, i hope you find this program useful ! | program history: | first release. | - when pptype makes the pages too long or too short check the pagelength | in preferences. also set the margins as wide as possible (e.g. left | margin 1 and right margin 80). | - a tip: put something like this in your startup-sequence: | 'alias pptype run pptype -t3 []' | this way pptype will always be run as a background task and use tab | size of 3. this is the best way to use pptype as a semi-detachable | o tabsize use this to change the tabsize. (e.g. use 'tabsize=3') | note: - pptype will add '.pp' to the filename when the file wasn't found. | this is very useful in the workbench enviroment: you can make an | icon for 'text.doc' but name the file 'text.doc.pp'. now the | workbench will show an icon with 'text.doc' as name, but if you | doubleclick it 'text.doc.pp' will be displayed. (as long as there | ooltypes, they should equal on or off | and they are all set to on by default (except tabsize, which should equal a | number). these tooltypes should be set in the pptype icon, not the text file | icons ! (use 'info' from the workbench menu, or 'information' from the icons | menu if you are using workbench 2.0) | o header equivalent to the '-h' option above. (e.g. use 'header=off') | ft key and select multiple | text file icons ending by double clicking the last text file icon (files will | be printed in the same order as they were selected), you can double-click the | pptype icon and enter a filename in the string gadget (or the arp file | requester) you will be presented with, or if you are using workbench 2.0 you | can drop an icon on top of the pptype icon. | there are some preferences you can set with the aid of the workbench | tooltypes. pptype will look for five t | this will print to 'ram:file' instead of the printer, pages with a | length of 50 lines will be used. the first document will have a plain | header without ansi escape codes, the second file will have a bold | header. the tabs will be set every 3 characters in the second file. | - via the workbench: | there are three different ways of using pptype via the workbench: you | can single click the pptype icon, press the shi | -p switch page numbering in the header on/off. | -n switch filename in the header on/off. | -a switch the use of ansi escape codes to print the header in bold | on/off. a header in bold gives a nice effect, but you may want to | switch this off when output is redirected to a file. | print the file 'text.doc' but do not print a header at the top of each | -c# use this to override the width. | -t# set tabsize used to print. (default 8, max. 16) | the following options are switches that can be toggled: | -h switch header on/off, if on, the top two lines of each page are | used for a header and a blank line. the header can hold both | the filename (without the path and the .pp) and the pagenumber. | when the header is switched off the top two lines will be used | for text. | if you 'run' pptype the output will go to a small window pptype will | open. this way the cli is free to be used for other things and you won't be | bothered by the output from pptype. if you are using conman or kickstart 2.0 | the window will not be activated and will have no sizing gadget. | options: (# means a number) | -o<out> use this to redirect the output to a file instead of the | -l# use this to override the preferences page length. | p ares command or the amigados resident command for | this. you can't make pptype resident when it is crunched !! the file is | supplied as an uncrunched command file with the pure bit set. | if you omit the filename, you will be presented with either a file | prompt or a filerequester (if asl.library or arp.library is available). | entering pptype with a directory instead of a file as an argument will also | get you a requester, but it will be positioned in the directory you specified. | et a usage template. | you use pptype like this: | with <opts> = [-o<out>] [-c#] [-l#] [-t#] [-a|h|p|n] | as you can see, pptype accepts multiple filenames on its command line, | you can also use the options between two filenames. pptype does not support | wildcards yet :-(, these will probably be supported in the next version. | pptype can be made resident so it doesn't have to be loaded every time | you use it, use the ar | th and pagelength, | so check that these are correct. also make sure all the other printer | preferences are set correctly (e.g. correct printer driver) and that the | 'printer.device' and the 'parallel.device' or 'serial.device' (depending on | your printer) are in devs:. if you want to make use of the filerequester you | should also put the 'arp.library' in libs:. | pptype can be used in four different ways. | - first of all via the cli or shell: | if you enter 'pptype ?' you will g | to 50 times faster crunching and | overlay crunching. | pptype will print a file (or files) to the printer or a file, it will | decrunch files crunched with powerpacker before printing them. a header can | be printed at the top of each page. the tabsize is set to 8 by default, but | can be changed. the filename in the header will not include the path nor will | it have the '.pp' suffix of crunched data files. | pptype will check the current preferences for pagewid | uptype also loads and prints files crunched with powerpacker :^) | if you haven't got powerpacker you are of course missing one of the main | features of this program. powerpacker is available as shareware (up to | version 2.3b) or as a commercial program (version 3.0a). order a copy for | $17.50 (europe) or $20 (outside europe) from uga, p.o.box 881, 3700 aw zeist, | the netherlands (only eurochecks in dutch guilders or cash). the commercial | version offers several enhancements like 40 | de the file up in pages before | printing and maybe even, if at all possibe, print the filename and page | number at the top of each page. the program should get the pagelength from | preferences, because not everybody has the same type of paper and the tab | size should be user definable (never understood why the ansi tab is set every | whopping 8 characters, i prefer a much smaller tabsize). since nobody else | seems to wanna write this, i decided to do it myself. probably needless to | have been unable to find a | simple, yet useful printing program for the amiga. sure, you have all these | powerful text formatters, but they are way too complicated to quickly print | out something. almost all the other programs print by dumping everything to | the printer, printing straight over paper perforation instead of sending a | formfeed (euh... including ppmore :-). | therefore i thought it was about time somebody wrote a utility to print | out a file that would first of all divi | nt this program, or if you find | any bugs, please let me know. | write to the following address: | nico fran | 3060 bertem belgium | 1. an introduction | 1. an introduction | hmmm, ppprint... yeeeez, enough ps to make soup out of ! let's call it | i have never been able to figure out why i | pptype 1.1 user manual | this program is freeware, this means that you can copy it freely as long | as you don't ask any more money for it than a nominal fee for copying. if | you want to distribute this program you should keep this document with it. | this program cannot be used for commercial purposes without written permission | from the author. | if you have suggestions or remarks abou | 0m powerpacker print utility | 32m written by nico fran | ois (powerpeak) | t open printer (or file) ! | line too long ! | error printing ! | out of memory ! | you need powerpacker.library v33+ ! | invalid # of columns ! | invalid # of lines ! | invalid tabsize ! | invalid option ' | read error ! | incorrect password, loading aborted ! | can't open file ! | empty file ! | <tab> : toggle cycling on/off. | 'p' : print screen. | 'l' : load new picture. | any other key or right mouse button quits. | 0m powerpacker ilbm displayer | 32m written by nico fran | ois (powerpeak) | |dssword, loading aborted ! | can't open file ! | picture too small | no memory for screen | can't open window | bad ilbm file ! | not an iff ilbm file ! | n]nuppshow screen | out of memory ! | you need powerpacker.library v33+ ! | invalid option ' | read error ! | ppshow 1.2 written by nico fran | ois (yes, nico is my first name :-) | (c) 1990 nico fran | thanks to \x/ amiga for being the best computer ever ! | rewritten cycling routine in assembly, so less overhead when cycling. | uses the all new powerpacker.library => shorter code. | starting ppshow from the cli with a directory a | s an argument now puts | up the requester positioned in that directory. extremely useful once | you get used to this :^) | if you are running workbench 2.0 ppshow will use the asl.library | instead of the arp.library (for the filerequester). | fixed serious bug: memory wasn't freed when an iff error occured. | no longer tries to display small brushes (intuition doesn't like very | small screens :( ) | d a fast but faulty decruncher in 1.1. it | sometimes didn't decrunch correctly, this has now been fixed. the | decruncher is still 40% faster than the 1.0 one. (and it's 2 bytes | rewritten cycling routine in assembly, so less overhead when cycling. | uses the all new powerpacker.library => shorter code. | starting ppshow from the cli with a directory a | decrunching is about 40% faster (accidently used slow decruncher in 1.0) | screen now pops to front when picture is ready to be viewed, not before. | filerequester used when arp.library is available. | 'l' command added to load other pictures without restarting ppshow. | the guru isn't with me lately, after using a slow decruncher in 1.0 | by accident i now use | em as well as uncrunched ilbm files. so save iff | files uncrunched (if you can, e.g. with pixmate) before crunching them, this | way you will get the best crunching results. | as always, i hope you find this program useful ! | program history: | first release. | please note that the printer.device has | to be in the 'devs:' directory for ppshow to be able to print, you | should also have a correct system-configuration for your printer. | - press 'l' to load another picture, you will be prompted for a filename. | 4. note on crunching | a lot of iff ilbm files are already crunched with the standard byterun1 | compression. powerpacker will crunch these files even further (most of the | time) but will not crunch th | viewing program to do so, looks like pal amiga | owners still get forgotten. all amiga display modes (like ham, ehb) | are of course also supported. | - deluxe paint cycling is supported, press <tab> to (de)activate. up to | 8 cycles are supported (dpaint iii currently only supports 6). | - ppshow has the ability to print the screen it is displaying, all you | have to do is press 'p' on the keyboard and wait. the mouse pointer | will be visible while printing. | is no 'house.pic' file in the directory !) | - ppshow uses the filerequester of the asl.library or arp.library if | - abort ppshow by pressing any key (except <tab> or 'p') or the right | mouse button. the screen can be dragged by an invisible drag bar at | - the pesky little mouse will be removed while displaying. | - ppshow offers full overscan support, pal or ntsc. as far as i know | this is the first ilbm | ork, if e.g. it's in the system directory you should enter | ':system/ppshow'. last of all select the 'save' gadget. | note: - ppshow will add '.pp' to the filename when the file wasn't found. | this is very useful in the workbench enviroment: you can make an | icon for 'house.pic' but name the file 'house.pic.pp'. now the | workbench will show an icon with 'house.pic' as name, but if you | doubleclick it 'house.pic.pp' will be displayed. (as long as there | e click the ppshow icon and then double click the picture icon or you | can double-click the ppshow icon and enter the filename in the string gadget | you will be presented with. | you set the default tool by single clicking the icon of the picture | and selecting 'info' from the workbench menu. you will get a window with | several gadgets in it, click in the string gadget where it says 'default | tool' and enter ':ppshow'. ppshow should be in the root directory of your | disk for this to w | sident when it is crunched !! the file is supplied | as an uncrunched command file with the pure bit set. ppshow is reentrant as | well, so you can run it from several cli's at the same time. (not that this | is very useful, but it's possible :-d) | - via the workbench: | there are three different ways of using ppshow via the workbench: you | can set the default tool of the (crunched) ilbm file to 'ppshow', you can | n: '-h'. this option is used to | force ham mode when no camg chunk is found. if you don't specify this option | ppshow will assume a 6 plane screen is extra half brite. (note that it is | wrong for an amiga iff ilbm file not to have a camg chunk, especially when | there can be doubt about what display mode to pick !) | ppshow can be made resident so it doesn't have to be loaded every time | you use it, use the arp ares command or the c: resident command for this. | you can't make ppshow re | x:erpacker 2.0 or higher ppshow will first decrunch it | for you. if the file was encrypted you will be prompted for the password. | if you enter ppshow without options, you will be presented with either a | file prompt or the arp filerequester (if arp.library or asl.library is | available). entering ppshow with a directory instead of a file as an argument | will also get you a requester, but it will be positioned in the directory you | there is only one option in this versio | 3ds (only eurochecks in dutch guilders or cash). the commercial | version offers several enhancements like 40 to 50 times faster crunching and | overlay crunching. | ppshow can be used in four different ways. | - first of all via the cli: | if you enter ppshow without arguments you will get a usage template. | you use ppshow like this: | the program will then load the ilbm file and display it. if the file | was crunched using pow | o show normal iff ilbm files or | ilbm files crunched with powerpacker. the decrunching is done automatically | so the user doesn't have to know if a file is crunched or not. | if you haven't got powerpacker you are of course missing one of the main | features of this program. powerpacker is available as shareware (up to | version 2.3b) or as a commercial program (version 3.0a). order a copy for | $17.50 (europe) or $20 (outside europe) from uga, p.o.box 881, 3700 aw zeist, | t this program, or if you find | any bugs, please let me know. | write to the following address: | nico fran | 3060 bertem belgium | 1. an introduction | 4. note on crunching | 1. an introduction | ppshow was written to complement one of my other utilities, powerpacker | (a command and data cruncher). it is used t | ppshow 1.2 user manual | this program is freeware, this means that you can copy it freely as long | as you don't ask any more money for it than a nominal fee for copying. if | you want to distribute this program you should keep this document with it. | this program cannot be used for commercial purposes without written permission | from the author. | if you have suggestions or remarks abou | 0mexit ppmore | 0m powerpacker more replacement | 32m written by nico fran | ois (powerpeak) | 0msearch (case insensitive) | h (case sensitive) | 0msearch next/previous | 0mtoggle percentage,line | 0mgoto percentage,line | 0mprint file | 0mdump page to printer | 0mrefresh window | 0mload a new file | 0mnext page (more) | 0mprevious page (less) | 0mprevious line | 0mtop/bottom of file | 0msearch (case insensitive) | 0m powerpacker more replacement | written by nico fran | ois (powerpeak) | printing in progress, continue... | no memory to decrunch file ! | incorrect password, loading aborted ! | can't open file ! | empty file ! | not an ascii file ! | can't open window ! | print job finished ! | can't quit, printing in progress ! | printer busy ! | unknown command - press <help> for command summary | ppmore 1.7 command summary - press any key to exit | invalid option ' | you need powerpacker.library v33+ ! | error loading text fil | my first name :-) | thanks to holger lubitz for the many bug reports :^) and all the | useful suggestions. | (c) 1990 nico fran | thanks to \x/ amiga for being the best computer ever ! | ppmore filters out form-feeds and replaces them with <form feed>. | if you are running workbench 2.0 ppmore will use the asl.library | instead of the arp.library ( | cffor the filerequester). | now fully supports system & screen fonts different than topaz 8. | automatic refresh when you resize the window (only on kick 2.0, | couldn't be done on 1.3 because of bug in console.device) | used different technique to find workbench screen size, using | normaldisplayrows no longer seemed to work on 2.0 ?!?!? | ppmore 1.7 written by nico fran | ois (yes, nico is | es the all new powerpacker.library => shorter code :^d | starting ppmore from the cli with a directory as an argument now puts | up the requester positioned in that directory. extremely useful once | you get used to this :^) | small bug fixed in search routine, it sometimes missed an occurence. | ppmore filters out form-feeds and replaces them with <form feed>. | if you are running workbench 2.0 ppmore will use the asl.library | instead of the arp.library ( | l the new goodies of the new os :^) | small update on special request. now possible to dump just the visible | page to the printer instead of the entire file. | no kickstart 2.0 only version yet. changed some stuff so ppmore looks | best on kick 2.0 and still runs on kick 1.3. | when ppmore was loading ppmore would hang | until you resized its window, this has been fixed. (actually, i | worked around this problem, i think it was an intuition bug :-) | pgup, pgdn and the shifted arrow keys now do an immediate page up/down | without scrolling, space and bs still scroll up/down. | changed some things so ppmore runs better on kickstart 2.0, next | version of ppmore will probably be a kick 2.0 only version so i can | make use of al | bugs in search fixed, didn't work correctly when used in large files and | sometimes didn't work at all :-( | error output goes to the console when you start ppmore from the cli, | workbench error reporting still in small window as before. | the ascii check was made less strict (again). i got a lot of complaints | from german users trying to display german documents, this should now | if you deactivated the window | the guru isn't with me lately, after using a slow decruncher in 1.3-1.5 | by accident i now used a fast but faulty decruncher in 1.5a. it | sometimes didn't decrunch correctly, this has now been fixed. the | decruncher is still 40% faster than the 1.3-1.5 one. (and it's 2 bytes | keypad = movement. (for pc-lovers, yek :-( ) | ppmore now supports all keymaps !! i think especially german and french | amiga users will be grateful for this. | less than 600 bytes longer than version 1.4 (i love this :-d) | decrunching is 40% faster, this was a stupid mistake in 1.3 to 1.5, | i accidently used a slower instead of a faster decrunch routine :-( | .g. now allows files to contain a ' | another 300 bytes shorter than version 1.3 :-) | bug fixed: search/goto window always opened on workbench screen. | find previous also implemented. | load a new file from within ppmore. | ppmore uses arp file requester if arp.library is available. | line count, as well as goto line. | display position as percentage or line number. | ar (percentage). | goto n% function added, replaced 'refresh' gadget with this function. | 'exit ppmore' only selected when button is released on top of gadget. | no bugs removed because none where found. :-) | only about 700 bytes larger than version 1.2 ! | bug fixed: ppmore 1.3 was not 100% pure, version 1.4 is ! | ascii check less strict (e | ppmore can now be made resident and is reentrant. (provided ppmore is | not crunched) | improved error reporting, the main window only opens when ppmore is | going to display the file. | file is checked to see if it is an ascii (text) file. | two new power-options for use of ppmore from other programs: | -@ to display memory, -s to open window on a custom screen. | fast assembler search function added. | display position is displayed in titleb | rewritten some routines in assembler, results in a slightly faster | and smaller ppmore. | keyboard input improved. autorepeat of keys is ignored so you can keep | on pressing <page down> without typing it 20 times ahead ! | gadget input also improved, now handles repeat. | ppmore now prompts for a filename when double-clicked from workbench. | program history: | first release. | '.pp' suffix added to filename when file not found, very useful in | workbench enviroment. | ppmore now also loads encrypted files. (powerpacker 2.3a or higher) | and/or asyncrun instead of | the amigados execute function to execute ppmore from your programs | because the arp functions also work when your program has been | started from workbench. i suppose kickstart 2.0 will offer some | better ways of executing programs. | - watch out when using these options, it is very easy to crash the amiga | if you don't know what you are doing !!! | as always, i hope you find this program useful | on address 0xc2d8a0. | load and display the file 'myfile' and open window on the front | note: - the options are case sensitive. | - the @ option must always be the last option on the command line. | - if you open ppmore on another screen ppmore will not check if the | screen closes !! ppmore should always finish before this screen is | - i advise you to use the arp 1.3 syncrun | frontmost screen will be used. | ppmore will open a window 'listing of my chunk', start | displaying at address 0x1a000 and stop at address 0x1bd4e. the | memory will not be freed after ppmore exits. | same as previous but now ppmore will free the memory chunk and | open the main window on the custom screen with the screen struct | ptions can be followed by another comma | and a string to give the memory chunk a name, if this string is omited | ppmore will use the name 'memory'. this string ends with the end of the | command line so it can contain spaces. | with this option you can use ppmore on another screen. you must | provide a screen address in hex. ppmore will the open the main window | on this screen. if you specify a '*' instead of a screen address the | pmore_freemem = bit 0 of the flag-word = 0x1. | when this flag is set ppmore will free the memory after it has | finished, if it isn't set ppmore will just exit and leave the memory | alone. this way your program can start ppmore with the ppmore_freemem | flag set and exit before ppmore has ended. ppmore will then free the | memory instead of your program. | the address, length and flags must be presented as hex longwords | two power options to make it possible to use it from other | programs. this way you don't have to include a text displayer in your | programs, you just execute ppmore with one (or all) of the following options: | if you specify this option ppmore will not load a file but instead it | will display a chunk of memory. you specify the memory addres and | length in the command line as well as some flags. the current version | only has one flag: p | otes on printing: | - the printer.device has to be in the devs: directory for ppmore to be able | to print, you should also have a correct system-configuration for your | - you can continue to read the text when ppmore is printing (this is a | multitasking computer ! :-), you can't quit when printing is still in | 4. using ppmore from other programs | if you are not a programmer you can skip this section. | ppmore has | s, but if you | doubleclick it 'text.doc.pp' will be displayed. (as long as there | is no 'text.doc' file in the directory !) | - once you are in ppmore press 'l' to load a new file, this is | especially useful if the arp.library is available. | ppmore can be controlled by keyboard or by intuition gadgets. to get a | summary of the keyboard commands press <help>, the function of the gadgets | shouldn't be hard to understand. | tool' and enter ':ppmore'. ppmore should be in the root directory of your | disk for this to work, if e.g. it's in the system directory you should enter | ':system/ppmore'. last of all select the 'save' gadget. | note: - ppmore will add '.pp' to the filename when the file wasn't found. | this is very useful in the workbench enviroment: you can make an | icon for 'text.doc' but name the file 'text.doc.pp'. now the | workbench will show an icon with 'text.doc' as name | ault tool of the (crunched) text file to 'ppmore', you can | single click the ppmore icon and then double click the text file icon or you | can double-click the ppmore icon and enter the filename in the string gadget | (or the arp filerequester) you will be presented with. | you set the default tool by single clicking the icon of the text file | and selecting 'info' from the workbench menu. you will get a window with | several gadgets in it, click in the string gadget where it says 'defaul | pure bit set. | if you enter ppmore without options, you will be presented with either a | file prompt or a filerequester (if arp.library or asl.library is available). | entering ppmore with a directory instead of a file as an argument will also | get you a requester, but it will be positioned in the directory you specified. | enter 'ppmore ?' for a little usage message. | - via the workbench: | there are three different ways of using ppmore via the workbench: you | can set the def | land display it. if the file | was crunched using powerpacker 2.0 or higher ppmore will first decrunch it | for you. if the file was encrypted you will be prompted for the password. | the options are explained in section 4. | ppmore can be made resident so it doesn't have to be loaded every time | you use it, use the arp ares command or the c: resident command for this. | you can't make ppmore resident when it is crunched !! the file is supplied | as an uncrunched command file with the | eymn, p.o.box 881, 3700 aw zeist, | the netherlands (only eurochecks in dutch guilders or cash). the commercial | version offers several enhancements like 40 to 50 times faster crunching and | overlay crunching. | ppmore can be used in four different ways. | - first of all via the cli: | if you enter ppmore without arguments you will get a usage template. | you use ppmore like this: | the program will then load the ascii file | and it always loads the complete file in memory (more only loads part of the | file and will load the rest when needed). if you can live with these | differences, you can replace more with ppmore anywhere you want. | if you haven't got powerpacker you are of course missing one of the main | features of this program. powerpacker is available as shareware (up to | version 2.3b) or as a commercial program (version 3.0a). order a copy for | $17.50 (europe) or $20 (outside europe) from uga | @cher). it is used to read normal ascii | text files or text files crunched with powerpacker. the program itself is | about 10k long and when you know you save about 60% when you crunch a text | file, you can see that this could save a lot of space on your disks. | ppmore was written as a more replacement (as you could have guessed :-), | so i tried to keep the keyboard commands the same as well as adding some new. | there are two main differences between ppmore and more, ppmore uses gadge | bt this program, or if you find | any bugs, please let me know. | write to the following address: | nico fran | 3060 bertem belgium | 1. an introduction | 4. using ppmore from other programs | 1. an introduction | this program was written to complement one of my other utilities, | powerpacker (a command and data crun | ppmore 1.7 user manual | this program is freeware, this means that you can copy it freely as long | as you don't ask any more money for it than a nominal fee for copying. if | you want to distribute this program you should keep this document with it. | this program cannot be used for commercial purposes without written permission | from the author. | if you have suggestions or remarks abou | out of paper. | check printer and cabling. | check printer and paper. | printer trouble: | make printer on-line. | thanks to \x/ amiga for being the best computer ever ! | to play the animation. note that user options override | this rate (-j# or jiffies=<j>). | - ppanim is short (only about 7k) ! a lot shorter than sparta's showanim, | and on top of that it has a lot more features :-) | - ppanim is compatible with kickstart & workbench 2.0. | as always, i hope you find this program useful ! | program hist | first release. | ppanim 1.0 written by nico fran | ois (yes, nico is my first name :-) | special thanks to jim kent (whom i don't know :-) for making his | anim #5 decoding source public domain. | (c) 1990 nico fran | 9(q the 'dpan' iff chunk dpaintiii saves with animations to find | the rate at which to play the animation. note that user options override | this rate (-j# or jiffies=<j>). | - ppanim is short (only about 7k) ! a lot shorter than sparta's showanim, | and on top of that it has a lot more features :-) | - ppanim is compatible with kickstart & workbench 2.0. | as always, i hope you find this program useful ! | program hist | -button. the screen can | be dragged by an invisible drag bar at the top. | - the pesky little mouse will be removed while playing. | - ppanim offers full overscan support, pal or ntsc. all amiga display | modes (like ham, ehb) are of course also supported. | - press 'l' to load another animation, you will be prompted for a filename. | - press 's' or the left mouse button to start/stop the animation. press | 'n' to advance a frame (when stopped). | - ppanim reads | anim' but name the file 'bird.anim.pp'. now the | workbench will show an icon with 'house.pic' as name, but if you | doubleclick it 'bird.anim.pp' will be played. (as long as there | is no 'bird.anim' file in the directory !) | - ppanim uses the filerequester of the asl.library or arp.library if | - ppanim supports a change of the color palette during the animation. | - abort ppanim by pressing 'q' or the right mouse | recognizes the following | tooltypes (for more info see cli options): | times=<number> set number of loops or repeats. | jiffies=<jiffies> set delay in jiffies. | repeat select repeat mode. | once play once only. | lace force interlace. | note: - ppanim will add '.pp' to the filename when the file wasn't found. | this is very useful in the workbench enviroment: you can make an | icon for 'bird. | icon of the picture and | selecting 'info' from the workbench menu. you will get a window with several | gadgets in it, click in the string gadget where it says 'default tool' and | enter ':ppanim'. ppanim should be in the root directory of your disk for this | to work, if e.g. it's in the c directory you should enter ':c/ppanim'. last | of all select the 'save' gadget. | you can set the same options as from cli by setting tooltypes in the | animation's icon (not ppanim's icon!). ppanim | - via the workbench: | there are three different ways of using ppanim via the workbench: you | can set the default tool of the (crunched) ilbm file to 'ppanim', you can | single click the ppanim icon and then shift double click the animation icon or | you can double-click the ppanim icon and enter the filename in the string | gadget (or filerequester) you will be presented with. | you set the default tool by single clicking the | %nause the first frame takes | longer to draw than the rest). | ppanim can be made resident so it doesn't have to be loaded every time | you use it, use the arp ares command or the c: resident command for this. | you can't make ppanim resident when it is crunched !! the file is supplied | as an uncrunched command file with the pure bit set. ppanim is reentrant as | well, so you can run it from several cli's at the same time. (not that this | is very useful, but it's possible :-d) | e between loop mode and repeat mode is the following: in | loop mode ppanim expects the last two frames of the animation to be the same | as the first two frames, this makes looping easy and above all fast (dpaint | saves animations like this). some animations are not like this however and | if you want these to loop correctly you must select repeat mode (-r), ppanim | will then simply restart the animation when it finishes (note that there may | be a small hickup when the animation repeats bec | when there can be doubt about what display mode to pick!) | -j# : set a delay between frames in jiffies. a jiffie is 1/50s (pal) | -l# : set number of times to loop. | -r[#]: select repeat mode instead of loop mode (see below) and | (optionally) set number of repeats. | -i : force screen to be interlaced. | -o : play the animation once, no loop (same as -l1 or -r1). | 4ntering ppanim with a directory instead of a file as an argument will also | get you a requester, but it will be positioned in the directory you specified. | ppanim has several options: | -h : this option is used to force ham mode when no camg chunk is | found. if you don't specify this option ppanim will assume a | 6 plane screen is extra-halfbrite. (note that it is wrong for | an amiga iff anim file not to have a camg chunk, especia | dlate. you use ppanim like | the program will by default load the anim file and play it in a loop. | if the file was crunched using powerpacker 2.0 or higher ppanim will first | decrunch it for you. if the file was encrypted you will be prompted for the | if you enter ppanim without options, you will be presented with either a | file prompt or a filerequester (if arp.library or asl.library is available). | ssing one of the main | features of this program. powerpacker is available as shareware (up to | version 2.3b) or as a commercial program (version 3.0a). order a copy from | uga, p.o.box 881, 3700 aw zeist, the netherlands. the commercial version | offers several enhancements like 40 to 50 times faster crunching of programs | with overlays. | ppanim can be used in four different ways. | - first of all via the cli: | if you enter 'ppanim ?' will get a usage temp | (a command and data cruncher). it is used to play normal iff anim #5 files or | anim files crunched with powerpacker. the decrunching is done automatically | so the user does not have to know if a file is crunched or not. the anim #5 | format is used by most anim generating programs, including dpaint iii and | ppanim uses the powerpacker.library, so make sure it is present in your | if you haven't got powerpacker you are of course mi | 5 written permission | from the author. | if you have suggestions or remarks about this program, or if you find | any bugs, please let me know. | write to the following address: | nico fran | 3060 bertem belgium | 1. an introduction | 1. an introduction | ppanim was written to complement one of my other utilitie | ppanim 1.0 user manual | this program is freeware, this means that you can copy it freely as long | as you don't ask any more money for it than a nominal fee for copying. if you | want to distribute this program you should keep this document with it. both | program and document must be distributed in their original unmodified form. | the program cannot be used for commercial purposes without | 0m powerpacker anim #5 player | 32m written by nico fran | ois (powerpeak) | -h : default for 6 planes is ham. | jdelay (in jiffies) between frames. | -l# : set number of loops. | -r[#]: set repeat mode and number of repeats. | -i : force interlace. | -o : play once only. | following keys are active during animation: | 'l' : load new animation. | 's' : start/stop animation (= left mouse button). | 'n' : next frame (only when stopped). | 'q' : quit (= right mouse button). | 0m powerpacker anim #5 player | 32m written by nico fran | ois (powerpeak) | -h : default for 6 planes is ham. | n]nunot an anim #5 file! | warning: unknown bits set in a | t an iff anim file! | no ilbm in anim! | picture too small! | can't open screen! | can't open window! | different size ilbm in anim! | n]nuppanim screen | out of memory! | can't open timer.device! | you need powerpacker.library v33+ ! | invalid option ' | incorrect password, loading aborted! | can't open file! | bad anim file! | coded by leo of cytax | xatyc yb edam saw ksid siht | 42m contact cytax | 42m division karlsruhe at: | 42m 7500 karlsruhe 7500 karlsruhe | 42m germany germany | xatyc yb edam saw ksid siht | !unable to create background task | /* load file */ | void pp_freestuff() | /* load file */ | else pp_seek = 4l; | /* read decrunched length */ | /* check if crunched */ | ubyte color; | ulong typeofmem; | ulong *length; | ulong pp_passchecksum, pp_filelen, pp_crunlen, pp_efficiency; | ubyte pp_crunched, pp_crypt = false; | ulong pp_seek, pp_hdr, dummy; | pp_coladdr[4] = (ulong)&dummy; /* dummy for decrunch color 'none' */ | if (!(pp_fileinfoblock = (struct fileinfoblock *)allocmem | #define sizeof (ulong)sizeof | #define myread(to,len) if (read (pp_lock, (char *)to, len) != len) {\ | extern uword pp_calcchecksum(); | extern ulong pp_calcpasskey(); | extern void pp_decrunchbuffer(); | extern void pp_decrypt(); | static struct fileinfoblock *pp_fileinfoblock; | static ulong pp_bufferlen; | static ulong pp_coladdr[5] = { 0xdff180, 0xdff182, 0xdff1a2, 0xdff102, 0 }; | void pp_free | rovided this * | * copyright notice is left intact ! * | * copyright (c) apr 1990 by nico fran | ois (powerpeak) * | #include <exec/types.h> | #include <exec/io.h> | #include <exec/memory.h> | #include <libraries/dos.h> | #include <proto/exec.h> | #include <proto/dos.h> | #include "ppdata.h" | #define safety_margin 8 | * 'pp_loaddata' powerpacker data file support function v2.0 * | * you may use this code for non-commercial purposes p | * puts ("file is encrypted !"); * | * case pp_readerr: * | * puts ("loading error !!!"); * | * if (err == pp_loadok) { * | * dosomething (mymem, mylen); * | * freemem (mymem, mylen); * | * else switch (err) { * | * case pp_crypted: | * #include <ppdata.h> * | * ubyte *mymem = null; * | * ulong mylen = 0; * | * prompt the user for a password and call again with * | * pw pointing to this password. if the password is * | * incorrect error is pp_passerr, otherwise the file will * | * be loaded and decrypted. * | * note: - after loading you must free the allocated memory: * | * do not forget !!!!! * | * freemem (buffer, length); * | * - errors are defined in ppdata.h * | * - for encrypted data call first with pw = null, then * | * if error is pp_crypted you know file is crypted. | * char *file; filename * | * ubyte col; color (see ppdata.h) * | * ulong typeofmem type of memory that will be allocated * | * ubyte **buffer pointer to pointer to buffer * | * ulong *length pointer to buffer length * | * char *pw; pointer to password or null | * powerpacker data file support function v2.0 * | * (read powerpacker.doc for more information) * | * error = pp_loaddata (file, col, typeofmem, buffer, length, pw) | * pp_decrypt (ubyte *, ulong, ulong); | bsr.s readd1sub ; read offset | * pp_calcchecksum (char *); | * pp_calcpasskey (char *); | cmp.w d6,d2 ; if d2 = 3 check offset bit and read length | bsr.s readbit ; read offset bit (long/short) | bsr.s readd1sub ; read offset | roxr.l #1,d5 ; x-bit set by lsr above | lsr.l #1,d5 ; this will also set x if d5 becomes zero | roxr.l #1,d5 ; x-bit set by lsr above | bsr.s readd1 ; read code | move.b 0(a5,d1.w),d0 ; get number of bits of offset | lsr.l d1,d5 ; get rid of empty bits | bsr.s readbit ; check if crunch or normal | lsr.l #1,d5 ; this will also set x if d5 becomes zero | ; a3 -> file, a0 -> longword after crunched, a5 -> ptr to eff., a6 -> decr.col | move.l a3,a2 ; remember start of file | move.l -(a0),d1 ; get file length and empty bits | bsr.s readbit ; this will always get the next long (d5 = 1) | * decrunch a few bytes higher (safety margin) than the crunched file * | * to decrunch in the same memory space. (8 bytes suffice) * | section text,code | * endcrun : ubyte * just after last byte of crunched file * | * buffer : ubyte * to memory block to decrunch in * | * &efficiency: ptr to longword defining efficiency of crunched file * | * coloraddr : address of color register or an address of a dummy * | * powerpacker decrunch assembler subroutine v2.0 (reentrant !) * | * pp_decrunchbuffer (endcrun, buffer, &efficiency, coloraddr); * | define pp_readerr 1002 | #define pp_nomemory 1003 | #define pp_crypted 1004 | #define pp_passerr 1005 | * powerpacker data file support function * | * include file (apr '90) * | /* decrunch colors */ | #define decr_col0 (ubyte)0 | #define decr_col1 (ubyte)1 | #define decr_pointer (ubyte)2 | #define decr_scroll (ubyte)3 | #define decr_none (ubyte)4 | /* error codes */ | #define pp_loadok 0 | #define pp_lockerr 1000 | #define pp_openerr 1001 | runches while loading ... | poker solitaire scores | # makefile for ppdata.o | this disk was made by cytax | ; script file to install powerpacker.library | echo "*npowerpacker.library installation script*n" | if exists libs:powerpacker.library | echo "libs:powerpacker.library already exists !" | ask "shall i overwrite ?" | if not warn | echo "installation aborted.*n" | skip quitit | copy powerpacker.library libs:powerpacker.library | echo "powerpacker.library copied to your libs: directory." | echo "installation complete.*n" | 6you need arp.library | (usage: decrunch <source> [<destination>] [color 0-4] [opt b|f] [skip] [quiet] | color: 0/1 = color 0/1, 2 = pointer (def), 3 = scroll, 4 = none | skip : skip uncrunched files. | if <destination> is '*' or is omited, files will be typed to output(). | options effective when typing: | opt b: print a banner before and | opt f: print a formfeed after each file. | hit ^c to abort, ^e or ^f to abort typing only. | zout of memory ! | error reading '%s' ! | 0m data decruncher. | 33m written by nico fran | ois (powerpeak) | @color not [0-4] ! | buffer overflow ! | destination no directory ! | t create destination directory ! | '%s' is not a [1.1-3.0] crunched data file ! | password for '%s' ? | incorrect password, loading aborted !! | no memory to decrunch '%s' ! | decrypting and decrunching.. | error writing buffer to '%s' ! | 33m***user break | out of memory ! | error writing to '%s' ! | you need arp.library | 0m data cruncher. | 33m written by nico fran | ois (powerpeak) | usage: crunch <source> [<destination>] [effici | efficiency: 1 = fast, 2 = mediocre, 3 = good (def), 4 = very good, 5 = best | color : 0/1 = color 0/1, 2 = pointer (def), 3 = scroll, 4 = none | crypt : encrypt file. | noled : no flashing led. | fast : fast crunch. | slow : slower crunch. | hit ^c to abort, ^e or ^f to abort crunching only. | 6color not [0-4] ! | out of memory! | buffer overflow ! | destination no directory ! | can't create destination directory ! | efficiency not [1-5] ! | no memory to crunch '%s' ! | error reading '%s' ! | password to encrypt '%s' ? | too long !!! | encryption aborted ! | enter again to verify: | verify error, restart !! | no memory for speedup buffer, can't crunch ! | no memory for largest speedup buffer ! | no memory for large speedup buffer ! | 32mleft button to start. | buffer overflow ! | crunching aborted !! | normal length : %ld bytes. | crunched length : %ld bytes. | 33m***user break | 6color not [0-4] ! | out of memory! | unable to open library | unable to open window | unable to open screen | unable to validate key disk | unable to open requester | unable to open input.device | poker solitaire scores | unsane key disk v1.1trackdisk.device | input.device port | right side | left side | right game port | left game port | deal 1 cards | allow 1 common rejects | edges must touch | fcorners must touch | lcards go anywhere | cards can't move | cards can move | count 10 hands | count 12 hands | "english scoring | hamerican scoring | lmake pat hands | user scoring | change rules | one finishes | &different cards | set controls | change rules | set controls | new tournament | don't show moves | `poker solitaire | 1990 by steve francis | stripped version 1.0 | program by steve francis | cards by rovena kessinger | throw in the towel, | and chalk up another loss? | rchanging the rules in the middle | of a game will forfeit the game! | cheating will forfeit the game! | please insert your key | disk in drive 0. | quit cheating | keep looking | take best move | and let me play. | :for the best move. | bto continue later. | found so far. | there are no legal moves! | tournament scores | choose players and select go! | player scores | choose game type | change rules | set controls | start new tournament | new tournament | start a new tournament | one move timer | two move timers | set timer characteristics | m"one player modes | m|two player modes | oxunable to open gamep | and/or allocate sprite for | use one player modes only. | unable to allocate sprite for | use mouse or joystick control. | give up on this game, | even though you haven't | filled your hand? | card drawer task | gameport.device port | timer.device port | timer msg port | -------------------- mega mon v1.5 coded by ghost of possessed ---------------- | d (n) select unit d 0-3 | <t [s][t](n) read tracks <t startadr. starttrack no.tracks | >t [s][t](n) write tracks >t startadr. starttrack no.tracks | <s [s]ths read sector <s | startadr. track head sector | >s [s]ths write sector >s startadr. track head sector | al [f][s][e] save file as dc.l al filename startadr. endadr. | aw [f][s][e] save file as dc.w aw filename startadr. endadr. | ab [f][s][e] save file as dc.b ab filename startadr. endadr. | l [f][s] load file l filename startadr. | s [f][s][e] save file s filename startadr. endadr. | l [f] load segment l filename | u unload segment u | dir [p] directory dir path | del [f] delete file del filename | cd [p] change dir cd path | m [s][e] hexdump m startadr. endadr. | a [s][e] asciidump a startadr. endadr. | t [s][e][t] transfer memory t startadr. endadr. targetadr. | c [s][e][t] compare memory c startadr. endadr. startadr.2 | o [s][e][d] fill memory o startadr. endadr. dataformat | f [s][e][d] find data f startadr. endadr. dat | k [s] blockchecksum k startadr. | b [s] bootchecksum b startadr. | e [s] edit memory e startadr. | d [s] disassemble d startadr. | t [s][e] trainer search t startadr. endadr. | [ [l] alloc memory [ length | ] [s]/all free memory ] startadr. | & show allocated m. & | show register r | r (r)(n) edit register r d0 4fffe | o [f] redirect output o filename | h1 help screen1 h1 | h2 help screen2 h2 | hunt list modules in memory | set [s] set module adress | play play current module | stop stop playing module | check display the amount of illegal notes found in module | fixit replace all invalid notes | info information about the current module | some informations & examples | the trainer search found the following mc68000 codes. | for trainermaker is this a good functions. | dataformat useable fo | r edit,find and fill memory | e 50000 ;edit memory | o 50000 60000 "ghost " ;fill memory | f 50000 60000 "gho" ;find memory | update from v1.2 to v1.5 | redirect output installed | now you can type filenames with spaces | more noiseripper commands. | coming soon in the future: | a better disassembler & assemble function | if you find any bugs or have good ideas | contact me under: | 5160 duerenrent module | some informations & examples | the trainer search found the following mc68000 codes. | for trainermaker is this a good functions. | dataformat useable fo | powerpacker professional 3.0a | all rights reserved | user manual, 23 apr 1990 | i wish this paragraph wasn't necessary, but... | powerpacker was first released as shareware and although response was not | bad it was ridiculous compared to how many people actually used | powerpacker. therefore i have decided to release powerpacker comme | the price is about the same as the shareware version, but now you pay first | and use it later. i have really put an enormous (and i mean enormous !) | amount of time and effort into creating this product and i have tried to make | this program as good as i possibly can. powerpacker is released on a low | budget label that gives excellent conditions to the programmer, so if you buy | this program you not only pay less, but you are really supporting the | programmer and not just the so | ftware house. the program is not copy | protected, so make a backup copy or install it on your harddisk but please do | not pirate this program or copy it for your friends, the price has been kept | so low that everybody can afford it. thank you. | thank you for buying powerpacker professional 3.0a, powerpeak's command | and data cruncher for the amiga. this version of powerpacker is no longer | shareware, it is a commercial product. use without paying is both illegal | if you like to distribute or sell powerpacker pro please contact: | uga software, shipping dept. , po box 881 , 3700 aw zeist | if you want to use powerpacker or powerpacker related programs/routines | for commercial purposes you need a written permission. | write to the following address: | nico fran | 1.1 an introduction | 1.2 the file requester | 1.3 the basic menus | 3.2 process file | 4. the script menu | 5. the supervisor window | 6. a sample session | 8. powerpacker 3.0a & other programs | 8.3 loading encrypted files | 8.4 compiling and linking | 8.4 an example | 1.1 an introduction | powerpacker is a userfriendly command and data cruncher, this means a menu | driven utility that can crunch almost any file on your disks. it can be | started from the cli or the workbench, just type it's name in the cli window | or doubleclick it's icon. powerpacker will detach itself from the cli so you | can close the cli window. when | c you use it for the first time it's best to | maintain a certain order in your actions (as we will see in chapter 6 of this | (a) check the packer options at the beginning of a session (prefs menu) | (b) load the file from disk (project menu) | (c) wait for the file to (de)crunch. | (d) save the file back to disk (project menu) | apart from crunching, you can also recrunch files that were crunched by | most other crunchers. | the hunklab enables you to e.g. force code | *or data in chip ram. | the script allows you to e.g. crunch a dozen of files overnight. | before i demonstrate how to use powerpacker, let's look at the file | requester and an overview of the menus and capabilities. | 1.2 the file requester | whenever you are required to enter a filename, powerpacker sets up a file | requester. this requester lists all the files (and their length) of a | selected directory. you don't have to wait for the directory scan to end, you | can select a | $ file or directory the moment you see it, or you can enter it in | the appropriate string gadget. if you press <shift-enter> in a string gadget | you will activate the other string gadget (file or directory). to get a list | of all devices connected to your amiga as well as all the assigns made press | the right mouse button. | if you wait for the directory scan to end and quit the file requester, the | next time you use it all the files will still be there, so you don't have to | he directory to be read again. this feature has one disadvantage : | if files are changed or added to the selected directory they won't be shown in | the list, or they will be shown with the wrong filelength, the next time the | requester appears. therefore, if you think anything has been changed to the | selected directory, use the 'get dir' gadget to re-read the directory. (e.g. | when you save a crunched file on top of the old one, the old file length will | be shown in the requester.) | use the 'hide/show .info' gadget to hide or show .info files (workbench | icons). the 'all' and 'clr' gadget are used to select all files or to clear | the selection of all files, note that these gadgets are not always available. | when the all and clr gadgets are available you can also extend-select | filenames, just press the <shift>-key when selecting files. the entries are | always sorted and files and directories are seperated. the requester also | contains an invisible dragbar so you | can drag it to another screen position to | see what is underneath. | 1.3 the basic menus | the project menu contains the file manipulation options. most of them | speak for themselves: | load -> load a file from disk and start the (de)crunching. | files crunched with other (supported) crunchers will be | recognized and decrunched. | save -> save the (de)crunched or processed file in memory to disk. | delete -> delete a file | read -> read an ascii (text) file using ppmore. | workbench -> open or close workbench if possible. (adds 42k !) | sleep -> put powerpacker to sleep on the workbench screen, this | warning: all buffers will be deallocated, so you are advised | to save things first. | about... -> show general information. | quit -> quit the program. | note: - to read a file ppmore is used. the first tim | e you use 'read' ppmore | will probably not be found and powerpacker will ask you where it is. | just use the file requester and select ppmore, save the preferences if | you want powerpacker to remember this the next time you run it. | the prefs menu contains all the (de)cruncher settings. you can select | to (de)crunch command files or data files. if you want the crunched version | of your file to be executable, select 'command file'. now powerpacke | it has to add a decrunch header. if the file you want to crunch only contains | data (e.g. source codes of your programs), select the 'data file' option. | this can be handy if you're going to use the powerpacker cli commands. i'll | discuss these commands in chapter 7 of this document. | note: - powerpacker will automatically decrunch a previously crunched | file. you don't have to select crunch or decrunch mode anymore as | in powerpacker 2.0a. | 2olor' submenu contains the following options : | color 0 -> the background color will change while decrunching | color 1 -> the text color changes | pointer -> only the mousepointer's color changes | scroll -> weird effect (just try it out !) | none -> if your eyes are wearing out. | these options indicate what color will flash when a file is decrunched. | you can change this option before saving a crunched file, so you can save a | version of your crunched progra | m that flashes in color 1, and one that | flashes in the mouse pointer. the default value is 'pointer'. | in the efficiency submenu you will find the following possibilities : | fast -> use for small files, or for quick crunch. | mediocre -> better but slower. | good -> default, gains 40-50% in most cases. | very good -> a few percent better than good. | best -> gives best results (not always !) | note: - 'best' isn't always the best. small files crunch best | 'very good' or even 'good'. | the 'speedup buffer' controls the size of the memory buffer used to | speed up crunching. you have three choices: | small -> this takes from 2k to 32k (about 8 times faster than 2.3b) | medium -> this takes from 4k to 64k (about 12 times faster) | large -> this takes around 200k !! (about 40-50 times faster !) | note: - if you have a 512k amiga you probably can't use the large speedup | dreference switches: | data suffix -> attach '.pp' suffix to data files after crunching or remove | '.pp' after decrunching. it is advised that you leave this | switch on so you can easily spot crunched data files. | bcpl header -> select this if you want the special decrunch header for bcpl | programs (soon to be a thing of the past :-). the workbench | c: directory contains such programs. | auto hunklab -> file is p | ut through hunklab before crunching when you select | 'load', this way you can always automatically remove symbol | and debug hunks (see further). | auto recrunch-> if the file is crunched with an alien cruncher it is not | only decrunched, but it is also recrunched. | encrypt file -> see section 1.3.3 of this manual. | color crunch -> flash the selected decrunch color when crunching, giving | you an idea what the decrun | ching will look like (provided | that you don't change any options just before saving to | led crunch -> your power-led flashes while crunching, just like the | screencolors. now, you can even turn off your monitor and | still see when the cruncher has finished. | paging -> pause and wait for mouse button when supervisor window | overwrite -> don't prompt if it's ok to over | ^:write a file when saving. | verify sleep -> when this switch is on you will be prompted if you are sure | you want powerpacker to go to sleep. | sound alarm -> when this is on powerpacker beeps when done with crunching. | use 'save preferences' to save the preferences to your boot disk. the | preferences will be saved in the file 's:powerpacker.prefs', this file will | be 86 bytes long. when powerpacker 3.0a is first started it will attempt to | load this file and ad | just the preferences. | note: - while crunching, you can press both mousebuttons at the same time to | abort. keep them pressed down long enough ! | when the 'encrypt file' switch is on powerpacker will not only crunch | files, it will also encrypt them so nobody else but you can decrunch them. | just before crunching a file powerpacker will ask you for a password. you | will be presented with a string gadget with a special feature, it won't show | you what you are ty | ping ! after entering your password you will be asked to | enter it again, this is done to verify that you haven't made a typing error | (watch out you don't make the same error twice :-). | you can also use the 'last' gadget to re-enter your last password again, | or the 'abort' gadget to abort the encryption and just crunch the file. | when you try to load a crunched encrypted file powerpacker will once | again prompt you for your password. if you enter the correct one the file | )l be decrypted and decrunched. if you don't know the password, bad luck, | there is *no* way you can decrunch this file !! | from version 3.0a onwards powerpacker also encrypts executables. when | you run an encrypted executable you will be prompted for the password. a | small window will open and you have 3 chances to type your password followed | by <enter>. there is no possibility to correct typing mistakes, this would | just have made the decrunch header too long (currently 792 bytes) | note: - encryption can currently not be used in a script. | - your password can be up to 16 characters long, any character is | accepted, lowercase and uppercase are different !!!! | - take care when using the 'last' gadget, be sure to remember what your | last password was. | - don't forget your password !! it is *impossible* to decrypt a file | without the password !!!!! | this menu is provided for the peopl | e who were using another cruncher or | an older version of powerpacker. just select 'recrunch file' or 'recrunch | always' and load the file. powerpacker will start the correct decrunch | algorithm. if you selected 'recrunch' powerpacker will start to crunch the | decrunched file. if you select 'recrunch always' powerpacker will always | recrunch, even if the file was crunched with this version of powerpacker. | useful for recrunching files using a higher efficiency (e.g. recrunch a 'fast' | runched file with 'best'). | if you select 'load' and powerpacker recognizes an alien crunched file | it will decrunch it for you, if you have switched 'auto recrunch' on the | decrunched file will be recrunched with powerpacker. the 'load' menu option | actually replaces the 'recrunch file' menu option, but the latter one was | left in for old times sake :-) | use the 'change color' item to change the decrunch color in an already | crunched file to the current decrunch color. please no | te that the file will | be changed on disk, nothing will be loaded into memory. | crunchers currently supported are: 'anc cruncher', 'tnm cruncher 1.1', | 'turbosqueeze 5.1', 'titan cruncher 1.1', 'imploder 1.0' and older | powerpacker files. if you'd like to see other crunchers supported, send me | the cruncher and some programs crunched with it. if it is possible to | develop a decrunch algorithm i will include i | t in the next version of | note: - 'decrunch only' is not 100% guaranteed for 'relokit 1.0' files, | 'recrunch' however is 100% ok ! (it's a strange world ! :-) | - several people sent me 'dirty' crunchers, these are crunchers that | use absolute addresses (an absolute taboo !!!). it is impossible | to develop a decrunch algorithm for these. (in fact, nothing should | have been crunched with these crunchers in the first place !) | this menu is not really part of the powerpacker crunch/decrunch routines | but it wasn't worth writing a separate program for and a hunklab is after all | a very interesting utility. you can e.g. use it to remove symbol and debug | hunks from files that wouldn't crunch otherwise. | you can force a program's code, data or bss (uninitialised data) into | chip ram or you can remove symbol tables and debug information just by | toggling the marker on/o | 3.2 process file | 'process file' reads the file from disk and changes it according to your | preferences. to save the processed file, use 'save' from the project menu. | 'process & crunch' will process the file and crunch the file afterwards | (if possible). to save use 'save' in the project menu. | note: - debug and symbol hunks are only used in debuggers, so you can safely | remove them from a program. (unless you want to debug the program.) | 4. the script menu | the script is something that will save you a lot of time, it allows you | to record a number of different commands to be executed after each other. it | is ideal for crunching a lot of files in one go. it also offers you the | possibility to delete the source files after crunching, so you can easily | crunch a directory full of data files and delete the source files after the | crunched files with .pp suffix are saved. menu options are: | 'clear script' and 'list sc | will do just that. | select to be prompted a new maximum number of commands to be | 'script log file': | is used to specify a file to redirect output to. if you cancel | the requester no log file is used. | 'destination dir': | is used to specify the directory to save to. it is ghosted in | 'start recording': | is used to start the recor | ding of the script. if the script was | empty you will be asked for the destination directory. | after selecting the destination you can start entering the | script commands. everything that is ghosted is not available as a | command. just enter everything as if you were actually using | powerpacker, with one big difference: you can select more than one | file at a time. just press the <shift> key to extend-select other | files. when you then press ok all these files will be entered in | the script. you can also use the all and clr gadgets as described | in the file requester section. | note: - you can still change the source and destination dir while | every command you enter will be displayed in the supervisor window. | 'stop recording': | is used to exit the recording mode. | 'delete last': | will delete the last co | mmand after a confirmation. | 'delete command': | to delete a specific command, you will be prompted for the command | 'insert command': | to insert a new command after another command. you will be asked | after which command you want to insert something. enter the command | 'skip crunched': | when you enter this command in the script powerpacker will skip | crunched files rather than decrunch them. | select again to turn off. | 'delete source': | this command tells powerpacker to delete the source file after it | has crunched (and saved) it to the destination. select again to | 'delete quick': | the same as the previous command but now the source is deleted | before the crunched file is saved. (useful for when source and | destination are on the same disk and the disk is very full) | select again to turn o | 'execute script': | will start the playback of the script commands. if you press the | menu button a requester will appear to ask you if you want to abort | the script execution. after executing the script a request to | clear the script will appear. | note: - the screen turns grey to indicate a script is executing. | - while executing a script, powerpacker will always act destructive ! | files will allways be overwritten and delet | - after the script has executed you will be presented with the script | statistics. this way you can see what the overall gain was. | 5. the supervisor window | this window displays all kind of useful information like the file | status, crunch messages, and error messages. you can follow all steps, from | the original file that is loaded into memory, to the final crunched version | on disk. when an executable file is load | ed, its hunk information is | displayed. this information is rather technical, but it can be useful for | programmers. if you're not interested, just ignore it. | 6. a sample session | now that i have explained powerpacker's capabilities, it's time for | a little demonstation. let's say we want to crunch the 'cli' command in the | system directory on your workbench 1.2 disk. | select 'pointer' in the prefs/decrunch color menu (when i wrote this | text, it was ver | ny late and i couldn't stand the other decrunch colors | set 'prefs' to 'command file'. now select 'load' in the project menu | (the file requester will appear), insert your workbench 1.2 disk and choose | the 'cli' command in the system directory. now you'll see a lot of hunk | (or junk ?? :-) information about the cli command: | [42m scanning file 'df0:system/cli'... | [42m loading command file... | 3mhunk_reloc32 (0x03ec) | [33mhunk_data (0x03ea) | [33mhunk_reloc32 (0x03ec) | [33mhunk_data (0x03ea) | [33mhunk_reloc32 (0x03ec) | [33mhunk_reloc32 (0x03ec) | [33mhunk_data (0x03ea) | [31m crunching command file... | [31m press left and right button to abort. | [33m crunching, please wait. | the cruncher displays the percentage of the file already crunched and | the gain so far. after some time your screen will look like this: | [31m original length : 2356 bytes. | [31m crunched length : 1204 (1804) bytes. | the only thing you have to do now is save this back to disk as an | executable file | ). now enjoy the crunched cli command. | for your convenience, i have also written two cli commands, one to | crunch and one to decrunch data files. | these cli commands use the magnificent arp library !! this means they | are very powerful : wildcards are fully supported, options can be entered in | any order, directories will be created when needed, etc... make sure the | arp.library is in your libs: directory when you | | run these commands. | a usage line is given by typing 'crunch' or 'decrunch' without | arguments. you'll get something like this: | [0m data cruncher. | [33m written by nico fran | ois (powerpeak) | usage : crunch <source> [<destination>] [efficiency 1-5] [color 0-4] [crypt] | |fast, 2 = mediocre, 3 = good (def), 4 = very good, 5 = best | color : 0/1 = color 0/1, 2 = pointer (def), 3 = scroll, 4 = none | crypt : encrypt file. | noled : no flashing led. | fast : fast crunch. | slow : slower crunch. | hit ^c to abort, ^e or ^f to abort crunching only. | [0m data decruncher. | [33m written by nico fran | ois (powerpeak) | usage : decrunch <source> <destina | color: 0/1 = color 0/1, 2 = pointer (def), 3 = scroll, 4 = none | skip : skip uncrunched files. | if <destination> is '*' or is omited, files will be typed to output(). | options effective when typing: | opt b: print a banner before and | opt f: print a formfeed after each file. | hit ^c to abort, ^e or ^f to abort typing only. | hese commands are useful to be included in your startup-sequence or to | read crunched text files quickly. | some examples: | crunch df0:source/*.c to ram:source col 4 noled | this will result in a crunching of every c program in the df0:source | directory. if the ram:source directory exists the files will be saved there, | if it doesn't it will be created if there is more than one c program in | df0:source. the '.pp' suffix will be attached to the filenames. the led | will not fli | b3cker, no crunch color is used. | decrunch >prt: quiet dh0:progs/*.asm.pp opt bf col 3 | every crunched assembly program will be decrunched and printed, before | each file a banner will be printed, each file will start on a new page. if | the file is encrypted you will be prompted for a password. it is very | important that you use the quiet option here, if you don't the copyright and | information lines will also be printed. the mouse pointer will flash while | these commands only (de)crunch data files !!!! (so to (de)crunch | executable files, you'll still have to use powerpacker). | - the crunch command defaults to using the large crunch buffer, you can | use the medium buffer by selecting fast and the small buffer by | selecting slow. | 8. powerpacker 3.0a & other programs | this one is for the programmers among you ! | with this version the decrunch so | >*3curce is included. i decided to do this | so other programs could load data files crunched with powerpacker. as an | example i could refer to one of my other utilities : ppmore, this is a text | viewing utility (like more, hence the name) that can also display ascii files | crunched with powerpacker. | source is presented as a support function 'pp_loaddata', this function | will load a data file and will decrunch it if necessary. when the file isn't | crunched it'll just be loaded. encrypt | @1sed files are also supported. | the source should compile under both aztec c and lattice c. as provided | the source will compile under lattice c 5.04 (makefile included), it should be | no problem to get it to compile under aztec c. you can use this code for | non-commercial purposes as long as you leave my copyright notice intact. | error = pp_loaddata (file, color, typeofmem, buffptr, le | char *file; filename of file to be loaded | ubyte color; decrunch color (see ppdata.h) | ulong typeofmem; type of memory to be allocated | ubyte **buffptr; address of buffer pointer variable | ulong *lengthptr; address of length variable | char *password; pointer to password string or null | - error and color codes are defined in 'ppdata.h'. | - memory must be freed by caller after usage : free | mem (buff, length); | you have the following decrunch colors available: | decr_col0 decrunch in color 0 | decr_pointer '' '' the mouse pointer | decr_scroll '' '' the scroll register | decr_none no decrunch color is used | the following errors can occure: | pp_loadok no error, file | loaded succesfully. | pp_lockerr couldn't lock file, file probably doesn't exist. | pp_openerr couldn't open file. | pp_readerr read error. | pp_nomemory no memory to allocate buffer for data file. | pp_crypted file is crypted and no password was provided. | pp_passerr file is crypted and wrong password provided. | 8.3 loading encrypted files | to load encrypted files a password has to be provided to the functi | first of all try to load the file with a null pointer for 'password', when | you get the pp_crypted error you know that the file is encrypted. then | prompt the user for a password and call the function again with the same | parameters, but now 'password' points to the password string. if pp_loaddata | returns pp_loadok the file was decrypted, if it returns pp_passerr the | password was incorrect. if it returns anything else some sort of error | occured (see 'ppdata.h' for the error codes | 8.4 compiling and linking | use the makefile if you have lattice c 5.04. if you use aztec c you must | compile 'ppdata.c' and assemble 'ppasm.asm', this should be no problem. once | compiled you will have two objecy files: 'ppdata.o' and 'ppasm.o'. link with | both these files if you use the 'pp_loaddata' fuction. | 8.5 an example | this small (incomplete) program shows you how to use the support | function in your programs. | #include <exec/ty | #include "ppdata.h" | ubyte *buffer = null; | ulong bufferlength; | ubyte password[17]; | int error; | if (error != pp_loadok) switch (error) { | case pp_lockerr: | puts ("file not found !!!"); | case pp_loaderr: | case pp_nomemory: | puts ("out of memory !!!"); | case pp_crypted: | /* prompt the user for a password (max 16 chars) */ | if (error == pp_passerr) { | yts ("incorrect password !!!"); | else if (error != pp_loadok) { | puts ("correct password, but couldn't load !!!"); | /* now do something with the data file loaded at addr 'buffer' and with | length 'bufferlength' */ | /* do not forget to free the memory !! */ | freemem (buf | /* free all your resources */ | enjoy this program !!! | program history: | first release. | fixed bugs. | improved crunch al | gorithm by about 5%. | 'delete' and 'multitask' added. | better menu structure. | improved the file requester. | written cli commands. | fixed some more bugs. | added buffer and automatic device-list to the file requester. | added 'led crunch', useful for turning the monitor off while crunching, | and 'paging'. | new header, bug fixed. (1.1 didn't free mem when star | oted from workbench) | added the hunklab. | improved cli commands. | fixed last bug in header (2.0 crashed when you were out of memory, oops) | added script feature, now possible to crunch files overnight. | improved requesters. | automatic crunch/decrunch. | improved menu structure considerably. | intelligent recrunch implemented. | automatic crunch/decrunch. | :;dded 'color crunch' option. | new efficiency 'best' added. | bug fixed in script abort. | added ability to open a log file during script execution. | now possible to recrunch powerpacker files with a higher efficiency. | recrunch detects unsupported crunchers a lot faster. | powerpacker now automatically opens a pal/ntsc screen. | all known bugs (or better, undocumented features) fixed. | 'sleep' mode implemented, useful for multitasking freaks. | while crunching the gain percentage so far is displayed. | recrunch now supports 'hqc cruncher 2.0', 'mastercruncher 3.0' | and 'dragpack 1.0'. | new graphics in title. | powerpacker detaches itself from | the cli, so the cli window can be | closed or used for other things. | cli commands are greatly enhanced, they now use arp. | new switch : 'overwrite' to surpress 'ok to overwrite ?' request. | file requester now able to sort files, 'sort files' switch. | by popular demand: encryption of data files is now possible using the | new 'encrypt data' switch. encryption should be impossible to crack !! | also by popular demand: now possible to save preferences to bo | more memory efficient decrunch and recrunch of powerpacker files. | decrunch source included, so other programs could be written that | would load data files crunched with powerpacker. | 'data suffix' switch to improve adding/removing of '.pp' suffix. | decrunch color default 'pointer'. | improved scanning of files when loading or recrunching. | fixed small bug (version 2.2a lost 256 bytes every time it was run). | more info in about window. | added 'change color' in 'recrunch' menu to change the decrunch color | of an already crunched file. | powerpacker now starts up a process with priority -1. it now no longer | slows down the rest of the system (e.g. a cli) when crunching. | new 'verify sleep' switch to toggle the requester that verifies the | sleep function on/off. | now possible to skip files already | crunched with powerpacker in script. | bug fixed in 'recrunch', anc files were no longer recognized. oops :-) | first commercial version, *major* update !! | fast !!!! 40-50 times faster crunching than previous versions !!! | three different speeds selectable. multitask switch removed, no longer | full overlay support !!! (crunches e.g. dpaint iii) | recrunch now supports 'turbosqueeze', 'titanics' and 'imploder'. | decrunch header more memory efficient, you can now also decrunch and | run programs larger than 250k on a 512k machine. | script much more powerful: | - new commands : skip crunched files. | delete source files (safe or quick). | - maximum number of script commands user-definable. | omatic hunklab and automatic recrunch switches. | recrunches data files. | encrypted executables !!!!! protect your programs as well as data ! | file requester much improved: | - user-friendlier sorting, no more file-chasing ! | - files / directories seperated. | - show/hide .info files | - extended selection possible (including all and clear gadgets, for | use in script) | - drag-bar, position is remembered for the next time you use it. | - - shows all devices attached as well as all assigns made | - 7 entries on screen at once (previously 6) | - supports shift-enter "standard" to jump from file to dir gadget | switch for bcpl programs added (workbench 1.3 c: directory) | position of the small sleep-window is remembered, so the window will | open where you last left it. | read (crunched) text files from within powerpacker. (using ppmore) | sound alarm. | extended menu selecting now suppo | script prints statistics after execution. | before saving, length of crunched file is compared to original length. | abort now only works when powerpacker screen is active, no more problems | when multitasking. | cli commands improved: | - are reentrant, can be made resident and run from several cli's at | - also 40-50 times faster | - shorter code | - 'crunch nosuffix' bug fixed, used to delete original file if source | and destination where the same and crunching was aborted. | powerpacker 3.0a written by nico fran | ois (yes, nico is my first name :-) | special thanks go to - luc pauwels for the icons and writing the 2.0a manual, | - jorrit tyberghein and ives aerts for the extensive | - christian morant for the late night 'turbo' hack :-) | 5 - kenny for his invaluable suggestions | - a very special thank you to all the people who | supported the shareware versions of powerpacker. | (c) 1990 nico fran | ois / power peak | thanks to \x/ amiga for being the best computer ever ! | le (including all and clear gadgets, for | use in script) | - drag-bar, position is remembered for the next time you use it. | med tsrif s'ycehporp ot emoclewv | mee "ew .tros[i | h ev'ew ,raed | aehtom ruoy seodun | double action v1.0 | by vince of tristar | sdraob ruo llac

Amiga Demo Archiv


bottom