`8NNNNRVp NNNNNNNNNNNNNNNNNNNNNNNNNNNNNuONNNNNNNNNNNNNNNNNNNNNNKO /@`!%`)+-/=A C@oGIKMOQ S@U`Y]_a c@e`gikoq s@u`wy}//  @ / @ ` @ ` ǀ ɠ @ ` ׀ ٠  @` @`Aa  !Aa!!#A%a')+/79;=?AOEaGKMOQSAUaY[]_a!cAeagkmoq!sAuawy}!a!Aa!aa/Aaoׁ!a!Aa / B b  !/!B!b!!!"!O"%")+"-"/#1"#35###/$CB$$I$K$M$/%SB%o%Y%%]cB&o&g&i&k&m&q"'sB'o''y'{'}'("(B(o((((O /@`!%`)+-/=A C@oGIKMOQ S@U`Y]_a c@e`gikoq s@u`wy}//  @ / @ ` @ ` ǀ ɠ @ ` ׀ ٠  @` @`Aa  !Aa!!#A%a')+/79;=?AOEaGKMOQSAUaY[]_a!cAeagkmoq!sAuawy}!a!Aa!aa/Aaoׁ!a!Aa / B b  !/!B!b!!!"!O"%")+"-"/#1"#35###/$CB$$I$K$M$/%SB%o%Y%%]cB&o&g&i&k&m&q"'sB'o''y'{'}'("(B(o((((ST_CLUB PD AUTOTIME QS BOOTSEL \S BSS-BIT lS "B_BOOTS uS 1COPYFIX S :DEGADESK S >DRIVEMOD S zENVIRON S HRESET S PRTODISK ÉS VIEW ˉS ASYSTEMSACC Yt X5BOOT DOC 0BOOT PRG 0)FREEBYTEACC JCLOCK7 PRG hMS_DOS ACC Dt 8 SYSTEMS CTL ht SYSTEMS RSC kt BTICTOC ACC h=ACC_PRGS S -AUTO S 1BLITTER FLDS 4BUSYBUDY S BFNTSELCTFLDS HGDOS11 %S WGEMB1V10 -S iKEYBOARDRSXES MACCEL LS MOUSEDBL ]S MOUSESPD eS MYTIME mS OPTIONS 100xS PINHED14 S RAINBOW TOSS REZINFO NJS =SCROLLER ՊS FSCRSAVERFLDS PSTARSTRK S WTIMEDRV S ^WAITTIMEFLDS aXAUTO FLDS oBOOT ACC b?Aw7CLOCKA ACC 3 . QS .. AUTOTIMEDOC kAUTOTIMEPRG k1SETDATE DOC :{S SETDATE PRG <{S SET_TIMEPRG A{S  AUTOTIME & SET_TIME ~~~~~~~~~~~~~~~~~~~ WRITTEN BY STEVE WOODFORD, JUNE 1988 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ These two programs are in the Public Domain. Feel free to copy and distribute them as you wish, so long as this is not done for personal or corporate financial gain. If you find these two programs to your liking and you feel pity for a down-and-out Atari Programmer, feel free to send a donation to the address below. This will be used to develop more Public Domain Atari software. Steve Woodford, C/O Star Service Centres, STAR House, Herringham Road, Charlton, LONDON SE7 8NJ COMING SOON........ THE BEST Atari Hard Disk Utility Package. o Extensive Format Options o Drive Exerciser - Random, Sequential tests o Fast Driver, with optional R/W Cache All this, and more, in a totally menu driven, easy to use package. And it's free!! ------ Both the programs on this disk are mainly for use by those with battery backed up clocks in their Ataris. This includes almost all commercial clocks cards and home-brew efforts. They can, however, be used in standard set-ups. AUTOTIME.PRG As it's name suggests, this program should be placed in the AUTO folder of your boot disk. When booted, it will attempt to read the date and time from the keyboard clock. If the date/time is invalid (ie. the battery is flat) or a clock card is not installed, you will be prompted to enter the date and time. If the date & time IS valid, then it will be printed on the Screen, eg..... Thursday 16th Jun, 1988 12.00Am The internal 'GEMDOS' date and time will, in both cases, be set correctly and your files will be properly timestamped. SET_TIME.PRG This program is useful if your clock card runs fast/slow. It can be used to reset it to the correct time. When run, it will display the current date and time and prompt you for the new date & time. NOTE: Pressing on it's own at the date prompt will reset and disable the date & time function of the clock card. Running either AUTOTIME.PRG or SET_TIME.PRG will allow you to set it again. Have fun.......Steve Woodford` *O.| *m - ЭЭ// Bg?<JNAO a?<NATpaAa?<NNT"#g/??<-NAX H@/??<+NAX"  $mHRBf 9dS@p:5Uk HA0Ҁp:ҀHAAaa?< ?<NAX:ahp: g g fp` g fp` g fpA2adr:SA>aTAv 9eAm9`9Pa:za?< ?<NAX0:bH2A?Ht eg `tJfp ??a?<:?<NAX0a2Aa`Aa.A&a&a&J9 gtAa4 d e /fa d e /fa ddPe fHH3??<+NAXJkjAaAaaJ9 gRAZa dH4 -fa @H HELLO PEA HIMESS(PC) * DISPLAY HELLO DATA MOVE.W #9,-(SP) TRAP #1 * BDOS 9 ADDA #6,SP ****************************************************** * * * RESOLUTION SELECTOR * * * ****************************************************** CHECKRES MOVE.W #4,-(SP) TRAP #14 * XBIOS 4 D0=RES ADDA #2,SP * RESTORE SP CMPI.W #2,D0 * IF HIGH RES THEN EXIT BEQ EXIT PEA RESEL(PC) * DISPLAY DATA CONTAINED MOVE.W #9,-(SP) * AT BASE OF PROGRAM TRAP #1 * BDOS 9 ADDA #6,SP * RESTORE SP INPUT MOVE.W #8,-(SP) * GET A CHARECTOR USING TRAP #1 * C_NECIN BDOS 8 ADDA #2,SP * RESTORE SP AND.W #%11011111,D0 * FORCE UPPER CASE SUB #$4C,D0 * IF L D0=0 IF M D0=1 BEQ EXIT * IF Z SET THEN LEGAL CMPI.W #1,D0 * COMPARE OTHER LEGAL STATE BEQ EXIT * IF Z SET THEN LEGAL BRA INPUT * NEITHER LEGAL VALUE TRY AGAIN EXIT MOVE.W D0,-(SP) * PUT MODE ON STACK MOVE.L #-1,-(SP) * DUMMY PAREMMETERS MOVE.L #-1,-(SP) MOVE.W #5,-(SP) TRAP #14 * XBIOS 5 ADDA #12,SP * RESTORE SP MOVE.W #0,-(SP) * BDOS 0 EXIT FUNCTION TRAP #1 * CONTINUE BOOT ********************************************************* * * * DATA STORED FROM HERE * * * ********************************************************* SECUR DC.B "******************",13,10 DC.B "* *",13,10 DC.B "* PLEASE PRESS *",13,10 DC.B "* *",13,10 DC.B "* SECURITY KEY *",13,10 DC.B "* *",13,10 DC.B "******************",13,10 DC.B 0 HIMESS DC.B "******************",13,10 DC.B "* ST FORMAT *",13,10 DC.B "******************",13,10 DC.B 0 RESEL DC.B "******************",13,10 DC.B "* *",13,10 DC.B "* SELECT *",13,10 DC.B "* RESOLUTION *",13,10 DC.B "* *",13,10 DC.B "* M FOR MEDIUM *",13,10 DC.B "* *",13,10 DC.B "* L FOR LOW *",13,10 DC.B "* *",13,10 DC.B "******************",13,10 DC.B 0 EVEN END #a000000 #b000000 #E D8 1-1 #W 00 00 00 01 15 11 08 A:\DEVPAC\*.*@ #W 00 00 18 01 18 11 00 @ #W 00 00 00 01 15 11 00 @ #W 00 00 0F 0A 15 0B 00 @ #M 02 03 00 FF D RAM DISK A@ @ #M 00 03 00 FF A FLOPPY DISK@ @ #M 01 03 00 FF B FLOPPY DISK@ @ #T 03 03 02 FF DUSTBIN@ @ #F FF 04 @ *.*@ #D FF 01 @ *.*@ #G 03 FF *.APP@ @ #G 03 FF *.PRG@ @ #F 03 04 *.TOS@ @ #P 03 04 *.TTP@ @  ASCII TABLE. DECIMAL VALUE 33 HEX VALUE $21 ASCII CHARACTER ! DECIMAL VALUE 34 HEX VALUE $22 ASCII CHARACTER " DECIMAL VALUE 35 HEX VALUE $23 ASCII CHARACTER # DECIMAL VALUE 36 HEX VALUE $24 ASCII CHARACTER $ DECIMAL VALUE 37 HEX VALUE $25 ASCII CHARACTER % DECIMAL VALUE 38 HEX VALUE $26 ASCII CHARACTER & DECIMAL VALUE 39 HEX VALUE $27 ASCII CHARACTER ' DECIMAL VALUE 40 HEX VALUE $28 ASCII CHARACTER ( DECIMAL VALUE 41 HEX VALUE $29 ASCII CHARACTER ) DECIMAL VALUE 42 HEX VALUE $2A ASCII CHARACTER * DECIMAL VALUE 43 HEX VALUE $2B ASCII CHARACTER + DECIMAL VALUE 44 HEX VALUE $2C ASCII CHARACTER , DECIMAL VALUE 45 HEX VALUE $2D ASCII CHARACTER - DECIMAL VALUE 46 HEX VALUE $2E ASCII CHARACTER . DECIMAL VALUE 47 HEX VALUE $2F ASCII CHARACTER / DECIMAL VALUE 48 HEX VALUE $30 ASCII CHARACTER 0 DECIMAL VALUE 49 HEX VALUE $31 ASCII CHARACTER 1 DECIMAL VALUE 50 HEX VALUE $32 ASCII CHARACTER 2 DECIMAL VALUE 51 HEX VALUE $33 ASCII CHARACTER 3 DECIMAL VALUE 52 HEX VALUE $34 ASCII CHARACTER 4 DECIMAL VALUE 53 HEX VALUE $35 ASCII CHARACTER 5 DECIMAL VALUE 54 HEX VALUE $36 ASCII CHARACTER 6 DECIMAL VALUE 55 HEX VALUE $37 ASCII CHARACTER 7 DECIMAL VALUE 56 HEX VALUE $38 ASCII CHARACTER 8 DECIMAL VALUE 57 HEX VALUE $39 ASCII CHARACTER 9 DECIMAL VALUE 58 HEX VALUE $3A ASCII CHARACTER : DECIMAL VALUE 59 HEX VALUE $3B ASCII CHARACTER ; DECIMAL VALUE 60 HEX VALUE $3C ASCII CHARACTER < DECIMAL VALUE 61 HEX VALUE $3D ASCII CHARACTER = DECIMAL VALUE 62 HEX VALUE $3E ASCII CHARACTER > DECIMAL VALUE 63 HEX VALUE $3F ASCII CHARACTER ? DECIMAL VALUE 64 HEX VALUE $40 ASCII CHARACTER @ DECIMAL VALUE 65 HEX VALUE $41 ASCII CHARACTER A DECIMAL VALUE 66 HEX VALUE $42 ASCII CHARACTER B DECIMAL VALUE 67 HEX VALUE $43 ASCII CHARACTER C DECIMAL VALUE 68 HEX VALUE $44 ASCII CHARACTER D DECIMAL VALUE 69 HEX VALUE $45 ASCII CHARACTER E DECIMAL VALUE 70 HEX VALUE $46 ASCII CHARACTER F DECIMAL VALUE 71 HEX VALUE $47 ASCII CHARACTER G DECIMAL VALUE 72 HEX VALUE $48 ASCII CHARACTER H DECIMAL VALUE 73 HEX VALUE $49 ASCII CHARACTER I DECIMAL VALUE 74 HEX VALUE $4A ASCII CHARACTER J DECIMAL VALUE 75 HEX VALUE $4B ASCII CHARACTER K DECIMAL VALUE 76 HEX VALUE $4C ASCII CHARACTER L DECIMAL VALUE 77 HEX VALUE $4D ASCII CHARACTER M DECIMAL VALUE 78 HEX VALUE $4E ASCII CHARACTER N DECIMAL VALUE 79 HEX VALUE $4F ASCII CHARACTER O DECIMAL VALUE 80 HEX VALUE $50 ASCII CHARACTER P DECIMAL VALUE 81 HEX VALUE $51 ASCII CHARACTER Q DECIMAL VALUE 82 HEX VALUE $52 ASCII CHARACTER R DECIMAL VALUE 83 HEX VALUE $53 ASCII CHARACTER S DECIMAL VALUE 84 HEX VALUE $54 ASCII CHARACTER T DECIMAL VALUE 85 HEX VALUE $55 ASCII CHARACTER U DECIMAL VALUE 86 HEX VALUE $56 ASCII CHARACTER V DECIMAL VALUE 87 HEX VALUE $57 ASCII CHARACTER W DECIMAL VALUE 88 HEX VALUE $58 ASCII CHARACTER X DECIMAL VALUE 89 HEX VALUE $59 ASCII CHARACTER Y DECIMAL VALUE 90 HEX VALUE $5A ASCII CHARACTER Z DECIMAL VALUE 91 HEX VALUE $5B ASCII CHARACTER [ DECIMAL VALUE 92 HEX VALUE $5C ASCII CHARACTER \ DECIMAL VALUE 93 HEX VALUE $5D ASCII CHARACTER ] DECIMAL VALUE 94 HEX VALUE $5E ASCII CHARACTER ^ DECIMAL VALUE 95 HEX VALUE $5F ASCII CHARACTER _ DECIMAL VALUE 96 HEX VALUE $60 ASCII CHARACTER ` DECIMAL VALUE 97 HEX VALUE $61 ASCII CHARACTER a DECIMAL VALUE 98 HEX VALUE $62 ASCII CHARACTER b DECIMAL VALUE 99 HEX VALUE $63 ASCII CHARACTER c DECIMAL VALUE 100 HEX VALUE $64 ASCII CHARACTER d DECIMAL VALUE 101 HEX VALUE $65 ASCII CHARACTER e DECIMAL VALUE 102 HEX VALUE $66 ASCII CHARACTER f DECIMAL VALUE 103 HEX VALUE $67 ASCII CHARACTER g DECIMAL VALUE 104 HEX VALUE $68 ASCII CHARACTER h DECIMAL VALUE 105 HEX VALUE $69 ASCII CHARACTER i DECIMAL VALUE 106 HEX VALUE $6A ASCII CHARACTER j DECIMAL VALUE 107 HEX VALUE $6B ASCII CHARACTER k DECIMAL VALUE 108 HEX VALUE $6C ASCII CHARACTER l DECIMAL VALUE 109 HEX VALUE $6D ASCII CHARACTER m DECIMAL VALUE 110 HEX VALUE $6E ASCII CHARACTER n DECIMAL VALUE 111 HEX VALUE $6F ASCII CHARACTER o DECIMAL VALUE 112 HEX VALUE $70 ASCII CHARACTER p DECIMAL VALUE 113 HEX VALUE $71 ASCII CHARACTER q DECIMAL VALUE 114 HEX VALUE $72 ASCII CHARACTER r DECIMAL VALUE 115 HEX VALUE $73 ASCII CHARACTER s DECIMAL VALUE 116 HEX VALUE $74 ASCII CHARACTER t DECIMAL VALUE 117 HEX VALUE $75 ASCII CHARACTER u DECIMAL VALUE 118 HEX VALUE $76 ASCII CHARACTER v DECIMAL VALUE 119 HEX VALUE $77 ASCII CHARACTER w DECIMAL VALUE 120 HEX VALUE $78 ASCII CHARACTER x DECIMAL VALUE 121 HEX VALUE $79 ASCII CHARACTER y DECIMAL VALUE 122 HEX VALUE $7A ASCII CHARACTER z DECIMAL VALUE 123 HEX VALUE $7B ASCII CHARACTER { DECIMAL VALUE 124 HEX VALUE $7C ASCII CHARACTER | DECIMAL VALUE 125 HEX VALUE $7D ASCII CHARACTER } DECIMAL VALUE 126 HEX VALUE $7E ASCII CHARACTER ~ DECIMAL VALUE 127 HEX VALUE $7F ASCII CHARACTER  . lS ".. BSS-BIT DOC sX #BSS-BIT NET sX $x BSS-BIT PRG sX '4'BSS-Bit V0.1 (c) 1989 Volker A. Brandt 24-Sep-89 This program allows the user to specify whether the operating system clears all of the available memory or only the declared BSS section when starting a program. This works only with TOS 1.4 dated April 6, 1989 or later. It works with all well-behaved .PRG, .TOS, .TTP, and .ACC binaries. The program looks at the country code in the ROMs and attempts to communicate with the user in his own language. Currently implemented are English and German (V0.1). This program is public domain. It may be copied and distributed free of charge. It may not be sold or used for commercial purposes. Volker A. Brandt (VBRANDT@DBNUAMA1.BITNET) From idec!stc!ukc!mcsun!uunet!ginosko!gem.mps.ohio-state.edu!uwm.edu!bionet!agate!ucbvax!DBNUAMA1.BITNET!VBRANDT Thu Sep 28 09:26:33 BST 1989 Article 10398 of comp.sys.atari.st: Path: prlhp1!idec!stc!ukc!mcsun!uunet!ginosko!gem.mps.ohio-state.edu!uwm.edu!bionet!agate!ucbvax!DBNUAMA1.BITNET!VBRANDT >From: VBRANDT@DBNUAMA1.BITNET Newsgroups: comp.sys.atari.st Subject: BSS-Bit utility to set the TOS 1.4 bss bit (Binary posting) Message-ID: <8909251423.AA06600@ucbvax.Berkeley.EDU> Date: 25 Sep 89 14:23:17 GMT Sender: daemon@ucbvax.BERKELEY.EDU Organization: The Internet Lines: 220 X-Unparsable-Date: Mon, 25 Sep 89 16:18:46 SET Hello all, ... here is the promised program that makes it easier to set/reset that 'clear-only-the-BSS-area-bit' (hereafter called the BSS bit) in binary headers. Remember that this feature works only with TOS 1.4 of April 6, 1989 or newer. You shouldn't use older versions of TOS 1.4 anyway. The BSS bit is usually turned off. If you set it with my BSS-BIT utility, and the program/accessory then starts acting up, just turn the BSS bit off again and all will be fine again. I have set the BSS bit for virtually all of the programs I use. The only offending program so far has been - of course - the Quick-ST accessory version 1.4(sic!). BSS-BIT.PRG has a special feature built in: It looks at the ROM country code (yes, there's a country code in every ROM version), and communicates with the user in his/her language. Currently implemented are only English and German. If you load the program, it will tell you for which country your ROMs are configured. I'd be happy if people could send me translations for the texts in the program, I still need French, Italian, Spanish, Dutch, Turkish, Arabic (!!), Danish, Swedish, Danish, Finnish etc. If you feel like translating those few lines to your language, send email and I'll send you all strings from the program. Let's make this little utility the first truly multilingual program for the ST. I think that would be fun ! Needless to say, this program is public domain. See BSS-BIT.DOC for details. Send money orders, bug reports and the like to the email address below :-) PS: Has anybody ever seen a Saudi-Arabian ROM (country code #13) ????? ---------------------------------------------------------------------------- Bitnet: VBRANDT@DBNUAMA1 (will go away late '89) Volker A. Brandt UNM409@DBNRHRZ1 (soon) Angewandte Mathematik UUCP: ...!unido!DBNUAMA1.bitnet!vbrandt (Bonn, West Germany) ARPAnet: VBRANDT%DBNUAMA1.BITNET@CUNYVM.CUNY.EDU `# o"h#%#%#%By%NZNV?<NAN^NuNV?./. ?<=NAN^ _\NNV?.?<>NAN^ _TNNV/./. ?.?<?NAN^ _O NNV/./. ?.?<@NAN^ _O NNV?.?. /. ?<BNAN^ _PN/,HNVA~-HN#0. ` N Hy-?N Hy/?RA?r9/69/C?N"0 _C/2r"Q?<\?3| NAXNu/")x itg$H@//?) ?<@NA LJof _Nu _4` _t6 Bo r aSB`2aNH?2 _r ar a/L?2Nu _r aN _4` _t"x0HgJJjDxvC3"zp cRЀ`|e W0R"f`6 _4` _t2xJAjDAxvC3"p0 2H@0RJAfJg<-RBlCSBr aQSCaQN _"_v` _"_60`JfQ$ItRJf` _4v` _46"_JBjtJCkgCe4` BSCr axQSBkalQN _6kfv2_t Cc"4YBv` _6kfv"_t Cc4QBvSBkr a(QSCC" A0 9c^a JgYC`NH 2"oA/ NNL 2Nu(_"_/ A) g  f$)Jtf&H //?) ?<@NA LJovfNu$ix&i|fa`pRgf#Jx`H")x it#Hxg$H`//?) ?<@NA LJofLNu )fNuHy OJkp` Hy (0< LN6REWRITE required prior to WRITE or PUTDisk or directory fullH3$ _0"_e /L3$NuHy"NL/B93L/|3LNuH3$ _0 @f0"|3"3"p` "_J@jpE3Lr4@ BbBS@kQ/L3$NuH3$ _4SBkt82$_rAbd0 @f0"|3"3"p` "_J@jp6ADb6CG0IS@k$eQ/L3$NuH3$ _4k2SAk0"_p6B@bE0)CS@kQ/L3$NuH3$ _2$_r0 @f0"|3"3"p` "_J@jp@kS@kv&J$IRC4(K Vg RQBg`?/L3$NuH3$ _4kF2SAk>0 @f0"|3"3"p` "_J@jpJBg@b6B@oCE3LSBkQ/L3$NuString overflow _pJ.g 0( hNVg4 ( hg( hH`0( hNVg ( hg hHfXgr"ODd2Sk "Sj` _"y%e Hy#pNLN#4T#4P .f -|#``-|#` nNн4Pf y4TNStack overruns heap09%Nu09%By%Nu _3%By%NBy%Nu[3][][ Abort ]Copyright 1986, CCD and OSS, Inc.           .    F  *      (&($               "&&$\>j *V0b,4 "T & & (,&  H                 "$"2J F ( *@ B @ (  . uS 1.. BOOT DOC 02BOOT PRG 03)B_BOOT yS 4B_BOOT2 |S 6Boot should be placed in an Auto folder. It is a customised boot utility which asks for time/date and gives you the option of which drive to boot from. If you select B it will execute programs in the Auto folder of Drive B and load up the .ACC files on Drive B. Boot will not run programs which start from the boot sector. This program was placed in the Public Domain by the Author, Mark Young from Kent. `/<?< NA\?<NNT,`g`/<R?< NA\/<?< NA\Hy?< NA\CT 9f&aJk,a@k@a6k @P@`/<?< NA\?<NAT`/<R?< NA\/<u?< NA\Hy?< NA\CT 9fak<Nak@N`/<(?< NA\?<NAT`??<-NAX/?<NN\HF??<+NAX/<?< NA\?<NAT@@A|n?B?< NA\9#0yFf K"`3F*y/9?<NA\N/<?< NA\/<L7NAB@@0k @0Nu pY 1ST BOOTqeY" Input the DATE (DDMMYY) ______Y"8Y4 pInvalid Date Input - Press a KeyqY4 pInvalid Time Input - Press a KeyqY4 Y$ Input the TIME (HHMM) ____Y$8 Boot from drive A or B ? fY*(Thanks for using ST BOOT$. 8:&. yS 4.. uS 1BOOT_B PRG t 5;`Hz?<&NN3F yN. }S 6.. uS 1B_BOOT DOC t 7>B_BOOT PRG t 9 B BOOT All STs FILENAMES: B_BOOT.PRG, B_BOOT.DOC You may remember that issue three's desktop section featured a tip to allow your ST to boot from drive B. This unfortunately involved subjecting your ST to surgery with a blunt soldering iron which was understandably too much for most people's stomachs. If you're one of those people who just couldn't face the agony of a hardware modification then help is at hand in the form of B BOOT. B BOOT is a software solution to this problem. There's no soldering involved, you don't even have to open your ST so your machine's warrenty will not be affected. Just run the program once and your ST will boot from drive B time after time until you decide enough is enough and switch the machine off. There must be a catch you're thinking, not so, just run once and that's it. All this in just 131 bytes! B BOOT is designed to sit in the auto folder of a disk. When you boot with this disk in drive A, as soon as B BOOT has been executed the boot process will be transfered to drive B. The nice thing about B BOOT is that it will survice all system crashes and even if you reset the machine yourself, B BOOT will continue doing its stuff. For details on how to copy B BOOT, refer to the 'How to use this disk' section on page 80 of this month's Format. `fHz@?< NA\$< "<;AfBfHz?<&NN3F/9NuDrive B Boot by Richard Monteiro: . S :.. COPYFIX DOC ;OCOPYFIX PRG <Prevents changing of file date when copying files. Run from an auto folder. `` GEMDOS Time/Date Transfer Fix for COPY Ver 1.4 (C) 1987 ICD Inc. Jykp y01!H# fNo3,O.|0|gذ|@gBy yL/?# yNBy yL/?#J@Ns~.tAp g XB| fg1 yf3Jyk 949AYBjt g yfg??<><NA?<Hy*?<=NA>A?<?/?<WNA??<>NA3`B?< NA\#Ca:##+|P/9?< NA\O?</<"?<1NA/ga` NuH@??<?<NM\LNuR.  \$ ".    . S >.. DESKTOP TXT ?QDESKTOP1ACC E DESKTOP1C @VfH8DESKTOP1PRG WDESKTOP2ACC X DESKTOP2PRG [DESKTOP2S AVf\ADESKTOP3ACC m DESKTOP3C @Vfp$ This ARC file contains the next files: - DESKTOP1.PRG - DESKTOP2.PRG - DESKTOP1.ACC - DESKTOP2.ACC - DESKTOP3.ACC - DESKTOP.TXT (This text) The primary concern of all these programs/accesorys is to change the desktop gray in the monochrome high-resolution with a Degas (Elite) file. ----------------------------------------------------------------- - DESKTOP1.PRG is the simplest of them all: put it in the AUTO folder of your boot device and put DESKTOP.PI3 in the same AUTO folder or in the root directory. This picture will be loaded and will appear every time the desktop has to be (re)drawn. If this picture does not exist an error message wil be given (*** Error: DESKTOP.PI3 ?? ***). If the picture is not 32034 bytes or more long it will be loaded, but a warning will be given (Warning: DESKTOP.PI3<32000). (Project version 1.0). This version has no bugs! The program is as short as possible (since files are written to disk in clusters of 1024 bytes, pro- gram lengths should be just under a 1024 boundary. It has no advantages to make a file of just 120 bytes, because it still needs 2 sectors on disk!!). - DESKTOP1.ACC is the simplest accessory: it loads DESKTOP.PI3 or DESKTOP.PC3 (the Degas form of compression) from the root direc- tory. After the start-up it is possible to reload a Degas file: click on the 'Desktop Picture' menu at the accessories, and an alertbox will ask you whether you want a new picture, (de)select the old gray background or do nothing. Clicking on 'New' displays the fileselectbox with all the P?3 files on the device and the name of the picture in the background memory at this moment. Just try it out ... (Project version 2.01). This version has no problems when no other GEM vector programs or accessories are used. With the 'Show' option of the desktop or a TOS or TTP program the original GEM vector is reinstalled by the system, so this accessory then reinstalls its own vector. When other GEM vector programs are used, the vectors get mixed up and your computer will at least bomb. In this cases you can use - DESKTOP2.ACC, which is similar to DESKTOP1.ACC, except for the GEM vector reinstallment. When you have troubles using one of them, you should be able to use the other. (Project number 2.02). I have troubles with GEMKEY and DESKTOP when they are booted in the reverse order (!), so I'm using this version. When GEMKEY is booted before DESKTOP the 2.01 version should be used (you should be able to see why now ...). - DESKTOP2.PRG is an advanced version of 1.0: it does the same and something extra. Since the 1.0 version has no bugs (but it is not possible to reload a picture) it should be able to obtain the picture adress from the AUTO program and use this in an acces- sory! That is exactly what DESKTOP2 does: when you're calling vs_clip(handle,-1,clip) with clip[0]=0, clip[1]=0, clip[2]=639 and clip[3]=399, and the interior and style are set to 2 and 4, you obtain the picture adress in *(long *)(intout+4). To control whether DESKTOP2 has been installed *(long *)intout contains 'N_DP' ($4e5f4450) when the picture adress is valid or a 0 when it is not. More information in the sources of these programs which are in another ARC file. (project number (1.1). This program has no bugs. The intout array normally returns no- thing when vs_clip() is called. If DESKTOP2.PRG is not resident, the normal version of vs_clip(handle,1,clip) is carried out, which has no negative effects, because it clips the output to the whole screen! When you're using BIGSCRN or similar programs you should call vs_clip again with the actual screen sizes. - DESKTOP3.ACC is the accessory that uses DESKTOP2.PRG. The pic- ture adress is asked by the accessory and given by the AUTO pro- gram. It is now possible to reload a picture at this adress with this accessory. (project number 2.03). This accessory does not (re)install its own GEM vector, so there should not be any any errors with other programs/accessories. ----------------------------------------------------------------- When all you want is a PI3 file as background you should use version 1.0. If you want to be able to change the picture, and don't use any (other) fancy accessories you should use version 2.01. If that does not work you should try 2.02. If you want to be able to change the desktop picture even from your own application you should use the combination of 1.1 and 2.03. How this can be done is mentioned in principle. As you can see: there's a solution to every problem (well, every ...: these programs do all kind of weird things when used on other resolutions than high!). ----------------------------------------------------------------- The sources of these programs are in another ARC file. These sources and the programs in this ARC file are all Public Domain, which means that they should not be sold, but copied only. It is not more then logical that the name of the author is mentioned in programs using this source(s)... For remarks, critics, wishes, questions or cheques don't hesitate to contact the author. ----------------------------------------------------------------- Noud van Kruysbergen Nijmegen Institute for Cognition Research and Information Technology (NICI) P.O. Box 9104 6500 HE Nijmegen The Netherlands email: kruysbergen@hnykun53.bitnet ` 0t~N N (K mNf]` m"m -So Q m -SBQ(m)MO*mNN\?<N H?<A?<NAX <B@SfLNuNVRADP @sfH A P0 @rf>A0 @fA0 @frA0gh A h0f\0 @gJ@fN0 @fD0 @f:"xN0:L4PA4 P0:HǏ6HG8::RE>HǏ:HG< f4>GDG<++++FPPQ`^S@JDWgJ@VgS@$H&IJDgJEgQJFgNX0,N^NuNVA C!#PN^NuNVNT/<}?<HN\)@At HlHlHNPHlHlNP?<NzT|A@<AHAHHl?<NR\BgHlH?<NNBP9@0,f@A м/HlNvPN @l<@H9@`Hz$?<&N\Hl ?,N\9@HlNX0,g8B?< N\)@C޳gA !#P/,?< N\ l(fD0,lf8Hl20<l?N\9@0,2<lAg?<N T?<?<BgBgBgBgBgBgBgN\ lf ,H|g lf2HlHlHlN 0,gN @l?<NvTB, lf ,H|f lfR0,2<l9AAg>9lgHz?<&N\`&B?< N\)@AX!/,?< Nz\?<?<BgBgBgBgBgBg?<NBgNT`jN^NuNu)I)J"/0<NB"l$lNu NV9n0.| A" AA-H=|` nR2.AH0Rn nm/,N.X0,N^NuNVA)HA)HA)HA)HA)HA)HA)H?< NXT9l0,N^NuNV)n?<N6TN^NuNV9n)n ?<#NTN^NuNV9n9n 9n 9n9n9n9n9n9n?<3NTN^NuNV9n)n ?<4NTN^NuNV9n?<5NTN^NuNV)n)n ?<ZN|T n00,N^NuNV9n?<kNXTN^Nu)I)J)_NN"l$l/,Nu)I)J)_NA"l$l/,NuNVH0&n$n -K`fS`f .`L N^NuNV n "n fN^NuNVH0&n$K`Rf `L N^NuNVBgNATN^Nu9|Nu.P?3A:\DESKTOP.P?3A:\*.P?3 Desktop Picture[2][| Desktop Picture 2.01| Noud van Kruysbergen|][New| On |Off]; ************************************************************************** ; This is the source of DESKTOP.ACC, a program that changes the normal gray ; background with a Degas P?3 file. This source is public domain, but I ; would appreciate it very much if a program that uses (part) of this ; source respects the name of the author! ; ************************************************************************** ; This source is written for Megamax C, with the inline assembly. ; ************************************************************************** ; Noud van Kruysbergen ; N.I.C.I. ; P.O. Box 9104 ; 6500 HE Nijmegen ; The Netherlands ; email: kruysbergen@hnykun53.bitnet ; ************************************************************************** #include #include #include #include int status=1; int handle; int menu_id,msgbf[8]; int i,j; long l,picstart,bufcount,piccount; static long _oldgem(); static long _newgem(); static int _style(),_interior(),_mode(); extern int gl_apid; static long _buffer(); long buffer; static int _clipx0(),_clipy0(),_clipx1(),_clipy1(); char path[50],file[14]; char t[70]; char newdta[44]; newroutines() { asm { dc.l 0x58425241 dc.l 0x4e5f4450 dc.l 0L _newgem: cmpi.w #115,D0 bne gemquit movem.l D0-A3,-(A7) move.l D1,A0 move.l (A0),A0 move.w (A0),D0 cmpi.w #114,D0 bne nofill lea _interior,A0 move.w (A0),D0 cmpi.w #2,D0 bne gemrest lea _style,A0 move.w (A0),D0 cmpi.w #4,D0 bne gemrest lea _mode,A0 move.w (A0),D0 beq gemrest move.l D1,A0 move.l 8(A0),A0 move.w (A0)+,D0 bne gemrest move.w (A0)+,D0 cmpi.w #19,D0 beq menu tst.w D0 bne gemrest menu: move.w (A0)+,D0 cmpi.w #639,D0 bne gemrest move.w (A0),D0 cmpi.w #399,D0 bne gemrest move.l 0x44e,A1 ; A1: screenadress move.w _clipy0,D0 move.w D0,D2 ; D2: y0 muls #80,D0 adda.l D0,A1 ; A1: screenadress + y0 offset lea _buffer,A0 move.l (A0),A0 ; A0: pictureadress adda.l D0,A0 ; A0: pictureadress + y0 offset move.w _clipy1,D0 sub.w D2,D0 move.w D0,D2 ; D2: total number of lines move.w _clipx0,D3 ; D3: x0 move.w D3,D7 ext.l D7 divs #8,D7 move.w D7,D3 adda.l D3,A0 adda.l D3,A1 ; D3: x0/8 swap D7 move.w D7,D4 ; D4: x0%8 move.w _clipx1,D5 addq.w #1,D5 ; D5: x1 move.w D5,D7 ext.l D7 divs #8,D7 move.w D7,D5 ; D5: x1/8 swap D7 move.w D7,D6 ; D6: x1%8 move.l D5,D0 sub.l D3,D0 bne label3 move.w D6,D7 subi.w #8,D7 neg.w D7 move.b #-1,D3 lsr.b D7,D3 lsl.b D7,D3 lsl.b D4,D3 lsr.b D4,D3 loop2: move.b D3,D5 move.b (A0),D7 and.b D5,D7 not.b D5 and.b (A1),D5 add.b D5,D7 move.b D7,(A1) adda.l #80,A0 adda.l #80,A1 dbf D2,loop2 bra selfok label3: subq.w #1,D0 tst.w D4 seq D5 beq yloop tst.w D0 sne D5 beq yloop subq.w #1,D0 ; first incomplete byte yloop: move.l A0,A2 move.l A1,A3 tst.w D4 beq nostart move.b (A2)+,D3 move.b #-1,D7 lsr.b D4,D7 and.b D7,D3 not.b D7 and.b (A3),D7 ; D1 contains lowest picturebits, D7 highest backgroundbits add.b D3,D7 move.b D7,(A3)+ nostart: move.w D0,D7 tst.w D5 beq endbyte xloop: move.b (A2)+,(A3)+ dbf D7,xloop ; last incomplete byte endbyte: tst.w D6 beq no_end move.b (A2)+,D3 move.b #-1,D7 lsr.b D6,D7 not.b D7 and.b D7,D3 not.b D7 and.b (A3),D7 add.b D3,D7 move.b D7,(A3) no_end: adda.l #80,A0 adda.l #80,A1 label1: dbf D2,yloop selfok: movem.l (A7)+,D0-A3 rte nofill: move.l D1,A0 move.l 4(A0),A0 move.w (A0),D2 cmpi.w #23,D0 bne nointerior lea _interior,A0 move.w D2,(A0) bra gemrest nointerior:cmpi.w #24,D0 bne nostyle lea _style,A0 move.w D2,(A0) bra gemrest nostyle: cmpi.w #129,D0 bne gemrest lea _mode,A0 move.w D2,(A0) beq gemrest move.l D1,A0 move.l 8(A0),A0 lea _clipx0,A1 move.w (A0)+,(A1) lea _clipy0,A1 move.w (A0)+,(A1) lea _clipx1,A1 move.w (A0)+,(A1) lea _clipy1,A1 move.w (A0),(A1) gemrest: movem.l (A7)+,D0-A3 gemquit: move.l _oldgem,-(A7) rts _oldgem: dc.l 0L _buffer: dc.l 0L _style: dc.w 0 _interior:dc.w 0 _mode: dc.w 0 _clipx0: dc.w 0 _clipy0: dc.w 0 _clipx1: dc.w 0 _clipy1: dc.w 0 } } Readfile() { handle=-1; strcpy(t,path); j=0; while(t[j++]!='*' && j<70); if (j<70) { path[j]=0; t[--j]=0; strcat(path,".P?3"); strcat(t,file); if ((handle=Fopen(t,0))>=0) { Fseek(34L,handle,0); j=strlen(file); if (file[--j]=='3' && file[--j]=='C') { l=Fsetdta(newdta); Fsfirst(t,0); Fsetdta(l); l=*(long *)(newdta+26); if (piccount=picstart=Malloc(l)) { l=Fread(handle,l,picstart); bufcount=buffer; do { asm { move.l piccount(A4),A0 move.b (A0),D0 ext.w D0 and.w #0xff,D0 move.w D0,j(A4) addq.l #1,piccount(A4) } if (j<128) { asm { move.l bufcount(A4),A2 move.l piccount(A4),A1 move.w j(A4),D0 pic1loop: move.b (A1)+,(A2)+ dbf D0,pic1loop move.l A1,piccount(A4) move.l A2,bufcount(A4) } } else { if (j!=128) { j^=255; asm { move.l bufcount(A4),A2 move.l piccount(A4),A1 move.w j(A4),D0 addq.w #1,D0 pic2loop: move.b (A1),(A2)+ dbf D0,pic2loop addq.l #1,piccount(A4) move.l A2,bufcount(A4) } } } } while((piccount-picstartNAXBg/?<1NA/?< NA\Nu2<0<QQNuXBRAN_DP @sfH A P0 @rf8 yvf| ytfpJyxgf A h0fZ0 @gJ@fL0 @fB0 @f8"xN09|4PA09B469z>HǏ6HG8:9~RE>HǏ:HG< f.>QGDG<++++FPPQ`ZS@JDWgJ@VgS@$H&IJDgJEgQJFgA0 @fA0 @frA0gh A h0f\0 @gJ@fN0 @fD0 @f:"xN0:L4PA4 P0:HǏ6HG8::RE>HǏ:HG< f4>GDG<++++FPPQ`^S@JDWgJ@VgS@$H&IJDgJEgQJFgNX0,N^NuNVA C!#PN^NuNVN/<}?<HNn\)@At HlHlHNPHlHlNP?<N9lgHz ?<&N\`&B?< N\)@A!/,?< Nz\?<?<BgBgBgBgBgBg?<NBgNT`N^NuNu)I)J"/0<NB"l$lNu NV9n0.| A" AA-H=|` nR2.AH0Rn nm/,N.X0,N^NuNVA)HA)HA)HA)HA)HA)HA)H?< NXT9l0,N^NuNV)n?<N6TN^NuNV9n)n ?<#NTN^NuNV9n9n 9n 9n9n9n9n9n9n?<3NTN^NuNV9n)n ?<4NTN^NuNV9n?<5NTN^NuNV)n)n ?<ZN|T n00,N^NuNV9n?<kNXTN^Nu)I)J)_NN"l$l/,Nu)I)J)_NA"l$l/,NuNVH0&n$n -K`fS`f .`L N^NuNV n "n fN^NuNVH0&n$K`Rf `L N^NuNVBgNATN^Nu9|Nu.P?3A:\DESKTOP.P?3A:\*.P?3 Desktop Picture[2][| Desktop Picture 2.02| Noud van Kruysbergen|][New| On |Off]` o(<ب ببؼ}AaBgHyt?<=NAP6j2BgHy?<=NAP6jA+a?<?<NAXaBgNABg?/<"?<BNA Hy/<}??<?NA }g APa8aBHy ?<"?<NMP#A !@??<>NAXBg/?<1NA/?< NA\Nu2<0<QQNuXBRAN_DP @sfH A P0 @rf8 yf yfJyg A h0fx0 @gJ@fj0 @f`0 @fV"xN094PA09B469>HǏ6HG8:9RE>HǏ:HG< f.>QGDG<++++FPPQ`ZS@JDWgJ@VgS@$H&IJDgJEgQJFgD5) goto label3; ; -------------------------------------------------------------------------- ; This routine takes care of the times when the desktop has to be redrawn ; within one character (for instance from bit 2 to bit 5). ; -------------------------------------------------------------------------- move.w D6,D7 ; D7 = D6; /* D6=5+1 */ subi.w #8,D7 neg.w D7 ; D7 = -(D6-8); /* D7=2 */ move.b #-1,D3 ; D3 = 11111111 /* in binary mode */ lsr.b D7,D3 ; D3 = 00111111 lsl.b D7,D3 ; D3 = 11111100 lsl.b D4,D3 ; D3 = 11110000 /* D4=2 */ lsr.b D4,D3 ; D3 = 00111100 ; This is a very elegant way to make a byte that has the bits set that ; should contain the background information. A zero in this byte means that ; what is on screen at that location should stay there. In this case only ; the bits 5,4,3 and 2 (numbers 2,3,4 and 5 from the left) have to be updated. byteloop: move.b D3,D0 ; D0 = 00111100 move.b (A0),D7 ; D7 = picturebyte and.b D0,D7 ; D7 &= 00111100 not.b D0 ; D0 = 11000011 and.b (A1),D0 ; screenbyte &= 11000011 add.b D0,D7 ; D7 = picturebyte + screenbyte move.b D7,(A1) ; screenbyte = D7 adda.l #80,A0 ; next pictureline adda.l #80,A1 ; next screenline dbf D2,byteloop ; do this for all # lines bra selfok ; quit the GEM call ; -------------------------------------------------------------------------- ; More than one byte have to be redrawn. ; -------------------------------------------------------------------------- label3: subq.w #1,D0 ; # bytes -= 1 for 'dbf' sake. tst.w D4 ; xclip0 on a byte-boundairy? seq D5 ; yes : set D5 beq yloop ; : goto yloop tst.w D0 ; D0==0? /* only 1 byte? */ sne D5 ; no : set D5 beq yloop ; yes : goto yloop subq.w #1,D0 ; more than one byte: D0 -= 1; ; -------------------------------------------------------------------------- ; Start of the actual updating routine. ; -------------------------------------------------------------------------- ; We first have to draw the remainder of the first byte. If there is no ; remainder (D4=0) we don't have to do this. Suppose we have to redraw ; from bit 4 (from the left, so actually bit 5): D4=3. yloop: move.l A0,A2 ; A2 = pictureadres move.l A1,A3 ; A3 = screenadres tst.w D4 ; if no remainder has to be drawn beq nostart ; then don't do this move.b (A2)+,D3 ; D3 = picturebyte move.b #-1,D7 ; D7 = 11111111 lsr.b D4,D7 ; D7 = 00011111 and.b D7,D3 ; D3 &= 00011111 /* picturebits */ not.b D7 ; D7 = 11100000 and.b (A3),D7 ; D7 &= screenbyte /* screenbits */ add.b D3,D7 ; D7 += D3 /* picture+screen */ ; D7 contains the high bits from the old background and the low bits from ; the redrawn background. move.b D7,(A3)+ ; screenbyte = D7 ; When we arrived here, we are at a byte boundary. We are going to copy ; bytes from the picture to the screen if necessary (D5 was set) nostart: move.w D0,D7 ; D7 = # bytes tst.w D5 beq endbyte ; D5 not set: goto endbyte xloop: move.b (A2)+,(A3)+ ; screenbyte = picturebyte dbf D7,xloop ; do this # bytes times ; We still are at a byte boundary. Are there any bits to draw any further? endbyte: tst.w D6 beq no_end ; If not, skip this part. D6 contains the number of bits to update, say 3. move.b (A2)+,D3 ; D3 = picturebyte move.b #-1,D7 ; D7 = 11111111 lsr.b D6,D7 ; D7 = 00011111 not.b D7 ; D7 = 11100000 and.b D7,D3 ; D3 &= 11100000 /* picturebits */ not.b D7 ; D7 = 00011111 and.b (A3),D7 ; D7 &= screenbyte add.b D3,D7 ; D7 = screenbits + picturebits move.b D7,(A3) ; screenbyte = D7 no_end: adda.l #80,A0 ; next picture line adda.l #80,A1 ; next screen line label1: dbf D2,yloop ; do this # lines times selfok: movem.l (A7)+,D0-A3 ; quit the GEM call rte ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ; This is were the redrawing of the background ends. It all is in fact ; nothing more than shifting a proper amount of bits at a proper time! ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ; ************************************************************************** ; Is the VDI call vst_interior()? nofill: move.l D1,A0 move.l 4(A0),A0 move.w (A0),D2 ; D2 = intin[0]; cmpi.w #23,D0 bne nointerior move.w D2,interior ; interior = intin[0]; bra gemrest ; ************************************************************************** ; Is the VDI call vst_style()? nointerior:cmpi.w #24,D0 bne nostyle move.w D2,style ; style = intin[0]; bra gemrest ; ************************************************************************** ; Is the VDI call vs_clip()? nostyle: cmpi.w #129,D0 bne gemrest move.w D2,mode ; mode = intin[0]; beq gemrest ; if (mode==0) no clipping; cmpi.w #-1,D2 bne normal ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ; for version 1.0 exclude the part between the ...++++++... lines !!! ; ; We return the picture adress in intout[2] when vs_clip(x,-1,x) is called. ; This is an illegal not documented feature! When DESKTOP.PRG is not ; installed the content of intout[2] is NOT the picture adress! ; This can be controlled by intout[0]: if *(long *)intout==$4e5f4450 ; ("N_DP") the value *(long *)(intout+4) is a valid picture adress. move.l D1,A0 move.l 12(A0),A0 move.l #$4e5f4450,(A0)+ ; *(ong *)intout=0x4e5f4450 clr.l (A0)+ lea picbuffer,A1 move.l A1,(A0) ; *(long *)(intout+4)=picbuffer; bra selfok ; This is the normal clipping procedure ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ normal: move.l D1,A0 move.l 8(A0),A0 move.w (A0)+,clipx0 ; clipx0 = intin[0]; move.w (A0)+,clipy0 ; clipy0 = intin[1]; move.w (A0)+,clipx1 ; clipx1 = intin[2]; move.w (A0),clipy1 ; clipy1 = intin[3]; gemrest: movem.l (A7)+,D0-A3 ; restore registers gemquit: move.l gemold,-(A7) ; put old GEM vector on the stack rts ; and jump to it... data noudtext: dc.b 27,'E',13,10,10," ",27,'p'," Desktop Picture V1.1 " dc.b 27,'q',13,10," ",27,'p'," Noud van Kruysbergen ",27,'q',13,10,10,0 error1: dc.b " **** Error: DESKTOP.PI3 ? ****",13,10,0 error2: dc.b " Warning: DESKTOP.PI3 < 32034",13,10,0 file1: dc.b "AUTO\DESKTOP.PI3",0 file2: dc.b "DESKTOP.PI3",0 even bss style: ds.w 1 interior: ds.w 1 mode: ds.w 1 clipx0: ds.w 1 clipy0: ds.w 1 clipx1: ds.w 1 clipy1: ds.w 1 gemold: ds.l 1 picbuffer:ds.l 1 ; 32000 bytes are reserved from here. end ` 6N NK mNf]` m"m -So Q m -SBQ(m)MO*mNN*?<NHH?<A?<NAX <B@SfLNuNVNxHlTHlHl>Nr Hl?NX`?<N4TB,`* l:"H2<P0<OUQPQ?<?<BgBgBgBgBgBg?<NBgNT`N^NuNu)I)J"/0<NB"l$lNu NV9nn0.| A" AA-H=|` nR2.AnH0Rn nm/,N.X0,N^NuNVAn)HAN)HA,)HA)HA)HA)HA)H?< NXT9l0,N^NuNV)n?<N6TN^NuNV9n,)n ?<#NTN^NuNV9n,9n .9n 09n29n49n69n89n:9n22222222222)|:NuA:\*.P?3 Desktop Picture[3][DESKTOP 1.1 not resident][Cancel][2][| Desktop Picture 2.03|(with DESKTOP.PRG 1.1)| Noud van Kruysbergen|][P?3|Gray|Cancel].P?3; ************************************************************************** ; This is the source of DESKTOP.ACC, a program that changes the normal gray ; background with a Degas P?3 file. This source is public domain, but I ; would appreciate it very much if a program that uses (part) of this ; source respects the name of the author! ; ************************************************************************** ; This source is written for Megamax C, with the inline assembly. ; ************************************************************************** ; This program needs DESKTOP.PRG version 1.0. ; ************************************************************************** ; Noud van Kruysbergen ; N.I.C.I. ; P.O. Box 9104 ; 6500 HE Nijmegen ; The Netherlands ; email: kruysbergen@hnykun53.bitnet ; ************************************************************************** #include #include #include #include int handle; int menu_id,msgbf[8]; int i; int clip[4]={0,0,639,399}; int contrl[12],intin[128],ptsin[128],intout[128],ptsout[128]; int work_out[57],work_in[11]={1,1,1,1,1,1,1,1,1,1,2}; extern int gl_apid; extern long addr_out[2]; long picture=0L; long l,picstart,bufcount,piccount; char newdta[44]; char path[50],file[14]; char t[70]; main() { appl_init(); v_opnvwk(work_in,&handle,work_out); vs_clip(handle,-1,clip); if (*(long *)intout==0x4e5f4450) picture=*(long *)(intout+4); strcpy(path,"A:\\*.P?3"); file[0]=0; path[0]=(char)(Dgetdrv()+65); menu_id=menu_register(gl_apid," Desktop Picture"); while () { evnt_mesag(msgbf); if (msgbf[0]==AC_OPEN && msgbf[4]==menu_id) { if (picture==0L) form_alert(1,"[3][DESKTOP 1.1 not resident][Cancel]"); else { i=form_alert(3,"[2][| Desktop Picture 2.03|(with DESKTOP.PRG 1.1)|= Noud van Kruysbergen|][P?3|Gray|Cancel]"); if (i<3) { wind_update(BEG_UPDATE); form_dial(FMD_START,0,0,0,0,0,0,640,400); if (i==1) { fsel_input(path,file,&i); if (i) { strcpy(t,path); i=0; while(t[i++]!='*' && i<70); if (i<70) { path[i]=0; t[--i]=0; strcat(path,".P?3"); strcat(t,file); if ((handle=Fopen(t,0))>=0) { Fseek(34L,handle,0); i=strlen(file); if (file[i-2]=='C') { l=Fsetdta(newdta); Fsfirst(t,0); Fsetdta(l); l=*(long *)(newdta+26); if (piccount=picstart=Malloc(l)) { l=Fread(handle,l,picstart); bufcount=picture; do { asm { move.l piccount(A4),A0 move.b (A0),D0 ext.w D0 and.w #0xff,D0 move.w D0,i(A4) addq.l #1,piccount(A4) } if (i<128) { asm { move.l bufcount(A4),A2 move.l piccount(A4),A1 move.w i(A4),D0 pic1loop: move.b (A1)+,(A2)+ dbf D0,pic1loop move.l A1,piccount(A4) move.l A2,bufcount(A4) } } else { if (i!=128) { i^=255; asm { move.l bufcount(A4),A2 move.l piccount(A4),A1 move.w i(A4),D0 addq.w #1,D0 pic2loop: move.b (A1),(A2)+ dbf D0,pic2loop addq.l #1,piccount(A4) move.l A2,bufcount(A4) } } } } while((piccount-picstartFrom: koreth%panarthea.ebay@sun.com (Steven Grimm) Newsgroups: comp.binaries.atari.st Subject: v05i077: fmc -- Force media change on floppy writes Keywords: arc, uuencode Message-ID: <116381@sun.Eng.Sun.COM> Date: 19 Jul 89 02:33:17 GMT Sender: news@sun.Eng.Sun.COM Lines: 56 Approved: koreth%panarthea.ebay@sun.com Submitted-by: marob.masa.com!lilink!joeg (Joe Gelman) Posting-number: Volume 5, Issue 77 Archive-name: fmc This file was posted on a local bbs. It comes at a time when I've been having nightmares trying to get a fix for a non-Atari drive that won't detect a change of disks unless they're write protected. Along comes this gem (no pun) which apparently forces the ST to read the disk directory at every access. I haven't extensively tested this program but it seems to work fine. If I'm not mistaken, it will be a welcome addition to many an AUTO folder! . S .. ENVIRON SRC N{X ENVIRON DAT R{X OENVIRON DOC U{X ENVIRON PRG Y{X lENVIRON NET \{X From idec!stc!ukc!mcvax!uunet!cs.utexas.edu!sun-barr!sun!grapevine!koreth%panarthea.ebay@sun.com Tue Aug 1 08:00:08 BST 1989 Article 135 of comp.sources.atari.st: Path: prlhp1!idec!stc!ukc!mcvax!uunet!cs.utexas.edu!sun-barr!sun!grapevine!koreth%panarthea.ebay@sun.com >From: koreth%panarthea.ebay@sun.com (Steven Grimm) Newsgroups: comp.sources.atari.st Subject: v02i064: environ -- Set environment variables from AUTO folder Keywords: shar, 68000 Message-ID: <33942@grapevine.uucp> Date: 24 Jul 89 15:38:26 GMT Sender: news@grapevine.uucp Lines: 200 Approved: koreth%panarthea.ebay@sun.com Submitted-by: Thomas_E_Zerucha@cup.portal.com (Thomas E. Zerucha) Posting-number: Volume 2, Issue 64 Archive-name: environ Environ.prg is a program to set the desktop's environment from the auto folder using a text file (environ.dat) in the root directory of your boot disk. This way you can have your environment set for your shell without long profiles or logins, and can put .rsc files where they can always be found (on another drive). #!/bin/sh # shar: Shell Archiver (v1.22) # # Run the following text with /bin/sh to create: # ENVIRON.DAT # ENVIRON.DOC # ENVIRON.S # sed 's/^X//' << 'SHAR_EOF' > ENVIRON.DAT && XPATH=;d:\gemprogs;d:;d:\bin;d:\lang;d:\scripts;d:\usrbin;. XTEMP=c:\tmp\ XINCLUDE=d:\include\ XSYMB=d:\lang\ XLIB=d:\lib\ XSTARTUP=d:\lib\gemstart XRUNTIME=d:\lib\gemlib XSUFF=,.prg,.ttp,.tos XLIBPATH=d:\mwlib,d:\lang,. XINCDIR=d:\mwinc\ XTMPDIR=c:\tmp\ XTIMEZONE=EST:0:EDT XEDITOR=sedt.ttp XSEDT=d:\include\ XSHELL=csh.tos XHOME=d:\ SHAR_EOF chmod 0644 ENVIRON.DAT || echo "restore of ENVIRON.DAT fails" sed 's/^X//' << 'SHAR_EOF' > ENVIRON.DOC && XENVIRON.PRG X - set desktop environment (like PATH, HOME, and other things for shells) X from \AUTO folder. X X Place ENVIRON.PRG in the \AUTO folder. X X Uses ENVIRON.DAT as a standard ASCII text file containing the X environment (e.g try "printenv >c:\environ.dat" and use that X after fixing the PATH= as shown below). X X Note that GEM can find .RSC files on the first entry in the path, X but ignores the first character, e.g. the following works: X XNote | the extra semicolon, and that you need semicolons and not commas X | for the PATH to work for the desktop and .rsc files. X v XPATH=;d:\gemprogs;d:;d:\bin;d:\lang;d:\scripts;d:\usrbin;. XTEMP=c:\tmp\ XINCLUDE=d:\include\ X X All my .rsc files (and some configs and such) are in my d:\gemprogs, X so I can double click a document (installed as per the desktop X dialog, e.g. .DOC=1stword) anywhere on any disk and the program X will come up properly, and I can go "gem program doc" from any X folder under a shell and everything will work. X X (Tech note: It is documented somewhere that the way GEM searches X for the .RSC files (and there is a call that looks for files X in the same way for setups, etc.) is to first search the current X directory, then the root directory on the disk, then the PATH= X value, which defaults to A:, which is why it spins your floppy X before it says it can't find the resource. What my program does X is to read in environ.dat (must be in root), change linefeeds X to nulls and delete the carriage returns and put nulls at the X end, then point the desktop environment to that buffer.) X X What is also useful is that most shells will take these values X so you don't have to have a big profile.sh or login.sh files X just to set the environment. X X Make sure all lines are of the form SYM=value, and don't put X any blank lines or spaces unless needed (see your shell docs). X X Source is included for the curious. SHAR_EOF chmod 0644 ENVIRON.DOC || echo "restore of ENVIRON.DOC fails" sed 's/^X//' << 'SHAR_EOF' > ENVIRON.S && X .text X*housekeeping X move.l a7,a5 X move.l 4(a5),a5 ;compute size for TSR call X move.l $c(a5),d6 ;text X add.l $14(a5),d6 ;data X* add.l $1c(a5),d6 ;bss X add.l #$100,d6 ;basepage X add.l #$40,d6 ;saftey X*open X move.w #0,-(sp) X pea envfstr X move.w #$3d,-(sp) X trap #1 X addq.l #8,sp X move.w d0,handl X blt bexit X*read X pea workar X move.l #8192,-(sp) X move.w handl,-(sp) X move.w #$3f,-(sp) X trap #1 X add.l #12,sp X add.w d0,d6 ;length of used BSS = length of file X move.l #workar,a0 X add.w d0,a0 ;point to end of environment X move.b #0,(a0) ;put nulls afterword X move.b #0,1(a0) ;put nulls afterword X X;change linefeeds to nulls X move.l #workar,a0 X move.w d0,d1 Xzaplflp: X cmp.b #10,(a0) X bne.s notlf X move.b #0,(a0) Xnotlf: X addq.l #1,a0 X dbf d0,zaplflp X;remove returns X move.l #workar,a0 X move.l a0,a1 Xzapcrs: X cmp.b #13,(a0) X bne.s notcr X addq.l #1,a0 X bra.s zapcrs Xnotcr: X move.b (a0)+,(a1)+ X cmp.b #0,(a0) X dbeq d1,zapcrs X move.b #0,(a1) X X add.w #$40,d6 ;safety X*close X move.w handl,-(sp) X move.w #$3d,-(sp) X trap #1 X addq.l #4,sp X X* alter vector X move.l #doit,-(sp) ;point to the vector changer code X move.w #38,-(sp) ;we want to do it in supervisor mode! X trap #14 ;execute it! X addq.l #6,sp X* tell everyone we are here X pea msg1 X move.w #9,-(sp) X trap #1 X addq.l #6,sp X* TSR X clr -(sp) ;exit but stay X move.l d6,-(sp) X move #$31,-(sp) X trap #1 X Xbexit: move #0,-(sp) X trap #1 X* set env upon startup Xmovenv: X move.l a7,a5 X move.l 4(a5),a5 X move.l a5,a4 Xlinkup: X move.l $24(a4),a4 X movea.l $2c(a4),a3 X cmp.w #0,(a3) X beq.s setwork X move.l a4,a5 X bra.s linkup Xsetwork: X X move.l #workar,$2c(a5) X move.l shlsav,a5 X jmp (a5) X*** X* install (in super) vector Xdoit: move.l $4fe,shlsav ;move X move.l #movenv,$4fe ;move X rts ;and return X*** X************************* X .data Xmsg1: dc.b 'Environment Set\r\n',0 Xenvfstr: dc.b 'ENVIRON.DAT',0 Xhandl: dc.w 0 Xshlsav: dc.l 0 X .bss Xworkar: ds.b 8192 X .end SHAR_EOF chmod 0644 ENVIRON.S || echo "restore of ENVIRON.S fails" exit 0 PATH=;d:\gemprogs;d:;d:\bin;d:\lang;d:\scripts;d:\usrbin;. TEMP=c:\tmp\ INCLUDE=d:\include\ SYMB=d:\lang\ LIB=d:\lib\ STARTUP=d:\lib\gemstart RUNTIME=d:\lib\gemlib SUFF=,.prg,.ttp,.tos LIBPATH=d:\mwlib,d:\lang,. INCDIR=d:\mwinc\ TMPDIR=c:\tmp\ TIMEZONE=EST:0:EDT EDITOR=sedt.ttp SEDT=d:\include\ SHELL=csh.tos HOME=d:\ ENVIRON.PRG - set desktop environment (like PATH, HOME, and other things for shells) from \AUTO folder. Place ENVIRON.PRG in the \AUTO folder. Uses ENVIRON.DAT as a standard ASCII text file containing the environment (e.g try "printenv >c:\environ.dat" and use that after fixing the PATH= as shown below). Note that GEM can find .RSC files on the first entry in the path, but ignores the first character, e.g. the following works: Note | the extra semicolon, and that you need semicolons and not commas | for the PATH to work for the desktop and .rsc files. v PATH=;d:\gemprogs;d:;d:\bin;d:\lang;d:\scripts;d:\usrbin;. TEMP=c:\tmp\ INCLUDE=d:\include\ All my .rsc files (and some configs and such) are in my d:\gemprogs, so I can double click a document (installed as per the desktop dialog, e.g. .DOC=1stword) anywhere on any disk and the program will come up properly, and I can go "gem program doc" from any folder under a shell and everything will work. (Tech note: It is documented somewhere that the way GEM searches for the .RSC files (and there is a call that looks for files in the same way for setups, etc.) is to first search the current directory, then the root directory on the disk, then the PATH= value, which defaults to A:, which is why it spins your floppy before it says it can't find the resource. What my program does is to read in environ.dat (must be in root), change linefeeds to nulls and delete the carriage returns and put nulls at the end, then point the desktop environment to that buffer.) What is also useful is that most shells will take these values so you don't have to have a big profile.sh or login.sh files just to set the environment. Make sure all lines are of the form SYM=value, and don't put any blank lines or spaces unless needed (see your shell docs). Source is included for the curious. `$ *O*m,- ܭܼܼ@?<Hy,?<=NAP38mHy>/< ?98?<?NA @ |>| |>2  fRQ |>"H  fR` W|@?98?<=NAX/<?<&NN\Hy?< NA\Bg/?<1NA?<NA*O*m(M(l$&l, Sg*L`+|>,*y:N#:!NuEnvironment Set ENVIRON.DAT  $8 From idec!stc!ukc!mcvax!uunet!cs.utexas.edu!csd4.milw.wisc.edu!bionet!apple!sun-barr!sun!grapevine!koreth%panarthea.ebay@sun.com Tue Aug 1 08:00:50 BST 1989 Article 74 of comp.binaries.atari.st: Path: prlhp1!idec!stc!ukc!mcvax!uunet!cs.utexas.edu!csd4.milw.wisc.edu!bionet!apple!sun-barr!sun!grapevine!koreth%panarthea.ebay@sun.com >From: koreth%panarthea.ebay@sun.com (Steven Grimm) Newsgroups: comp.binaries.atari.st Subject: v06i011: environ -- Set environment variables from AUTO folder Keywords: arc, uuencode Message-ID: <33943@grapevine.uucp> Date: 24 Jul 89 15:40:21 GMT Sender: news@grapevine.uucp Lines: 59 Approved: koreth%panarthea.ebay@sun.com Submitted-by: Thomas_E_Zerucha@cup.portal.com (Thomas E. Zerucha) Posting-number: Volume 6, Issue 11 Archive-name: environ Environ.prg is a program to set the desktop's environment from the auto folder using a text file (environ.dat) in the root directory of your boot disk. This way you can have your environment set for your shell without long profiles or logins, and can put .rsc files where they can always be found (on another drive). Source is included [in the sources group -sg]. . S .. HRESET DOC 'HRESET PRG i SOFTWARE TOTAL RESET The RESET button at the back of the Atari does not always completely clean out the computers memory. If you are using a "reset-proof" RAMdisc, for instance, this will normally stay in place. There are times, however, when you really want a fresh start; you want the computer's memory completely clear. Normally, to achieve this you need to switch the machine off and then on again. However, everyone agrees that this is not the best way of treating a computer; a total reset from software is a much kinder option, which will help to prolong the life of your ST. This short program, "HRESET.PRG", should be installed in the "AUTO" folder of you boot disc. In ordinary use it does not interfere with the running of any other program. However, if you want a complete reset, you key the following combination: SHIFT/F10 (that is, simultaneous SHIFT key and Function key 10), followed by CONTROL/HOME (CONTROL key and CLR HOME keys together) and the machine will do a total reset. Only this particular combination of keys, in the correct order, will activate the reset and the combination is sufficiently unusual to make an accident very unlikely! If you have totally jammed the machine, so that the keyboard is not responding, the program will obviously not work; but then things will be so out of hand that the normal reset button will do the job anyway. ` o,<ܨ ܨܨ/<?< NA\A /?<-?<NMPO#Bg/?<1NAA PfZA# <n/@ yN/ ]f3` wf JyfBy" yN yNF'.y y <"<X"|"QNResident Total Reset    . ĉS .. PRTDSK PRG t PRTDSK S t bPRTDSK DOC t `5*O*m - ЭЭ#// ?<?<JNA /<?< NA\# yV!|Bg/9?<1NA# f No ofP ofF# y # yR 5fSS.yNs.yNJyk3Jyg,#f3Bg/<?<NAXB#Nudisassem.sexitnewtfilenamefromsupe|fromuserthandlelengthnewtrapdfoldtrapdopen_closavea0savestacstart2textbufftextcountextptrvb_altkevbclose:vbexitvbopenwaitform, *    * ******************************************** * * Title: Printer to disk * * * * * * Purpose: Redirects output sent to the * * * printer via trap 13 function 3 (bconout) * * * to a disk file named PRINTER.OUT * * ******************************************** opt d+ opt c+ BCONOUT equ 3 function 3 PRT equ 0 TRAPD equ $b4 pointer to trap 13 VBLQUEUE equ $456 pointer to vbl queue PRTCNT equ $4ee ALT HELP count BUFFERSIZE equ 100*1024 maximum size of file move.l a7,a5 save old stack move.l 4(a5),a5 get base base address move.l $c(a5),d0 get text length add.l $14(a5),d0 add data length add.l $1c(a5),d0 add bss length add.l #$100,d0 add base page length move.l d0,length save program length move.l d0,-(sp) area to reserve move.l a5,-(sp) start of area to reserve move.w #0,-(sp) null word move.w #$4a,-(sp) setblock trap #1 add.l #$c,sp start move.l #0,-(a7) no new stack pointer move.w #$20,-(a7) super trap #1 addq.l #6,a7 move.l TRAPD,oldtrapd save old trap d move.l VBLQUEUE,a0 get address of vbl queue move.l #vb_altkey,8(a0) put in our entry clr.w -(a7) 0 exit code move.l length,-(a7) length of memory to keep move.w #$31,-(a7) terminate and stay resident trap #1 * Returns to desktop * * Title: New trap d * Purpose: To catch calls to bconout and place the character * in the internal buffer. * * Contents of stack on entry (if originally in supervisor mode): * position contents.size * 0 status .w * 2 pc .l * 6 function.w * 8 device .w * 10 char .w * newtrapd move.l a7,savestack save the stack pointer btst.l #13,(a7) test status bne fromsuper were we in supervisor mode? fromuser move.l USP,a7 were in user mode suba.l #6,a7 no status and pc fromsuper cmpi.w #BCONOUT,6(a7) is it our one ? bne exitnewtrapd no cmpi.w #PRT,8(a7) printer ? bne exitnewtrapd no move.l a0,savea0 save a0 move.l textptr,a0 get pointer to next position move.b 11(a7),(a0)+ move to text buffer move.l a0,textptr update pointer move.l savea0,a0 recover a0 addq.l #1,textcount update count cmpi.l #BUFFERSIZE,textcount end yet ? bne waitformore no subq.l #1,textptr stop at end of text buffer subq.l #1,textcount no more characters waitformore move.l savestack,a7 restore stack rte exitnewtrapd move.l savestack,a7 restore stack dc.w $4ef9 jmp to original trap d oldtrapd dc.l 0 savestack dc.l 0 savea0 dc.l 0 length dc.l 0 textptr dc.l textbuffer textcount dc.l 0 * * Title: Vblank ALT key * Purpose: To open the file PRINTER.OUT when ALT HELP is pressed * and to write the text buffer and close the file when * ALT HELP is pressed again. * vb_altkey tst.w PRTCNT alt/help been pressed ? bmi vbexit no move.w #-1,PRTCNT screen dump done tst.w open_close open or close file beq vbclose close vbopen move.l #newtrapd,TRAPD set new trap d move.w #0,open_close close next time clr.w -(a7) normal file move.l #filename,-(a7) address of name move.w #$3c,-(a7) create file trap #1 addq.l #8,a7 move.w d0,handle save handle rts vbclose move.l oldtrapd,TRAPD recall real trap d move.w #1,open_close open next time move.l #textbuffer,-(a7) start buffer move.l textcount,-(a7) write buffer move.w handle,-(a7) get handle move.w #$40,-(a7) write trap #1 add.l #12,a7 move.w handle,-(a7) get handle move.w #$3e,-(a7) close file trap #1 addq.l #4,a7 clr.l textcount reset count move.l #textbuffer,textptr reset pointer vbexit rts open_close dc.w 1 filename dc.b 'printer.out',0 even handle dc.w 0 textbuffer dsbss.b BUFFERSIZEPrinter to disk --------------- Purpose: This program was written to provide a way of disassembling memory to disk. HiSofts MonST program provides disassembly to the printer, but not to disk. Hence this program. Operation: The program is installed by loading it from the desktop. It will load, run, and return back to the desktop remaining in memory. To start redirecting printer output to disk press the ALT and HELP keys together. This will create a file 'PRINTER.OUT' on the current disk and store any printer output in memory. When you are promted that the printout has finished, press ALT and HELP again. This will write the printer output stored in memory to the file and then close the file. Implementation: This program has been written for HiSofts DevpacST assembler package, but should not require much modification for other assembler packages. . ˉS .. VIEW DOC t ^VIEW TTP ft (VIEW_ENGDOC %t t *** Dokumentation zu VIEW Version v1.1 *** (c) 1987 R. Fuchs, Am Weingarten 13, 6000 Frankfurt 90 Dieses Programm kann fuer nicht-kommerziellen Gebrauch frei kopiert und auch wieder geloescht werden, falls es keinen interessiert... VIEW ist ein Programm zum Betrachten und Blaettern in Text- und Programmfiles und zu deren Ausdruck. Aufruf: Anklicken von VIEW.TTP und Eingabe des Filenamens, bzw. Eingabe von VIEW.TTP filename unter einer Shell. VIEW laedt dann das gewuenschte File ein und zeigt es auf dem Bildschirm an. Dabei werden Steuerzeichen (unter ASCII 32) als Punkt dargestellt (mit Ausnahme von CR und LF). Es lassen sich daher auch Programmfiles anzeigen und diese nach Textstellen durchsuchen. Es werden jeweils 24 Zeilen auf einmal dargestellt. Die unterste Bildschirmzeile zeigt den Filenamen, die Laenge der Datei, die sich momentan am oberen Bildschirmrand befindliche Zeile und die Gesamtzahl der Zeilen des Files. Folgende Optionen stehen auf Tastendruck zur Verfuegung: SPACE - Eine Seite, dh. 23 Zeilen vorblaettern. BACKSPACE - Eine Seite, dh. 23 Zeilen zurueckblaettern. RETURN - Eine Zeile weiter. TAB - Eine Zeile zurueck. G - Goto. Es wird nach einer Zeilennummer gefragt und dann der Text ab dieser Zeile angezeigt. HOME - Blaettern zu Textanfang bzw. Textende. P - Print. Die Datei wird ausgedruckt mit einer Headerzeile, die Filenamen und Laenge enthaelt. Der Druckvorgang kann mit ESCape abgebrochen werden. B - Block Print. Der Ausdruck erfolgt ab der momentan obersten Textzeile. S - Suchen nach einem bestimmten String. Die Zeile, die den Suchstring enthaelt, wird als oberste Zeile dargestellt. HELP - Anzeige einer HELP-Seite. UNDO oder ESCape - Abbrechen des Programms. Ideal ist die Anwendung dieses Programms in Zusammenhang mit dem auf der Diskette befindlichen DESKTOP.INF File. Dazu einige Erlaeuterungen: Wer kennt das Problem nicht? Man will sich nur einmal schnell eine bestimmte Stelle in einer Textdatei anschauen und oeffnet daher das entsprechende Symbol. In der nun erscheinenden Auswahl- box waehlt man 'Anzeigen' und scrollt sich nun mit Hilfe der Space-Taste bis zum gesuchten Textteil. Oder besser: man wollte dies tun, denn schon sieht man die gesuchte Stelle am oberen Bildrand entschwinden...Also, alles wieder von vorne... VIEW und DESKTOP.INF bieten dazu eine angenehme Alternative ! Wie das? Dies soll ein gewoehnliches DESKTOP.INF File sein: #a030000 #b001000 #c7770007000700070055200505552220770557075057705504111603 #d #E 7B 03 #W 03 01 06 01 33 0A 09 A:\*.*@ #W 00 00 00 01 4F 12 00 @ #W 00 00 18 01 1E 13 00 @ #W 00 00 00 04 4F 11 00 @ #M 02 07 00 FF A DOUBLE-SIDED@ @ #M 03 07 00 FF B DOUBLE-SIDED@ @ #T 07 07 02 FF GO TO HELL@ @ #F FF 04 @ *.*@ #D FF 01 @ *.*@ #G 03 FF *.PRG@ @ #G 03 FF *.APP@ @ #F 03 04 *.TOS@ @ #P 03 04 *.TTP@ @ #G 03 04 A:\WORDPLUS.PRG@ *.DOC@ Oeffnet man ein Dokument auf dem Desktop, dann ueberprueft der ST, ob die Extension dieses Files sich in der durch DESKTOP.INF vorgegeben Tabelle findet. Interessant dabei ist, dass diese Tabelle von unten her angegangen wird. In diesem Beispiel also bedeutet dies, dass zuerst ueberprueft wird, ob das angewaehlte Dokument vom Typ *.DOC ist; gegebenenfalls wird das Programm WORDPLUS gestartet. Anderenfalls wird ueberprueft, ob es sich um ein *.TTP-, ein *.TOS-, ein *.APP- oder zuletzt ein *.PRG- Dokument handelt. In diesen Faellen wird das angeklickte File direkt gestartet. Ist nichts von dem der Fall, dann wird die bekannte Auswahlbox 'Anzeigen Drucken Abbrechen' angezeigt. Und genau hier kann man nun einhaken: Das File DESKTOP.INF laesst sich mit jedem Texteditor bearbeiten. Fuegt man in die Zeile #F FF 04 @ *.*@ den Namen seines bevorzugten Editors ein, so wird automatisch dieser aufgerufen anstelle der unerwuenschten Auswahlbox. Ist dieser Editor ein GEM- Programm, dann muss #F durch #G ersetzt werden. Zwei Beispiele: #F FF 04 C:\VIEW.TTP@ *.*@ oder #G FF 04 C:\EDITOREN\TEMPUS.PRG@ *.*@ Es sind dabei beliebige Pfadname erlaubt. Klickt man nun ein Textfile an, dann wird automatisch der angegebene Editor gestartet und der Pfadname des angewaehlten Dokuments uebergeben. In den obigen Beispielen wuerde also das TOS- Programm VIEW.TTP von Laufwerk C: (Festplatte oder RAM-Disk) bzw. das GEM-Programm TEMPUS aus dem Ordner Editoren auf Laufwerk C: gestartet. Ein Nachteil soll nicht verschwiegen werden: Eine Zeile #F FF 04 A:\VIEW.TTP@ *.*@ ist zwar moeglich, dann muss sich aber VIEW auch auf der entsprechenden Diskette A: befinden! Ist dies nicht der Fall, erfolgt eine Meldung 'Kann Anwendung nicht finden'. Diese Methode bietet sich daher beson- ders fuer Besitzer einer Festplatte an, da auf dieser VIEW ja immer zur Verfuegung steht. Alternativ kann man natuerlich eine der vielen PD-RAM-Disks im Auto-Ordner halten und mit einem Autocopy-Programm den Editor in die RAM-Disk kopieren. Es sei noch erwaehnt, dass man natuerlich nicht auf einen Editor festgelegt ist als automatisch aufgerufenes Programm. Denkbar waere auch eine eigene Printer-Routine oder aehnliches. Installation auf Festplatte oder RAM-Disk: Das auf der Diskette befindliche File DESKTOPC.INF umbenennen in DESKTOP.INF und zusammen mit VIEW.TTP auf Laufwerk C: kopieren. Nach Booten von C: wird dann automatisch beim Anklicken eines nicht lauffaehigen Files oder eines umbenannten Programmfiles VIEW.TTP gestartet und ermoeglicht das Betrachten dieses Files. Credits: Die Idee zu diesem Programm kam mir durch MORE von Moshe Braner, das aber im Direktmodus weniger Moeglichkeiten bietet. `#T N N*O*m - ЭЭм!"ҍ¼.A// Bg?<JNA m"m -So Q m -SBQ(m)M*mN lHhNX/,?,N "\?<N?<A?<NAXNuNV?<?<NX?<E?<NXHl?< N\HlT?< N\?< ?<?<N\?< ?<?<N\?< ?<?<Nt\?< ?<?<Nb\Hl?< Np\Hl?< Nb\Hl?< NT\Hl$?< NF\HlZ?< N8\Hl?< N*\Hl?< N\Hl?< N\HlL?< N\?< ?<?<N\?< ?<?<N\Hlv?< N\Hl?< N\?< ?<?<N\?< ?<?<N\?< ?<?<Nn\?< ?<?<N\\Hl?< Nj\?<N`TN N^NuNV?<?<NFX?<Y?<N8X?<8?<N*X?< ?<NX?<?<NX?<p?<NXHl&?< N\/.?< N\?<?<NX?<q?<NXN^NuNVHlBHnN2PHlxHnNPHn0,R@?Nz\HnHnNPHlHnNPHn0,R@?NL\HnHnNrPHnNXN^NuNV?BG`| nH?Bg?<N \JfHlNX0<`b?<?<NXJg.?<?<NX @fHlNX0<`"0RG .R0H m|0<`>N^NuNVHl~NFXHlBHnN PHlHnNPHnN>XH/HnN"P @fN ,2. l("/0. l(/NP @f?< Bg?<N\HlNXN^NuNV?<?<NX?<p?<NXA HHn?< N\=@0<nAB ngA T/Hl,N$P?<?<NX?<q?<NXN^NuNVHHl,N0,<`?NT0RG0RF Gl 0loN"LN^NuNVBnHlHlBNFPHlHlBNPHlHlBNPHn/,N2PHnHlBNPHlHlBNPBlN<`?<NjT@.H`|g`|ag`=|`v`|9g`&l0,lo9lN`F`|g`"l llBlN``|g`\0,|ln:?<?<NX?<l?<NX0,|?N\TRlN` HlN$X``|g` lo?<?<NLX?<H?<N>X?<?<N0X?<I?<N"XSl0,?NT?<?<NX?<Y?<N X?<8?<N X?< ?<N XN` HlNtX``|Gg`, lf0,9@` 0<9@NV``|"g`THlN XNj=@ nl Bl`$0.lo 9l`Sn0.9@N`p`|g`BgNtT`T`|0g`?,NVT`6`|g`N``|bg`N``0.gHN^NuNVH ,&@BG`x0 l( BF`RH| fR KH| fR`B`,H| fR KH| fR``RRF FPl mRG G'l mz ,2 l( 0S@9@LN^NuNV ng ?<NT/N X?<?<N X?<f?<N X?<?<N X?<w?<N xXNN/,?<IN b\ ,(/?<IN R\?<?<N DX?<v?<N 6X?<?<N (X?<e?<N XN^NuNV?.NT nn0<`?.?<>N X9@4g0<`0<N^NuNVHl/.N PJ@g`Hl/.N PJ@gNHl/.N PJ@gj `hH|afB0<n?/.N\> @f?./.N\>?<B?NPj `0.n?/.N\>j Gf Bj <`<5G Bj <$%@-J?<B?* NP n!@ n1l L N^NuNV)n6/.NJX/. /.N@PN^NuNV`H0BnBnBB9| nRH|=@ .&@$@BG`TH| g(H| gH| gH| g H| f0.f0.gBnB` `H|"f< nfBn`*0.f 0.f=|0,RlA` `"`H|'f: nfBn`*0.f 0.f=|0,RlA` `'`r0.fj0.fd=|H|f. R @H|>f T-@=|` R-@Bn`0,RlA`  R0RG0nmB .g,A H1| A H1|HlHl/.N .g2A H1| Hl0.gA `A //.N 0,R@H/?<HN\)@><`0A` 2 l RG0lm l 0, lBL N^NuNVH$.". BnJlVnDJlRnDvd`Bbd nmDdD-@-A LN^NuNV/BnJlRnDJ lRnD 0. -@0.n0. nngD -n N^.JNuN^NuNV nl <`?.?./. ?<BN -@ m .`?<?.B?<BN -@?<?.B?<BNj -@ nf .Ю -@ `$ nf .Ю -@ `0.g <`b . oHn . /?.?<@N Bg?./. ?<BN ]|9@4g <` `Bl4 . N^NuNV/.?<IN\N^NuNVBn`60.A0f"0.A00.A0 ` Rn nLmN^NuNVBn`&0.A0nf0.ABPRn nLmN^NuNV?>.=|0A"HPgXHf0(>N^NuNVHl/.N.PJ@f =|`Hl/.NPJ@f =|`Hl /.NPJ@f=|`f0. |g0/.N"XJ@g0<``Bg/.?<NhX0. |?/.?<=NPP=@9@4 @l0<`0. | ??.N~X0.N^Nu)I)J)_NM"l$l/,Nu)I)J)_NA"l$l/,NuNVH0&n$n -KfSg` .L N^NuNVH0&n$n `RRg HHAgHHCL N^NuNV n "n fN^NuNVH0&n$n >.-K0SGJ@gg` .L N^NuNVH0&n$K`Rf L N^NuNV n R @H=@ n g n g n f n R @H=@`0.N^NuNV=| nxg nXf n f0<`f n0m n9n0.|0=@`2 nam0.|a| =@` nAm0.|A| =@0.n o0<``0.N^NuNVBnBHnNX=@ n-f0<=@ nRH=@?.?.N*X=@ @g2 ./0.H/N 6.HЃ-@ nRH=@` g n 0.g .D` .N^NuNV?< /</.N@ HN^NuNV/.?<AN^\9@4g0<``0<N^NuNV0. Sn J@g6 nH| f?< ?<NX nRH??<NX`N^NuNV0. Sn J@g nRH??<NX`N^NuNV0. Sn J@g nRH??<NX`N^NuNVH0&n $KA-H nf?./ N4\=n`H nf?./ N`\=n`* nf?./ Np\=n` -KBn?.NTJ@f ndH| f |o@ H-@/./.?.?<@N 9@4Hg0<`0,4n/./<?.?<@N 9@4 @g0<`hRnR -@`R``` 6.ƼЃ$@ H-@/./.?.?<@ND =@9@4Hg0<`Bl40.L N^NuNVBn-n nl2<=A0.=@ n B0.H H@H|0R n 0.H =@ @n0.gR n -`& nP n  nR n S  . nN^NuNVBn-n l 2<=A ./0H/N -@ n B ./ < /NtX H|0R n  ./ < /NN X-@ n0.gR n -`& nP n  nR n S  . nN^NuCEnde des Files !CAnfang des Files !CSuchbegriff nicht gefunden !CFehler beim drucken ! Drucker testen !CDruckvorgang abgebrochen...C~ESCape bricht Druckvorgang ab...CJUngenuegender Speicherplatz fuer diese Anwendung !C:File zu lang !C"2"2 2"2"2"22"2"2"22"2x9|)|6Nu********************************* V I E W v1.1 ********************************* (c) 1987 R. Fuchs SPACE - Advances One Page BACKSPACE - Back One Page RETURN - Advances One Line At A Time S - Search For And Display A Particular Page ESC or UNDO - Both Exit From Program HELP - Displays This Page English Translation by Floppyshop ST ******************************************************************************** Line of Drucken abgeschlossenSearch for: []: File: has BytesSprung zu welcher Zeile ? CON:AUX:PRN:rawCON:AUX:PRT:  VIEW.TTP -------------------- VIEW IS AN ASCII FILE DISPLAY PROGRAM WHICH IS CONVENIENT FOR READING LONG DOCUMENTATION FILES ETC.. CONTROL KEYS: ------------- SPACE BAR - ADVANCES ONE PAGE. BACKSPACE - BACK ONE PAGE. RETURN - ADVANCE ONE LINE AT A TIME. S - SEARCH FOR AND DISPLAY A PARTICULAR PAGE. ESC } } - BOTH EXIT FROM PROGRAM. UNDO } HELP - DISPLAYS CONTROL KEY SUMMARY. --------------------------------------------------------------------------- `,.|'NXBgNANV/ By5 y 5l095Ry5H @p0`p33I6/<>\/<6/<N 3>vJp?NNTO3IBy5095yJl.095H&@Dp??95p?NN\O6Ry5`&_N^NuNV?93?9= ?9=?9=BgN 36?93?9= ?9=?9=?96Nؐ /<6/<>/<?f/<?Xp??96N>N^NuNVN/<3/<= /<>2/<EN 3I09I3C3H/< x?9-Np\O3./<I/<L&/<L/<L(p?BgN>/< N׮XOJ@f/< p?N\O/<CBgBgNzPOJ@f/< p?N\ON/<Cp?BgNzPO/<3/<= /<=/<=/9CN@NrR/<pH?NA\O#L 9L#?\#<~#I.#4/<pH?NA\O#K 9K@#K#KIp?NNTO#=p3Ep3:BN0NN^NuNV/<Cp?BgNzPO yC h 6, yC hp1@/<Cp?BgNzPO yC hT C yC hTp1@ yC hl Cj yC hlp1@ yC h D8 yC hp1@ yC h E yC hp1@ yC h E yC hp1@ yC h Fj yC hp1@ yC h F yC hp1@ yC h G yC hp1@ yC h H yC hp1@ yC h, =( yC h,p1@/<Cp?BgNzPO yC h4 6 yC h4p1@ yC h 5 yC hp1@ yC h 7 yC hp1@/<Cp?BgNzPO yC h$ 4 yC h$p$1@ yC h< 5X yC hBgBg/<5BgBgBgBgBgBgBgBgBgBgp?p?p?p?N><30090@g095 @(f096y.fxNNN?96NTO?96N"TO?96NTO`8N^NuNV/<L*p?NA\O/<Cp?BgNzPO/9CN-&XO/<Dp?NN\O#CIDNy6ByKL yKLgBg/9CN\O@3<|09<|U@ @bH0@ PN`p?Bg?9G?9KJ?9K?9KRBgp?/9CN֔p?NATOJf/< p?N\O35`bN-NW/<Cp?BgNzPO/9CN-&XO`0p?Bg?9G?9KJ?9K?9KRBgp?/9CN֔N-N`p?Bg?9G?9KJ?9K?9KRBgp?/9CN֔N-NcX`Vp?Bg?9G?9KJ?9K?9KRBgp?/9CN֔N-N@`p?Bg?9G?9KJ?9K?9KRBgp?/9CN֔Nu`(p?Bg?9G?9KJ?9K?9KRBgp?/9CN֔N-N6:`p?Bg?9G?9KJ?9K?9KRBgp?/9CN֔N-N.>`Lp?Bg?9G?9KJ?9K?9KRBgp ?/9CN֔N-N `p?Bg?9G?9KJ?9K?9KRBgp?/9CN֔#CIDNy6`p?Bg?9G?9KJ?9K?9KRBgp ?/9CN֔#CIDNy"`p?Bg?9G?9KJ?9K?9KRBgp?/9CN֔/<>\p??96NJPO/<`p?Bg?9G?9KJ?9K?9KRBgp?/9CN֔N-p3KL`0Bp?NA\ON^NuNV/<IDp?BgNzPO/9IDN-&XOBnJnf@BnByInBg/9IDN\O@3<|09<|Y@ @bH0@V PN`Np?p?p?N?b\Op=@`Np?p?p`Np?p?p`Np?p?p`N~p?p ?p `Np?p ?p `Ntp?p?p`NNp?p?p`nNp?p?p`ZNp?p?p`Fp=@p?p?p?N?b\OJngN B`N-N^NuNVp=@B9609In |2<`XHXW PN`/< ./<6NܴPOBn`/< 1/<6Nܴ`/< G`/< _`/< r`/< `/< `/< `/< `/< `/< `/< `/< `/<6/9LDNPO/< `/<6/9ANPO/< "/<6N܆POJng/<NTXO?9G?9KJ?9K?9KRBgp?/9IDN=@N^NuNVJ95g/<5p9?NA\O=@gp3InN^NuNVJ95g/<5p:?NA\O=@gp3InN^NuNV95H?NTO595H @Am95H @On95H@@`p?NATO=@?./<'p6?NAPO/<'/<'/9(NPO/NPO#Ap33InN^NuNVJ95g/<5pA?NA\O=@gp3InN^NuNVJ95gJ97gp?/<5p=?NAPO=@ noBg/<7p?NAXO?.p>?NAXO`?.p>?NAXOp`p3InN^NuNVJ95gJ97gp?/<5p=?NAPO=@ nop?/<7p=?NAPO=@ noh/9L/<#(?.p??NA -@/9L/.?.p@?NA #(g?.p>?NAXO?.p>?NAXO/<5N~XO`?.p>?NAXOp`p3InN^NuNVJ95g.J97g&/<7/<5BgpV?NA =@gp 3InN^NuNVJ95g,/<5NXOJ@fNH#Ap2`p 3InN^NuNVJ95gp?/<5p=?NAPO=@ no-yL/9L/<#(?.p??NA -@B .l@0936N^NuNV/.NZXO=@p7=@?./.pN?NAPO=@JnfLB@9L?@g*pd//<B2N`PO/< ENTXO/<LH`pd//<B2N`PO/< YNTXO/<LH/<B2NܴPOp?/<B2N\O/<B2NTXOpd//<B2N`PO/<B2/9LDNPOp ?/<B2N\O/<B2NTXO/< \NTXOB@9L?@g/< i`@B@9L?@g/< r`*B@9L?@g/< {`B@9L?@ g/< NTXOpO?NATO`N^NuNV?96N٠TOp?/9I/9Ip?NN ?96N*By>Dp3HB9>4B9>p:` ?<BgNLXOp//9I/9Ip?NNByK/9L/9LN2POp//9=/9=p?NN?<BgNLXOp?p&?p&?N?b\OBy6`p?p?p?N?b\Op?p?p?N?b\OBy>*p3>DByHB9>4p>B9:`Dp?p?p?N?b\Op?p?p?N?b\Op3>*By>DByHp>4B9>`p?p?p?N?b\Op34ByLVpF\B9A`p?p?p?N?b\OBy4p3LVB9F\pA`p?p?p?N?b\Op3ABy?pLB9K`\p?p?p?N?b\OByAp3?B9LpK`(p?p"?p"?N?b\ON-NR/<IDp?BgNzPO/9IDN-&XO`p?p ?p ?N?b\ON-NJ`p?p?p?p??9=?9Kp?NNp?Bg?9G?9KJ?9K?9KRBgp'?/9IDN֔p?Bg?9G?9KJ?9K?9KRBgp$?/9IDN֔N-p3A` 3AK09KR@3?d3KH=`b3KA09KR@3?d#KN^NuNV3KH=3=&:J/<IDp ?BgNzPO/9IDN-&XON#zBn ngBg/9IDN\O@3<|09<|Y@ @bH0@ PN`09=@3=`09=@`09=@`09=@`09:J@3:J`v09:J@`09:J@@`09:J@``09:J@@@`09:J@@ `09:J@`09:J@`09:J@@`09:J@@`v09:J@`hp=@p?p?p?N?b\Op?p?p?p??9=?9Kp?NN09:J@?N\TO`3KH=3=&:Jp=@p?p?p?N?b\O`\N-3=KH3:J=&N^NuNV/<IDp?BgNzPO/9IDN-&XOBn ngBBg/9IDN\O@3<|09<| @ fp?p ?p ?N?b\Op=@`N-N^NuNVJy>*gDg23?/<??96N\ON^NuNVN^NuNVN^NuNVp?Bg?9G?9KJ?9K?9KRBgp?/9IDN֔p?Bg?9G?9KJ?9K?9KRBgp?/9IDN֔p?Bg?9G?9KJ?9K?9KRBgp?/9IDN֔p?Bg?9G?9KJ?9K?9KRBgp?/9IDN֔p?Bg?9G?9KJ?9K?9KRBgp ?/9IDN֔p?Bg?9G?9KJ?9K?9KRBgp ?/9IDN֔N^NuNVN1Jy6f&p?p??9G?9KJ?9K?9KRBgp`. y6f6p?p??9G?9KJ?9K?9KRBgp?/9IDN֔Jy?f&p?p??9G?9KJ?9K?9KRBgp`. y?f6p?p??9G?9KJ?9K?9KRBgp?/9IDN֔Jy3f&p?p??9G?9KJ?9K?9KRBgp `. y3f6p?p??9G?9KJ?9K?9KRBgp ?/9IDN֔N^NuNVp?Bg?96?9>?9?f?9?XBgp?/9IDN֔p?Bg?96?9>?9?f?9?XBgp?/9IDN֔p?Bg?96?9>?9?f?9?XBgp ?/9IDN֔p?Bg?96?9>?9?f?9?XBgp ?/9IDN֔p?Bg?96?9>?9?f?9?XBgp ?/9IDN֔p?Bg?96?9>?9?f?9?XBgp ?/9IDN֔p?Bg?96?9>?9?f?9?XBgp ?/9IDN֔p?Bg?96?9>?9?f?9?XBgp?/9IDN֔p?Bg?96?9>?9?f?9?XBgp?/9IDN֔N^NuNV/<IDp?BgNzPO/9IDN-&XON7\By:@ y:@gBg/9IDN\O@3<|09<|[@ @bH0@> PN`p3=N?B`p`p `p`p`p`p`p`p`p`p23>@`p-`p(`p#`p `p`p`p `p`p`p?Bg?9G?9KJ?9K?9KRBgp?/9IDN֔N-p3:@`N^NuNVN;f y=f(p?p??9G?9KJ?9K?9KRBgp` y=f(p?p??9G?9KJ?9K?9KRBgp` y =f(p?p??9G?9KJ?9K?9KRBgp`X y =f(p?p??9G?9KJ?9K?9KRBgp`& y=f(p?p??9G?9KJ?9K?9KRBgp` y=f(p?p??9G?9KJ?9K?9KRBgp` y=f(p?p??9G?9KJ?9K?9KRBgp` y=f&p?p??9G?9KJ?9K?9KRBgp`^ y=f&p?p??9G?9KJ?9K?9KRBgp`. y=f6p?p??9G?9KJ?9K?9KRBgp?/9IDN֔ y2>@f(p?p??9G?9KJ?9K?9KRBgp` y->@f(p?p??9G?9KJ?9K?9KRBgp` y(>@f(p?p??9G?9KJ?9K?9KRBgp`X y#>@f(p?p??9G?9KJ?9K?9KRBgp`& y >@f(p?p??9G?9KJ?9K?9KRBgp ` y>@f(p?p??9G?9KJ?9K?9KRBgp ` y>@f(p?p??9G?9KJ?9K?9KRBgp ` y >@f&p?p??9G?9KJ?9K?9KRBgp `^ y>@f&p?p??9G?9KJ?9K?9KRBgp `. y>@f6p?p??9G?9KJ?9K?9KRBgp?/9IDN֔N^NuNV y=g&p?Bg?9G?9KJ?9K?9KRBgp` y=g&p?Bg?9G?9KJ?9K?9KRBgp`z y =g&p?Bg?9G?9KJ?9K?9KRBgp`J y =g&p?Bg?9G?9KJ?9K?9KRBgp` y=g&p?Bg?9G?9KJ?9K?9KRBgp` y=g&p?Bg?9G?9KJ?9K?9KRBgp` y=g&p?Bg?9G?9KJ?9K?9KRBgp` y=g$p?Bg?9G?9KJ?9K?9KRBgp`Z y=g$p?Bg?9G?9KJ?9K?9KRBgp`, y=g4p?Bg?9G?9KJ?9K?9KRBgp?/9IDN֔ y2>@g&p?Bg?9G?9KJ?9K?9KRBgp` y->@g&p?Bg?9G?9KJ?9K?9KRBgp`z y(>@g&p?Bg?9G?9KJ?9K?9KRBgp`J y#>@g&p?Bg?9G?9KJ?9K?9KRBgp` y>@g&p?Bg?9G?9KJ?9K?9KRBgp ` y>@g&p?Bg?9G?9KJ?9K?9KRBgp ` y>@g&p?Bg?9G?9KJ?9K?9KRBgp ` y>@g$p?Bg?9G?9KJ?9K?9KRBgp `Z y >@g$p?Bg?9G?9KJ?9K?9KRBgp `, y>@g4p?Bg?9G?9KJ?9K?9KRBgp?/9IDN֔N^NuNV?9>@?9=p#?NN\O=@N^NuNVJn fN4^p?p??96?9>?9?f?9?XBg?./9IDN֔ n g n f4p?Bg?96?9>?9?f?9?XBg?. /9IDN֔N^NuNVp?p?NAXOpR?p?NAXO?.p?NAXON^NuNV/<IDp?BgNzPO/9IDN-&XOByKZ yKZgNBg/9IDN\O@3<|09<|@ @bH0@ PN`?9INF~TONRp?Bg?9G?9KJ?9K?9KRBgp?/9IDN֔`pNLp?Bg?9G?9KJ?9K?9KRBgp`NAp?Bg?9G?9KJ?9K?9KRBgp`NBXp?Bg?9G?9KJ?9K?9KRBgp`lp?Bg?9G?9KJ?9K?9KRBgp?/9IDN֔N-p3KZ`N^NuNVBn n#l0n4B0n5XB0n5B0n5B0n6B0n6B0n7DB0n:B0n?NAXOByININ^NuNVBnJ9=g0n=Jg$ nl0n=2n=Rn` ndl0n=BRn`Bg/<=p?NAXON^NuNVBnJ9=g0n=Jg$ nl0n=2n=Rn` ndl0n=BRn`p?/<=p=?NAPO=@ no:/9L/<h?.p??NA ?.p>?NAXOByI?9INHTON^NuNVBnJ9=g0n=Jg$ nl0n=2n=Rn` ndl0n=BRn`Bg/<=p?NAXON^NuNV/<IDBgBgNzPON|N{/< VpP?/9IDN~x /< ZpX?/9IDN~x /9IDN-&XONbBy?Z y?Zg `Bg/9IDN\O@3<|09<|Y@ @bbH0@ PN`p?p?p?N?b\Op?p?NAXOp(?p?NAXO`p?p?p?N?b\Op?p?NAXOpP`p?p?p?N?b\Op?p?NAXOpM`p?p?p`p?p?p?N?b\Op?p?NAXOp`|p?p?p?N?b\Op`bp?p&?p%?N?b\Op?p?NAXOpp?p?NAXOp`0p?p%?p&?N?b\Op?p?NAXOpp?p?NAXOBg`p?p ?p?N?b\Op?p?NAXOp4`p?p?p ?N?b\Op?p?NAXOp5`p?p8?p7?N?b\Op?p?NAXOp-`Np?p7?p8?N?b\Op?p?NAXOp-`Zp?p,?p+?N?b\Op?p?NAXOpS`p?p+?p,?N?b\Op?p?NAXOpT`p?p2?p1?N?b\Op?p?NAXOpS`p?p1?p2`p?p]?p\?N?b\Op?p?NAXOpN?p?NAXOp`p?p\?p]?N?b\Op?p?NAXOpO`p?pK?pJ?N?b\Op?p?NAXOpl`^p?pJ?pK?N?b\Op?p?NAXOpl?p?NAXOp `8p?pU?pV?N?b\Op?p?NAXOpQ`4p?pV?pU?N?b\Op?p?NAXOpQ?p?NAXOpF`p?pf?pe?N?b\Op?p?NAXOp2`p?pe?pf?N?b\Op?p?NAXOp1`p?p_?p`?N?b\Op?p?NAXOpC?p?NAXOBgp?NAXOp ?p?NAXOpB3D6?9D6NTO09>Z V09= W?96?9>?9?f?9?XBgpP?/9IDN37@`p?p`?p_?N?b\Op?p?NAXOpC?p?NAXOBgp?NAXOp ?p?NAXOpG`Vp?pB?pB?N?b\Op `p?pA?pA?N?b\O`6p?pY?pY?N?b\Op?p?NAXOp<`Lp?p>?p=?N?b\Op?p?NAXOps`p?p=?p>?N?b\Op?p?NAXOps`p?pZ?pZ?N?b\Op?p?NAXOpj?p?NAXOp$`p?pc?pc?N?b\O/<>\p??96NJPO/< hp?N\O35` p?pD?pD?N?b\O/<>\p??96NJPO/< `p?pE?pE?N?b\O/<>\p??96NJPO/< `p?pF?pF?N?b\O/<>\p??96NJPO/< (`Np?pG?pG?N?b\O/<>\p??96NJPO/< ``p?pH?pH?N?b\O/<>\p??96NJPO/< `Bgp?p?N?b\O/<>\p??96NJPOBgN?TO`Bgp?p?N?b\O/<>\p??96NJPOp?`Bgp ?p ?N?b\O/<>\p??96NJPOp`Bgp ?p ?N?b\O/<>\p??96NJPOp`Bgp ?p ?N?b\O/<>\p??96NJPOp`rBgp ?p ?N?b\O/<>\p??96NJPOp`BBgp ?p ?N?b\O/<>\p??96NJPOp`Bgp?p?N?b\O/<>\p??96NJPOp`Bgp?p?N?b\O/<>\p??96NJPOp`p?p?p?N?b\OBgp?Nq`p?p?p?N?b\Op?`p?p(?p"?N?b\OBgp`p?p"?p(?N?b\Op?`p?p.?p4?N?b\OBgp `p?p4?p.?N?b\Op?`p?p@?p:?N?b\Op?p`VBgp:?p@?N?b\OBg`p?pR?pR?N?b\OBgN`p?pN?pN?N?b\Op?`p?pO?pO?N?b\Op?N~`Jp?pS?pS?N?b\OBg`p?p??96?9>?9?f?9?XBgp?/9IDN֔p?Bg?9G?9KJ?9K?9KRBgp?/9IDN֔N-p3?Z`N^NuNV09Z V09= Wp?NATOJg?9D6N TO?9INTO09>Z Z09= [p?NATOJg?9IN"TO3D=3D>@09D3=&3:J3D*3D>D3DH3D43DA3E63E7B3EJ3EF3EHp?p?p?p??9=?9Kp?NN/<Dp?NN\ON?B?9?NAXO09:J@?N\TON^NuNVp?NATO3KNByJJJy6g09JJ@3JJJy7Bg09JJ@3JJJyJg09JJ@3JJJyFg09JJ@3JJJyHg09JJ@3JJ/<6,/<2NܴPO/< ^/<2N܆POp,?NATO3Dp*?NATO3D3D6D3IDp?p!?NNXO3@D3=&D3*D3>DD3HD34D3AD36E37BE3JE3FE3HEBg/<2p?NAXON^NuNVNyNz?9?f?9?XBgp ?/9CN37@?96?9>?9?f?9?XBgp ?/9CN37@N^NuNV90H@03>Z90H@03=09>Z y=@3B90H@03>Z90H@03=09>Z y=@?37nN{N^NuNV9GH@03>Z9GH@03=09>Z y=@3G9GH@03>Z9GH@03=09>Z y=@349GH@03>Z9GH@03=09>Z y=@3IN{N^NuNV?9I?94?9GN\O3>009>0yAgLByI:By.H09.HyI@P3.H09.HHyGHy43.H?9.Hp+?NAXON^NuNVBg?97n?9BN\O3Ff09FfyIBgBBy.JBy=09=yB3=09=Hy7nH3=?9=p-?NAXON^NuNVp*?NATO3I:3.H09.H@@3I3G3I:.H09.H@3<343I:.H09.H@@@@P3K3I/<Gp ?/9CN}> ?9I?94?9GN\O3AN^NuNVp,?NATO3.J3=09=@@@3H3B3.J=09=@@?3=37n/<0p ?/9CN} Bg?97n?9BN\O3IBN^NuNV?9GNTO09>Z n@09= n@?94NTO09>Z n09= n@?9INTO09>Z n@09= n@0.  @ h 0.  @ h p1@N^NuNV?9BNTO09>Z n09= n@?97nNTO09>Z n@09= n@0.  @ h 0.  @ h p1@N^NuNV0.  @ h 0.  @ h p1@N^NuNVJnfN~` nfN`=@?.N"TON^NuNVN=@ no`0.S@=@?.NTO09>Z Z09= [?96?9>?9?f?9?XBgpX?/9IDN=@0.N^NuNVN=@ nPl`0.R@=@?.NTO09>Z Z09= [?96?9>?9?f?9?XBgpX?/9IDN=@0.N^NuNV9 ZH@03>Z9 [H@03=09>Z y==@0.N^NuNVpPH=@p?Bgp?NM\OpD?Bgp?NM\OBn0.nl"0.R@=@?.Bgp?NM\ORn`BgBgp?NM\O3IN^NuNVJnfN` nfNH=@?.N TON^NuNVN=@ no`0.S@=@?.NTO09>Z V09= W?96?9>?9?f?9?XBgpP?/9IDN=@0.N^NuNVN=@ ncl`0.R@=@?.NTO09>Z V09= W?96?9>?9?f?9?XBgpP?/9IDN=@0.N^NuNV9 VH@03>Z9 WH@03=09>Z y==@0.N^NuNVp?p?NAXOpC?p?NAXO?.p?NAXO3D6N^NuNV 9?\6-@ .N^NuNVN>-@-y5By6/<xNTXOJyJg/<T`/<\NTXO/<NTXOJyFg/<T`/<\NTXO/<NTXOJyHg/<T`/<\NTXO/<fNTXOJy7Bg/<T`/<\NTXO/<NTXOJy6g/<0`/</<`6/<`./<`&/<`/<`/<`/< `/<(NTXO/<NTXOpd//<B2NPO/<B2/.NPO/<B2NTXO/<NTXO/<NTXOpd//<B2NPO/<B2/.NPO/<B2NTXO/<NTXOp36N^NuNV/<NTXOp36N^NuNV/<NTXOBy6N^NuNV#6?\#65BJFN^NuNVp37BN^NuNVBy7BN^NuNVp?p?p?p?p??.p?NNN^NuNV=y6By6?9 NTOpO//<4NPO/< NTXOp?/<4p2?BgNb J94g/<"`(/<&/<4NܴPO/<4NTXO/<*NTXO/<4NXO36/<.NTXO?9 NTON^NuNV?9 NTO/<1NTXO/<CNTXO/<4NTXO/<CjNTXO/<7NTXO/<D8NTXO/<:NTXO/<ENTXO/<=NTXO/<ENTXO/<@NTXO/<FjNTXO/<CNTXO/<FNTXO/<FNTXO/<GNTXO/<INTXO/<HNTXO/<LNTXO/<=(NTXO/<ONTXO?9 NTON^NuNVBy6pO//<4NPO/<NXONxp?/<4p2?BgNb N^NuNV/<4NBXO=@ yKf p=@fB@`Bg/<4p?NAXON^NuNV/96/.?9=p@?NA N^NuNV/96/95?9=p??NA -@ .#?#I> 96Ю#?\N N^NuNVNnNt=@mNBN `/<NTXON^NuNVNnN=@fN>-@/.N XON `/<NTXON^NuNVBnBn-yKJnf-yK/9K/<?9=p??NA -@ gp=@JoJnf nRPS.H?NTO.H?NTON6=@ nafp=@`p?NTO/<NTXO?9=p>?NAXON^NuNVBn-y6 n?\dN ngF nRP.H?NTO.H?NTON6=@ nafp=@`p?NTO/<NTXON^NuNVJyFgByF`p3FN^NuNVJyJgByJ`p3JN^NuNVJyHgByH`p3HN^NuNVBnBnJnfhN6=@ nafp=@`.BnN:=@Jnm ng=n?.N?NAXO/<NTXOpN^NuNV?9 NTON ?9 NTON^NuNV?9 NTON?9 NTON^NuNV?9 NTONN?9 NTON^NuNV?9 NTON?9 NTON^NuNVNnNt=@l/<NTXO` p?NTO/<NTXON^NuNVNnNt=@l/<NTXO`N /<NTXON^NuNVNnN=@l/<NTXO` p?NTO/<NTXON^NuNVNnN=@g/<NTXO`NV/<NTXON^NuNVN/<NTXON^NuNVN/<NTXON^NuNVH029Jby60<@A:|yI8l.*yI(yI09JbHH~El *XXRG`RF`L0N^NuNVH029Jby60<@A:|yI8l.*yI(yI09JbHH~El *XXRG`RF`L0N^NuNVH029Jby60<@A:|yI8l,*yI(yI09JbH~El *XXRG`RF`L0N^NuNV0. @b&H0@v PN`NF`N`NN^NuNVJy6g> n f6?9 NTONÚ?9(NXTONÄ?9 N` ?.Ng<?g<@g <Ag2<BgR<Cgr<Dg` 95f N`36HyCNF` 95f Nb`|36HyCjNF`d 95f N`N36HyD8NF`6 95f N` 36HyENF` 95f NT`36HyENF` 95f N$`36HyFjNF` 95f`36HyFNF` 95f`t36HyGNF`\ 95f`L36HyHNF`4 95f`$36Hy=(NF` 93` X36 <HyNTXNu0/<Ag<Bg<Cg<Dg <Eg <Jg"<Fg<Gg<Hg<Ig<Kg<Lg\<Mg^<Og`<Pg:<Qg(<Rg<Sg<Tg`N`Nj`N`N `N`N`N`N `N`N`N`|N`rN`hN`^N`TN*`JNN`@N`6HHy4NqX#JF#5L`HyNTX`NxNu0/< g`<gr|0| n|mB3?d<`&<߰<Am&<Gn<73?d<?N*T`HyNTXNf0<NuNf0<NuNŜJg3KP35~H@<af0<Nu<bg^/NjXJgH@ y7BgJ y?\"yIjg#?\`,HyNTXHyrNTX37B095~?NT yHg095~?NT yJg095~< f?< NT`N:Jk|35~3KP?NT yFg"09KP< f?< NT09KP y7BgN y?\"yIjg#?\`0HyNTXHyrNTX37B`N0<NuH?<?<NMXJj?<?<NMX`pLNuHN:jLNuHN|f2<`QN|fLNu0/H?N y6g`N:J@k2<37l`0<37l2<LNuH?NŜg37l2<`> y6g`NJ@k2<37l`0<37l2<LNuH?<NTjLNu2/HSA4<'aQQLNu2/HSA4< 16a'faVj 4QQ3LNxNf09Nu2/HSA4<'aZjQLNuH36HybNXHyfNFX09GgHyINFX`HyJNFXHyfNFX3=3633HyNXHyNX0. <.z0H@:x Dl0@g0H@`0H:RD`0@:L N^NuNVH *n>. <.80H@8z El0@g0H@`0H8RE`:L N^NuNVH0*n(n ..BT|zl4B@H@<x l0@g 0H @`0H<R`R`8L0N^NuNVH0*n(n ..BT|zl4B@H@<x l0@g 0H @!`0H<R`R`8L0N^NuNV/~ Gl,?.?/<,NPO0H @(0,RG`.N^NuNV/~ Gl,?.?/<, NPO0H @*0, RG`.N^NuNV/>.0H@B@H@ @(0.N^NuNV/>.0H@B@H@ @*0.N^NuNV?. n NTON^NuNV/<T?<!N\O/<?<N\ON^NuNVBp ?NA\O-@0. yb/.p ?NA\ON^NuNVHp,?NATO<N> @fV y6fL yKfB/<LNXOJy7jg09IF:JElz?NXTOBg/<K^Nv\O` N2>0LN^NuNVHp,?NATO<N> @fV y6fL yKfB/<lNXOJy7jg09IF:JElz?NXTOBg/<K^Nv\O` N>0LN^NuNVH yKfp,?NATO>yIo y7jf|/<NXO/<NXO/<NXO/<BNXO/<N~XO/<BN~XOJy7jg BgNXTONBg/<K^Nv\Op]?NTO`N:: Efn yKfd/<NXO/<N~XO/<NXOJy7jg09IG<JFl|?NXTONBg/<K^Nv\O`0LN^NuNVp=@Bn-|u0-|'p//<>FNPOJngSfp`Jng SfBnN:@ @o-|' . m2 .zn* nl"0n>FRn0.0@>FB` . fJnoBn`vBnB9>F`hpN^NuNVNJ@g /</<>FNܜPO=@f 09= `/</<>FNܜPO=@f 09=`/</<>FNܜPO=@g/</<>FNܜPO=@g/</<>FNܜPO=@f09=`l/< /<>FNNPO=@ @n^/< /<>FNNPO=@ @nb/</<>FNNPO=@ @nNJ@fpN^NuNVJyGg*N3, /<>F?9, /<N^ `^Jy,fp3, y,g4 y,f 3=, `( y,f 3=, `p3,3= , Ry,09, N^NuNVNBg/<K^Nv\ON^NuNVB/<NTXOND/.NTXONZ/.N~XON^NuNV/<NZ n09= n@?94NTO09>Z n@09= n@?9INTO09>Z n@09= n@N^NuNV?9BNTO09>Z n09= n@?97nNTO09>Z n@09= n@N^NuNV nH@03>Z n(H@03=09>Z y=@3B n(H@03>Z n(H@03=09>Z y=@?37nN(N^NuNV nH@03>Z n(H@03=09>Z y=@3G n(H@03>Z n(H@03=09>Z y=@34 n(H@03>Z n(H@03=09>Z y=@3INN^NuNV?9I?94?9GN\O3>009>0yAg>ByI:By.H09.HyI@P3.H09.HHyGHy43.HN^NuNVBg?97n?9BN\O3Ff09FfyIBg4By.JBy=09=yB3=09=Hy7nH3=N^NuNVJno"0.H =@2. 0.A=@`BnBn0.@03>Z0.@03=N^NuNV0. n n=@0.N^NuNVp,p ,p, B9,!Jno/<,NXOSn`N^NuNV//<NXON>m.N^NuNVH >.<. *n :.BnBnBBgN@TO-@-AJEf Gg Gg Gg Gf| Gg GfN MJgv MP .0m .9n.HH0p //.NPOЃ-@Rn` MJg( M .fp=@Rn` MJgRn`N@ .g .fzJnot MBSn MP MB/<NXO Gg Gf$ op //.NPO-@`B Gg Gf ..fBn . mB .~n80.Fl MRn MBJGf.H?NTO Gf p*?NTO Gg Gfh .0mH .9n@ Gfp*`.H?NTO.HH0p //.NPOЃ-@`/<NXOJnoSn Gg Gfp .0m .9o ..f0Jnf* Gfp*`.H?NTO ..f0p=@`(/<NXOJnoSn`/<NXO . g . f Gg Gf .`B Gg Gf6/ NXO/ NXO?N@TO-@-A/./.NhPOL N^NuNVBnBnBn0nJg80n .g* nPl"Jnf0n 1mp=@`Rn`0nJg$ nPl0n2nRnRn`0nBN^NuNVp?NTON^NuNVp?NTON^NuNVp?NTON^NuNVp?NTON^NuNVp?NTON^NuNVp?NTON^NuNVpC?NTON^NuNV=y6By6/<&NTXO?.p?NXO/<0NTXO?. p?NXO/<UNTXO36N^NuNV=y6By6/<>NTXO y?NAXO/<` y,.flJyHgbBy29I6H 9,0o29I6H 9,0#,0Ry,>`09,>H#,0J,0gF y ,4l:pa?N TO3,< @f 09,4R@??9,(NXOBgNTOp?NTO?9,(NTO09,(D@S@?NTOBy,"By,6#,*,$09I6Hй,*,$ob n,$H?NTO n,$H09,6A@3,6?<! n,$H?/<,"NRPOR,$`Jy?NAXOJy,:fJy,Dg2 yC,.g y,.flByJy>*gF y,.g4 yC,.f.p3DgpC?NTOp3<`p?NTOBy< y ,PljJy,bg`By,RBy,H y,Hg2 y,Hg( y,HgJy,bg?9?NAXOp3,R`p?NTOBy,``4p3,Rp`"p3,Rp`p3,Rp` p3,Rp3,`Jy,RgRy,PRy,T?9?NAXOJy,Rf(Jy,bg/<0NXOp`/<.p3HJyAgp 3.Fp 3?NAXO/<XNXONÄJyKg0.N^NuNVH8*n(n -M~ Gl6| F(l .P&@ nT88RF` .P-@RG`L8N^Nu o /SBQNu o /SBXQNu o /SBQNuH?< NAJj?<NAH@#|@`BLNuH?< NAJj?<NA#|@`BLNuH?< NATJj ?<NAT`p#|LNu2/H3ƀ?< NATJj?<NATH@29ƀgB`p#|LNu2/H3ƀ?< NATJj?<NATH@29ƀgp`B#|LNu 9|H@@Nu 9|H@@NuH?<NATLNu /#$ /# 0/ 3(H 9 @ 9$`YaYJFjJg |0Nurtvxz|Jf0`2nJy(g-DЀQaaaaaLNu0/??<NANu0/H??<NAXLNu /H @BAg ?N.*n <.JFg Gam GznG zJgJEf HGfz`JEf~0L N^NuNVH0*n(n >.<.:.xN66g Cgn CgFGlBNN6?/ ?NɜPO6JCgH0RD0@0DBJEgp*?N*TO`&?` CfJDgSD00@B/<NXO Cf|0L0N^NuNVH *n~JUg0 ]@0>`0L N^NuNVH *n~JUg"6C0p //NPO/0Hї .` L N^NuNV/ *nJgH?NTOR`*_N^NuNVH0*n(n Jg>HHAf.~0GH0GHAf 0GJgRG`0GJfp`R`pL0N^NuNVH *n~ 0m 9nH0 A@0>R`Jf0`B@L N^NuNVp?/. 0.H/NƂ N^NuNVp?/. /.NƂ N^NuNVH0*n(n >.<.:.x DPl0D,f0DBRD`x0DJg DPl0D2DRD`xv0CJg CPlRC`JEg,0C>JGl~0DJgLClH0G,f2DRGRD`0DJg DPl0D,f2DRD`Gl0D,fRD`>0G,fB/<,f/ NܴPOL0N^NuNVH ..*n <.:.x DPl0D,0DBRD`/ /NPOxv0CJg CPlRC`Jng,0C<JFl|0DJgLClH0F,2DRFRD`0DJg DPl0D,2DRD`Fl0D,RD`<0F,B/<,/ NܴPOL N^NuNVH *n ~ GPl0G-0.0GBRG`|~ Glb .B@H@@ .-@B@H0RF0@B@2@B@@0RF0@B@2@RG`|0FJg0F 0f FlRF`Jng>rF0.A=@JnlBn0FJgv Flp0n-2FRnRF`~rF0.A=@JnlBn0FJg Fl0G-2FRGRF`޾nl0G-0.RG`=G0n-B/<-/ NܴPOL N^NuNVH0*n(n ~0GJg2<z0FH0EHAf0R@0@Jf0` RERF`RG`pL0N^NuNVH0*n(n x~0GJg2<z0FH0EHAf0R@0@Jf8`RERF`RG`0L0N^NuNVH *n>. |0FJgRF`Gl 0Fp RF`0FBL N^NuNVH *n>. <.z0EJgRE`Gl 0ERE`0EBL N^NuNVH>. zx<<' FeN0@0@ .0f FgJEgz.H?NTORDp0H@>p0 <`6ndp ?NTORC`0LN^NuNVH>. zx<<' FeN0@0@ .0f FgJEgz.H?NTORDp0H@>p0 <`6ndp ?NTORC`0LN^NuNV?.N٠TOp?/. /. p?NN ?.N.<. 0H@ 0H@ /<NXOLN^NuNVH *n|p //<-VNPOp?/<-Vp?BgNb 9-VH?NTO-V~9-VH @?g*0GJg,0GH9-VHAf 9-VHRG`9-VHHL N^NuNVH>.NfNx|N8m?NTO8 DYf|z` DNf|z` D f|:|fJEg/<`/<NXO0LN^NuNV3-x0.@ H -@p=@ nl$ nRH2.H A-x0Rn`/9-NXO09-N^NuNV#-x-`#--d#--h#--l#--p#--t#-`-p ?NTTO3--pN^NuNVp?NTTOpN^NuNV3-3 -3 -3-3-3-3-3-3-3-3-3-3 -3"-#$-3(-3*-p?NTTO n,0- n00- n40- n80- n<0- n@0-09-N^NuNV3-# -p4?NTTON^NuNV#-p6?NTTO n 0- n0- n0- n0-09-N^NuNV3-3 -3 -3-3-3-3-3-3-p3?NTTON^NuNV#-3 -p2?NTTON^NuNVpM?NTTO n0- n 0- n0- n0-09-N^NuNV3-# -pN?NTTON^NuNV3-# -p#?NTTON^NuNV#-3 -3-3-3-3-3-3-3-p/?NTTON^NuNV#-3 -3-3-3-3-3-p*?NTTON^NuNV#-3 -p,?NTTO n0- n0-09-N^NuNV3-3 -pp?NTTO n -09-N^NuNV#-pn?NTTON^NuNV3-pf?NTTON^NuNV3-3 -3 -3-3-pd?NTTON^NuNV3-pg?NTTON^NuNV3-3 -ph?NTTO n 0- n0- n0- n0-09-N^NuNV3-3 -3 -3-3-pe?NTTON^NuNV# -p 3IHp3IJByINp3IR3ITNN#7p-N^NuNVpe3IHByIJByIN3ITNNN^NuNVp3IHByIJByINp3IR3ITNNN^NuNVp3IHByIJByINp3IR3ITNNN^NuNVp{3IHByIJByIN3ITNNN^NuNV#-#- .Z#-pd3IHByIJp 3IN n 3ITNN n 0IT#.-#0-#:N-#7p-N^NuNV#.-#7p-# - . Z#-3 .pf3IHByIJp3IN3ITNN#0-#:N-N^NuNV3 .p3IHByIJp3IN3ITNN090N^NuNV3 .p3IHByIJp3IN3ITNN090N^NuNV3 .ph3IHByIJp3IN3ITNN090N^NuNV3 .p3IHByIJp3IN3ITNN090N^NuNV3 .pz3IHByIJp3IN3ITNNN^NuNV3 .p3IHByIJp3IN3ITNN090N^NuNV3 .p 3IHByIJp3IN3ITNN090N^Nu#IH-"<- <sNBNu O$X"XHB@Nu o0/L.Nu"o o JfSfNu"o ofJfHHNu"o o fNu o"Jf S@Nu0/0@IAg@NuNVH0*n n "(-@-AJnlp=@/<>/./.N J@l .". -@-Ap-HnHnHn?././.?.Nޤ(@ neg ngfv nn 0.D@nob ngfp?`BgBg?./ / N,*@Jnm ?./<f`0.D@?/<m/ Nx / NXOHЍ`& ngfp?`Bg?.?./ / N,L0N^NuNVH0*n(n >.<.JFlp0`JgH`p00SFJ@fJGg2JngJg(p.0SGJ@oJngJgRFlp0`JgH` L0N^NuNVH /<>/./. N J@l np0 . ". -@ -A` nBP/<>/./. N J@f nBP <t`Hn/./. N Hn/<FSn0.?N@TO//N //N /./.N PO<?NTO//Hn Nv /<N/./. N J@mRF/<NHn N>PO n0 neg ngf Fn 0.D@Fo0.`0.FR@=@JnnBJnf,/<V/./. N J@o nRP <v` nBP <x` nop=@*n0nct/<>/./. N J@gX/./. N PO>0@0/<N?N@TO///./. N//N -@ -A`B/<V/./. N J@nS Mg 0fB` .`& MSgRH @9oB` nRP <zL N^NuATxKB ANVHn/<NPON^NuNVHn?</.N Hn HnNPOHnBg nN\ON^NuNVH0-n n(PXH> @%gJGgP/.? n hN\O`p =@p=@p=@H> G-fp=@H>`Bn G0f p0=@H> G*f& nT=Plp=@0.D@=@H>`*Bn G0m G9n0. G@0=@H>` G.fJH> G*f nT=PH>`*Bn G0m G9n0. G@0=@H>` Glf&H> Gdg Gog Gug Gxf0@> `-@*@p=@0 |2<`XHXW PN`4 nT=PJnl0.D@=@p-p ??./ N4PO*@`p ? nT?`p`p` n-PXJl .D-@p-p ?/./ N `p ? n// N *@X`p`p`/ ?./.?N *@P`fBn n-Pf-||X .-@*@JgJnm noS`(Bn nT0` n//.NPO`n ./0.Hї =@lBnJnfLJng0 n0f( n -f/. nRH? n hN\O0.SnJ@g /.?.` nd /. nRH? n hN\O`Jng0.SnJ@g/.?. n hN\O`L0N^NuNVH >. *NB%0<g"0H@H@B@H@ @>`?Bg _Jg nR` .L N^NuNVH0*n>.IB$p0//. NLPO-@g$p0//. NPO @-n ` n Jg` L0N^NuNV/ *n .*+@+|B-0. D@;@ m l;| +|`+|b *_N^NuNV/ *n Sm lBm p` UR0.*_N^NuNV/ *n UR0.*_N^NuNV/ *nRm oBm p` URB@*_N^NuNV/ *nJf0-H@f?<N~TO+@f+| +|$`n-H@f2-H?NTOJ@gf+|(+| -`&+|(+|-H?N~TOHЭ*+@Bm *_N^NuNV/p?B?.NPO. fB@`0H@.N^NuNV/ *n/ NXO/ mNXO*_N^NuNVH >.*n / NXO/ ? mN\OL N^NuNV/ *|"Y MeJg/N8XO`*_N^NuNVH *n-H@fp`@/ NXO>-H?NTOJg-H@f /-NXOB-0L N^NuNVH *nBm -H@ff >o?/--H?NPOGf$JGm mAf -*+@`+UB@` 09H fBy`-pL N^NuNVH *nRm o/ NXOJ@f f/<NXO -?/--H?NDPOD@;@ @f^09H fBy`-Bm `F0- Rm m+H URB@>-H@ g G gL Gg 0`Jm f-pL N^NuNV/ *n f/<NXOBm p?Hn-H?NDPO @g4J@gP .f -H@ f< . f -H@ fB@.`(09H fBy`-`-p*_N^NuNVH >.*n G f$-H@ g/ p ?N\O @fp`0Sm l"/ NDXOJ@f -S@;@ UR0L N^NuNVH >.*n G G f -H@ g/ p ?N$\O @g^Bm -H@fN/ NDXOJ@f@p?Hn-H?NPO @f0` 09H fBy`-pL N^NuNVH >.*n G f$-H@ g/ p ?N\O @fp`?NAXO/NXO`B@N^NuNV?.NTO @Cfp`B@N^NuNV?.?./. pB?NA /NXON^NuNVH A#D/9DNhXOJ@gBDp 3p`?.NTO @Cf|9-H>9-HH-*@SnmSGl^pQ-B9-/<-p ?NA\O>mp ?p?p?NM\Op-9-H>9-HH-*@0Gp H: Ef~` n R RF E ft ---BD0`0/. 0.H/?.p??NA >BD0H/NXOL N^NuNV/A#D/9DNhXOJ@gBDp 3p`,/. 0.H/?.p@?NA .BD/NXO.N^NuNVH >.0V@ @bH0@ PN`*pP`&pA`"pC`JGm*y"SGmJfp`JgHL N^NuNVH >.JGm*y"SGmJfp` Jg0. L N^NuNVH >.0V@ @bHH0@ PN*y"HGg Jfp`&R` "?NTO`~C`~A`~P`pL N^NuNVJl .D3p` .N^NuNVH *nA-H-nHnNXOBnBnp@=@ +g -fnRH> @.g G0m G9n G.f0.@fn`B@.@gRn`jHnNXXOHnHnNPOHnNXXOHnNXXOHnHnNPOHnNXO0@0@HnHnNPO0.@gDSn`< Geg GEfZ +g -fnRBnH> @0m G9n0. G@0=@`0.@g 0.D@=@0.nBn nl NJ(fRn` nf HnBgBg`JnoHnHnNPOHnNXXOJ@f:HnNXXOJ@f*HnHnNPOJ@fHnHnNPORn`VHnHnNPOBgHnN\OBgHnN\OHnHnNPO>gRn?HnN\OVnSnfJ`JnlB@.@fHnNXXOSn`BgHnN\OHnHnNPOBn n lJ0.@gBgHnN\OBgHnN\OBgHnN\OHnHnNPORn`WnRnfdSnHnNXXOJ@gHnNXOp@HnHnNPOJ@gRnBgHnN\OHn0.@?0.@?/.N n "(L N^NuNV/~ G lBg/.N\ORG`0.@@ n0.H@ n(Jn g n/./.NPO.N^NuNVH| Fl4>. nB@@=@ nJGg nRF`0. LN^NuNVH|zJEm.>| nB@@g| n nŏSE`0LN^NuNVH|~JGm. n BA nB@A@ n0@@<SG`0LN^NuNV/~ Gl n"n RG`.N^NuNV/~ Gl nBRG`.N^Nu |` |` |` |H$H"o oN""LNu |` |` |` |H$H"oAN""LNu |` |` |` |H$HC o NLNu H@"HA4B|?4<68@g AgDgDgC|@e|b?H@HA()|zx)K)>HC(K(4ނF)JH@ނE(JHAނEHG4BHBBEHCCHCCD$HBHABHBBD4BHBBDBC$HBHABHBBC6AHAAkOVUT|e$JCk(2HA2|0H@0H@C_H@NuTrpNur Nu |` |` |` |H$HCA NLNur0/H`rp0/fNur /fNuj2<D|SAdHAQQQQQQQQQHAIH@AH@BANur /fNu o /"<€@HAI|0"/NuA ` o /j"j$b f$ /bfB@Nunf /bgpJ@NupJ@NuNV/ *nHn/. /.N n8m .". *+A <"<`0JnnP/</. /.N J@l**+|/</. /.N `BB`/</. /.N J@m?./ /. /.N`?./ .". //N-@-A /</. /.N J@g@/< "- //N *+AHn/</<@N`2 "- *+A .". *_N^Nu@H<"o4/ SB6(<zQ /"/$Ą"$ą"fJg"Q6<`SCgKHCBCL.JGl,0D@?NTO///</<@N`-|@-| GmG/<HnNFPO GmG/<HnNFPO G@mG@/<HnNFPO G mG /<HnNFPO GmG/<HnNFPO0H/HnNFPO ."..N^Nui~Gɀ*xIϧuŭ+p[ɿNVH8..P b d.</NNXO*@ Mg`Jf&M ##`& yf QP&m`(yQ L&h)M Q@* Ѝ#(@Q LB)KL8N^NuNVH0~ .\S@,dB`ƙ*y gr .gH g @є .*L(Mc2  d @*`* Ѝ# y X`dJg @Ѝ*@`*mf g#Ry09 @e Sy`X/NXO/.NXO*@Sy L0N^NuNVp0./NXON^NuNVH .Y*@Jf4~0GJg 0RG0@H?p?p?NM\O`NL N^NuNV?.pL?NAXON^NuNV/?.pE?NAXO>l0H/NXO`"?.NTO=@m?.?NPXO0.N^NuNVH..Jl <`0Jf 9`$R @./pH?NA\O,g Ї# LN^NuNV0.H/NNXON^Nu g @` f ")Nu(f"(Nu"(*)tvRSb fdDECH@HD,<>@D@D||H@HDNO|gVCgFDfRFgFG|8exz`Q~ۇه҅фJCjJf0Jf,prNug&~ӇчRf <r`SggNHFHBNu/246C|?IJ8<DDDg$Dg,B|o"|n &g((zQ?/~>BCHC|p0")4)zJPQ||@HBBBz?<,O`?,<HFh|(HDCHC҃Eg`B@HC(8"8` SF҃@fe򒄑E8.ƔE8.HBDHB8HDEj SFԮ6ӃBCHCHA0HB2BBSnf~2HA2 H@\<`SFo.d|btNQH@_H@`p"|_H@`Tpr,_Nu"/0<NBNu,    @ J    t @ & d & v & & & & & & & & & & t        2 3B|xtjb(\>`&6BRbnz//.x.x...x...x.x./&666666777 76l66666666666l6l6l6l7AA.@@AZXvXX2_`___``B`r_VX2X2X2XXX2`X2X2XYX2`X2X2YYX2aX2X2Y8YjX2a*X2X2Z4ZZX2a^X2X2ZZX2aDX2X2YZX2axX2X2]N]tX2a]\X2^^H^|^^X2[ [0X2X2aaX2X2abX2[[bX2X2](]X2ZZX2\\b X2]X2[[dddd"d(d.d4d:cd@dHdNdRdVdZd^dbcdfdldrdvdzd~ddcdddddee&eBccccccccddddeee4ePcccccccce^v~DOUXcBd8efgorTsupxD0123456789ABCDEF"&@B CEzG@HPJt$LM Onk(QRC@ThԥV*W Yc_1 p[0][ SYSTEMS Config v1.8| Software by ACS, England | (c)1987 Paul Camilleri.| |----------------------------- ][ OK ][0][LF = Linefeed |FF = Formfeed |RV = Reverse |HM = Home head | ][ OK ][0][LM sets the left margin |to 0 or 10. | ][ OK ][0][RM sets the right margin |to 70 or 80. | ][ OK ][0][SK selects/cancels |perforation skip. | ][ OK ][0][SZ sets the page length |to 11 or 12 inches. | ][ OK ][0][SP sets line spacing |to 1/6 or 7/72 of an inch. | ][ OK ][3][ Printer is not | connected or | not online. | ][ Exit ] BBSLOG Sig #User # - D 6608SYSTEMS.CTL@ MAPIT System ControlSYSTEMS.RSC[3][Bad copy? |CONFIGUR.RSC| couldn't be found! ][Cancel][3] [ Fatal error!! | Resource file is corrupt. ][Terminating] Bytes Bytes freeOKCant't make directoryCant't remove directoryCant' access driveCan't access sourceCan't access sourceCan't access destinationCan't access sourceCan't access destinationCan't do thatCan't access sourceCan't access sourceCan't access source Enter search mask: *.* (Subdirectory) - bytes. (Hidden)(System)(Read Only)(Wriiten To)  KEYS FOR ALL AVAILABLE FUNCTIONS HELP - This screen! UNDO - Quit Terminal A - Load capture buffer B - Save capture buffer C - Select baud rate D - Upload from capture buffer E - Download into capture buffer F - Turn Capture ON G - Turn Capture OFF H - Clean out Capture Buffer I - Smooth scroll ON K - Smooth scroll OFF L - XMODEM Upload M - XMODEM Download N - Exit help menu O - Toggle local ECHO P - LINEFEED toggle [Local] Q - LINEFEED toggle [Remote] R - Upload ASCII file S - Download ASCII File T - View Directory > Local ECHO ON Local ECHO OFF Auto LINEFEED ON [Local] Auto LINEFEED OFF [Local] Auto LINEFEED ON [Remote] Auto LINEFEED OFF [Remote] Baud Rate Selection [1] 19200 [7] 1800 [D] 134 [2] 9600 [8] 1200 [E] 110 [3] 4800 [9] 600 [F] 75 [4] 3600 [A] 300 [G] 50 [5] 2400 [B] 200 [6] 2000 [C] 150 Which one? (press ESC to cancel) Set File Transfer Protocols [1] Ascii [2] Xmodem [3] Binary Image Which one? Filename: ASCII or XMODEM: Sorry - I/O error! Capture buffer ON. Capture buffer OFF. Text transfered Capture buffer FULL - now turned OFF!!! [ 19200 ][ 9600 ][ 4800 ][ 3600 ][ 2400 ][ 2000 ][ 1800 ][ 1200 ][ 600 ][ 300 ][ 200 ][ 150 ][ 134 ][ 110 ][ 75 ][ 50 ] [ SMOOTH ] [ COARSE ] [ IMAGE ] [ ON ] [ OFF ] Capture Buffer Local Linefeed Remote Linefeed Scroll Type Baud Rate Local Echo Capture buffer size: bytes. Capture buffer usage: bytes. Enter search mask: *.* /+-)More? [Yn]  Transfer starts in 20 seconds.  Press ESC to quit. Now waiting for call..  Local Call Detected ... Remote Call Detected ... Press [RETURN] now! !!!!!! Carrier Lost !!!!!! v ATZ pqYes No efCONNECTCONNECT 7512CONNECT 1275CONNECT 1200CONNECT 2400 ATA ATO +++ *** XMODEM File Transfer *** *** XMODEM File Transfer *** Block [] Attempts [ Transfer Waiting ... This file is [ ] blocks long. File sent OK File not sent correctly!   Press any key to continue: *** XMODEM File Transfer *** [Too Slow ] [Bad Block ] [Short Block ] [Checkusm Error ] [Missing Cecksum] File recieved OK - File not recieved correctly - [Old Block ] [Requesting ] YESNOFile: Date [ / / ] - Time [ : ]Date [ / / ] - Time [ : ] : / / Modemflag = BBS Mode = !!!!!! Lost Carrier !!!!!! !!!!!! Lost Carrier !!!!!! Time limit reached, sorry. Time limit reached Lack of user input. Lack of user input. Timed out 3124 val[%d] %s Cannot drop carrier! Please hang up now ...][CRC][CHK] [Recieving ] [Sending ] [Sending ] [Recieving ] No response, aborting... Recieved Checksum request. XMODEM set for CRC ONLY! Aborting ... Recieved CRC request. XMODEM set for Checksum ONLY! Aborting ... File read error, aborting... No ACK on block aborting... No ACK on EOT, aborting... Done... Transfer Aborted... File output error File output error Aborting reception... Done... Transfer Aborted... Error occured - XMODEM aborted ABCDEHIJKLMYbcdefjklopqvwYesNo 0123456789ABCDEF...YesNo e+%02ue-%02u0101{NULL}!!#&CCAP????????????????????????@@@@@@@@@PPPPP@@@@@@@@@@@@@@@@@@    @Bad pointer in free.                                             *                                  &      N  :  ,4 :.  nD   0          L                                                                                 F *$*        &                       .2            >           $ BBBBBBBBBBBj           H                                                             0 & .      .$0&22&&&&&&22&&2&2&&8  H&&&2                      $$$$         $ P   <                                                ^                                                             D        |       <       8           H $   "H         22:               D\               2(             < $$(  X 0                   $&$&  "*   $      6,4$         D   : >     "      F, 6tF>&j6N:                                                     &         24 * :x&"d44d"2>"&V Z>,^,""$"  " 4.                      >DJ *4    L(H6FP( LD .$  .6*" .J0.$nBF\ @$@44  & 6&  &(2> 00v   0$"$0D6  X6& p(      f  @J$  $D,$fH 0 vl,Boot should be placed in an Auto folder. It is a customised boot utility which asks for time/date and gives you the option of which drive to boot from. If you select B it will execute programs in the Auto folder of Drive B and load up the .ACC files on Drive B. Boot will not run programs which start from the boot sector. This program was placed in the Public Domain by the Author, Mark Young from Kent. `/<?< NA\?<NNT,`g`/<R?< NA\/<?< NA\Hy?< NA\CT 9f&aJk,a@k@a6k @P@`/<?< NA\?<NAT`/<R?< NA\/<u?< NA\Hy?< NA\CT 9fak<Nak@N`/<(?< NA\?<NAT`??<-NAX/?<NN\HF??<+NAX/<?< NA\?<NAT@@A|n?B?< NA\9#0yFf K"`3F*y/9?<NA\N/<?< NA\/<L7NAB@@0k @0Nu pY 1ST BOOTqeY" Input the DATE (DDMMYY) ______Y"8Y4 pInvalid Date Input - Press a KeyqY4 pInvalid Time Input - Press a KeyqY4 Y$ Input the TIME (HHMM) ____Y$8 Boot from drive A or B ? fY*(Thanks for using ST BOOT$. 8:&`OLp a:33r#p#a3#pa |0|(f |0yfa`BgHzB?<6NAP 9"9$9CLaz 9U"9$9CaZ"9 9U"9$9Ca2/NuArvtRdИJfJAgJf _` 0vQNuCN2@  |:p222BQ"<"0<NB09Nu DISK/RAM Free [0][ Disk_size__#######  |___Disk_used__#######___|___Disk_free__#######___|___Ram__free__#######___ ][ OK ]B@'d NVr     *H ``$Syo /9Nuy:8LE y(fRy y<fVByRy y<f>ByRy y f y&` y fByRy09,gB<909ap:a09a68|K09&@a0<m@a/9Nu08|49*3*2B| g |f\0@|fP y* x y,f@<9p ap ap a|p avp app ajp ad`x09,gn<9p aJ/9Nu2</RA| j|:?0|0f< `2</RA| j|:?0a0r24ļB{ J&z*ҸN(A kL4+P>+RSG29QNuaPHJ09 @?02;32;32;3$2;32;G~&?<NNT>|H30H|?30r hnp `| m3p&| m| 33 |paHz ?<?<NM#PBg<<@ܼL/?<1NA?<NNT3 |Jy f |aa2H@¼| g|bfXJy g |aXa` | aJaR` |a:aB |a,a4 |aa&``|af |paBgNA/?< NA\Nu?<NATNuEf - JCLOCK7.PRG - Resident Corner Clock (Atari ST Ver.7) Copyright (C) 1987 - by John L. Stanley _________________________________________ Press: [Help]--- for more info, [Undo]--- to abort, or [Return]- to start clock. _________________________________________ E This program installs a tiny interrupt handler that displays an am/pm style clock in the upper right hand corner of the screen. The "am" or "pm" will display as "AM" or "PM" when CapsLock is on. The clock remains on-screen thru all known programs and can be started up in all three resolution The clock can be turned Off (and On) using the following sequence: 1) Hold down both (Left -and- Right) [Shift] keys for at least 1 second, ( Pressing [Alternate] with [Right-Shift] also works... ) 2) While still holding down both shift keys, hit the [CapsLock] key, 3) Watch clock vanish/reappear... This clock solves 5 problems I had with other clocks: 1) Gives am/pm time. (I don't normaly think in military time so...) 2) Can be disabled without rebooting. 3) Small and fast with little overhead. (If a clock takes too much time in an interrupt it randomly causes the keyboard to go crazy when you move the mouse.) 4) Can be run in any resolution. 5) Runs inside all programs, not just those that obey GEM psudo-multitasking rules. Note: JCLOCK7 reads it's starting time from the ST keyboard clock only once when it's installed. This means you need to use some other clock setting program (RTC12.PRG works well) -before- you install JCLOCK7. No amount of altering the system time after installing will effect the time displayed! -< Press any key to continue >- eE I enjoy getting mail containing news about where my programs have been found, enhancement ideas, & public domain programs on disk. If you like JCLOCK7 and use it often, please take the time to send a disk, letter, or even a postcard (no money required) to: John Stanley / 4157 Lyndale Av. S. / Mpls, Mn. 55409 Request: If this is distributed by a users group, I'd apprecieate receiving a copy of the disk it is distributed on and/or copy of your newsletter. ------------------------------------------------------------------------------ I hereby grant the right to distribute this program (without any changes) via non-profit user groups, all BBS systems, and by individuals. This explicitly excludes all commercial "Public-Domain" distributors and any other agencys, groups, or companys unless written permission is granted. John L. Stanley -< Press any key to continue >- Ef - JCLOCK7.PRG - Resident Corner Clock (Atari ST Ver.7) Copyright (C) 1987 - by John L. Stanley _______________________________________ Press: [Help]--- for more info, [Undo]--- to abort, or [Return]- to start clock. _______________________________________ E This program installs a tiny interrupt handler that displays an am/pm style clock in the upper right hand corner of the screen. The "am" or "pm" will display as "AM" or "PM" when CapsLock is on. The clock remains on-screen thru all known programs and can be started up in all three resolutions. The clock can be turned Off (and On) by using the following sequence: 1) Hold down both (Left -and- Right) [Shift] keys for 1 second or more, (Pressing [Alternate] with [Right-Shift] also works...) 2) While still holding down both keys, hit the [CapsLock] key, 3) Watch clock vanish/reappear... -< Press any key to continue >- eE I enjoy receiving mail containing information about where my programs have been found, enhancement ideas, & public domain programs on disk. If you like JCLOCK7 and use it often, please take the time to send a disk, letter, or even a postcard (no money required) to: John Stanley 4157 Lyndale Av. S. Mpls, Mn. 55409 I don't require it, but if this program is distributed by a users group, I'd apprecieate receiving a copy of the disk it is distributed on and/or a copy of your newsletter. -< Press any key to continue >- E I hereby grant the right to distribute this program (without any changes) via non-profit user groups, all BBS systems, and by individuals. This explicitly excludes all commercial "Public-Domain" distributors and any other agencys, groups, or companys unless written permission is granted. John L. Stanle -< Press any key to continue >- eE       ( 4 rZ "  . `dvO p By aT3pMaH3p#3 *# a*3~M"pr3 *# a QByByC fA ` "fA N`P#p# a y(f0:6z(fa`aP0:*g pAAaNuphA RBX0aA C""p6Ar# adA jC""B@A "HapA C arA BX0C C,# p*aBy *A# p2a @ga*`pA C apA C ~a NuBAA gTA|>e2;,z PK DB@N  &$*(20@NuR@R@R@k`agraVAr00C B C# p*aNu?<B?: ?: B/: ?< NNOJNu?8X00000wPU"wUPpw-B &82 ATD 863 0198 c:\D:\Z|$|B n ( B2Printer Control & Fonts NLQONOFFUSAJapanUKGermanyDenmarkSwedenItalySpainFranceOutput ELITEONOFFATARI CONDENSEDONOFFEPSON ITALICONOFFCENT PROP'NALONOFFMODEM SUBSCPTONOFFSINGLE SUPERSCPTONOFFCONT UNDERLINEONOFFMONO SPEEDSFCOLOURLFFFLMRMSKSZSP010LPP++66--7080TAB88HMRVONOFF1211EXITHELP1/67/72RGBColourOK______________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX______________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX______________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX______________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX______________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX______________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX______________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX______________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX______________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX______________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX______________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX______________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXFile:______________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXERASEPRINTLOADSAVEEXITSET TIME & DATE____ __:__ 9999______ __/__/__ 999999SAVE-----Directory:_____XXXXXINFOEXIT5075110134150200300600120018002000240036004800960019200XMODEM SettingsCRCCHKBOTH1281024Loose TimingTight TimingUSARTFunction KeysSETTERMINALCANCELMouse & Keyboard Speedselection1234567891012345678910SlowerFasterEXITDisk Write SpeedsNormalFastFormat CapacityDrive ADrive BSingle SidedDouble SidedFormat StatusFORMATEXITDOS FunctionsDFREEMKDIRRMDIRERASECOPYMOVERENAMEPRINTINFOName:______________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX To:______________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXRESULT:____________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXView FileEXITTerminal Function KeyAssignments (F1-F10)______________________________F1:______________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX______________________________F2:______________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX______________________________F3:______________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX______________________________F4:______________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX______________________________F5:______________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX______________________________F6:______________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX______________________________F7:______________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX______________________________F8:______________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX______________________________F9:______________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX______________________________F10:______________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXEXITUniversal Synchronous/AsynchronousReciever/TransmitterONOFFXON/XOFFONOFFRTS/CTSNONEEVENODDPARITY5678Data Bits011.52Stop BitsOKCANCEL??@ @?__ @!@_ @G@ @@ @@P@  @n@???@!@BQ B(UPT<x / ??@UUUUT@AUUUUGBEUUUUJUUUUT@GI$I'RI$@@[mۻo[mۻo@[m[o[m[o@[m[o[m[o@Mo@???? 20TAܤ$J Q !q(qP!!$qDs'xP \       ?@~p(~P /@ /0 p/ (/P / /p ~ ?|x30111111x1111130|x @ @@0"D,!@$$$$(0 @ @@0"D,!@$(0%@#& &' "z(0"F)0f* f+ ^, ^ > <AB      $% 29:hkl{~$$"Fj$$$$B$$f$$$$>b$$$$:^$$$$6$$Z~$$$=BJOVa ms X Y }$ $ $ \ { " "  ; ]" | " " < [ }" "  =" \ { " #d%$ Z  D  QCQF D QJ QN QT QW Q_ QgQnQtQz v  D  QQQ DQ   D  QQQ DQ  !  D   QQ#""Q D!Q$  '%& D  &Q$Q)((Q D'Q*  -+, D  ,Q*Q/..Q D-Q0  312 D  2Q 0Q544Q D3Q6  978 D 8Q&6Q);::Q D 9Q-< : ?=> D >Q;<Q=A@@Q D ?Q?BQ F CQ I IDH A EQLFQOGQRHQUCQXLJK D KQ[IQ]M` PNO C OQdMQfQV TRS C! SQmQQoWUV D VQqTQtXw Yr ZQ [Q ^\] D  ]Q[Qa_` D  `Q^Qbdcc AbQef D  fQdqA%    Q0Q1 Q2 Q3 Q4 Q5 Q6Q7 Q0Q1Q2Q3Q4Q5Q6Q7   Q0Q1Q2Q3Q4Q5Q6Q7A!@  "Q#Q$Q%Q&Q'Q(Q)Q*p+r,t-v.x/z0|1~2Q 3Q 4Q 5Q 6Q 7Q 8Q 9Q :q ;s  <u  =w  >y  ?{  @}     '%######6# R# n #  #  #  ##Q Q QQq %  # QQ(QJ Ql QQ QQ  C  Q-    AQh2 AQ''% A!QQQQ Q  Q  Q  Q  QQQQQQQQ  AQQQ  AQQ A !QQ!  C !Q#"" C!!Q"%$$ C #Q0 '&& C %Q4 '= %D[   CQeQgQi Qk Qm Qo  Qq  QsQuQw CQzQ|Q~QQQ Q QQQ   8 '%  C#QQ   B#QQ  B # Q Q    Q ' %   ! AQ $ AQ *  AQ 0  A  Q 6  A  Q < A  Q A AQ F AQ M AQ SN #j ## AQ "' , % 1 G !!!!! . ! J ! f !  !  "q%""E  AQZQ]a   A QjQm q  A QyQ~ Q  A QQQQ   A QQQQ  Q')b/1Z3:69;b=?:  Q*'- 0)0137p:X;>`?`9.Cg.I(#;#;#;3;N(NDO_OPEN ?Hz~)/,HNVA-HPN709=rAg~*?9=~+N`r~,~,~-CrE=pQ~.prArA?Hy=~/BgBg?<?<#N3=~0?9=?9Nu Desktop Clock DO_CLOSE ?Hz~8/,HNVA6-HPN7?9=N~9?9=N~:~;p3=N^,_X>NuCONVERT ?Hz~C/,HNVAz-HPN7"nEr~D .r //N9"-A~E .r //N8"-A~F"n .r0HЁ@~G"n .r0HЁ~H@N^,_X> _PN GET_TIME ?Hz~R/,HNVA-HPN7N4-@~S .rNuPMAMDO_REDRAW ?Hz~o/,HNVAd-HPN7?9=NF~pN~qN&~r?<0|AN ~s?<N"~tBg0AN"<~u?.HnHnHnHnN~v~v0.J@V0.J@VCBd~w~x?.?.?.?.HnHnHnHnN@db~y~z?.?.?.?.N~{0.|r|Af~|BgBg?<?<#N~}BgBg?<?<#N$@~~N~><?.HnHnHnHnN><`2><N&><><N N^,_X> _O NEVENT_LOOP?Hz></,HNVAT-HPN7><p@d:><><><pr A?BgBgBg0<H/BgBgBgBgBg><BgBgBgBgBgHnHnHnHnHnHnHnN'=@><0.rAJ@g><0.`,><><><N`Z><><><><><0.ްy<p3=`><><><><><?.?.?.?.?.N><3<><3<><?9=?9<`><><><N`><><><?.?.?.?.?.?<N`b><><><?.><N`D@ @b8@0;N,,,, ,,,,,,,,,,,><`<><><09=rAg&><?9=?9<><`N^,_X>NuA#;A;0B1|A<N.`3<><09<><CE? p Q><p3=><><CnE>pQ><><?9N B3<><p3<><p3<><N><><Hy-HN8$=n0. rA=@-nx?<HnHnHnxHntN0FN^,_ _PN/,HNVtA8-HN8$=n p=@-nx?< HnHnHnxHntN0FN^,_ _\N/,HNVtA6-HN8$=n Bn-nx?< HnHnHnxHntN0FN^,_ _\N/,HNVA0-HN8$/.?. A O"Op?"QBgBgN N^,_ _ON/,HNVnAX-HN8$"n $n p*R@r=n"n / N2-@r?<#HnHnzHnrHnnN0F=nz0.N^,_ _\NNu/,HNVtA\-HN8$=n=n=n=n=n=n=n=n=n ?<3HnHnHnxHntN0FN^,_ _ON/,HNVnAF-HN8$0. J@jBn =n -nr?<2HnHnzHnrHnnN0F=nz0.N^,_ _\N/,HNVAv-HN8$/.BgHnHnHnHnNjBgBgBgBgBg?.?.?.?.N/.Bg?<?.?.?.?.NX/.?. N(=@0.N^,_ _\N/,HNVAH-HN8$/. BgHnHnHnHnNj?<BgBgBgBg?.?.?.?.NRN^,_ _XN/,HNVtA,-HN8$-n x?<6HnHnHnxHntN0FN^,_ _XN/,HNVAX-HN8$Bn"n0.r1JAg*"n 0.R@$n2.t20.R@=@`"n 0.@N^,_ _PN/,HNVA-HN8$"n Jf:p. rAl?<"n / N(`p. R@?"n / N(p=@p. =@0.nn&"n $Q0.S@2.tA 0Rn`"n $Qp. rN^,_ _ON/,HNVA|-HN8$"n0.-I"n0)rAW"n0)r AWÄC"n0)rAWÄCBd("n / AO"Op?"QN`"n0)rAW"n0)rAWÄC"n0)rAWÄC"n0)rAWÄCBd"n$i -J"n0)rAW"n0)rAWÄCp."ni\CBd"n0)S@@"n Jf"np.R@3@"n/ AO"Op?"QN"n0)rAW"n0)rAWÄCBd"n3n "n3n N^,_ _O N/,HNVAZ-HN8$"n0.-I"n0)rAW"n0)rAWÄCBd"n$i /"n / N`N^,_ _O NNu/,HNVxN8$=n=n -n|?<(HnHnHn|HnxN0FN^,_ _PN/,HNVxN8$=n -n|?<rHnHnHn|HnxN0FN^,_ _\N/,HNVxN8$-n|=n=n=n=n=n=n ?<*HnHnHn|HnxN0FN^,_ _ON/,HNVN8$"n0. =i 0.N^,_ _\N/,HNVxN8$-n|=nBn=n=n=n=n=n0. rA=@?</HnHnHn|HnxN0FN^,_ _ON/,HNVN8$/.?.HnHnHnHnNj/.?.?.?.?.?.?.?. NDN^,_ _O N/,HNVN8$"n0. =i0.N^,_ _\N/,HNVN8$"n0.3n N^,_ _PN/,HNVrN8$-nv=n=n=n=n ?<+HnHn~HnvHnrN0F=n~0.N^,_ _O NNu/,HNVtN8$/.?."n/ "n/ N"n0.-It"n$nt2"n $nt2"nt0) rAJ@g:"n$n0W@2"n$n0W@2"n$n0\@2"n $n 0\@2N^,_ _ONNu/,HNVxN8$=n-n|?<,HnHnHn|HnxN0F"n2"n 2N^,_ _ONNu/,HNVtN8$AD-H=n=n=n=n=n=n ?<iHnHnHnxHntN0FN^,_ _O N/,HNVtN8$AL-H=n=n?<hHnHnHnxHntN0F"n2"n2"n2"n 2N^,_ _ON/,HNVN8$A*-H?.?<"n/ "n/ "n/ "n / N`N^,_ _ON/,HNVN8$A*-H?.?<"n/ "n/ "n/ "n / NN^,_ _ON/,HNVN8$A*-H?.?< "n/ "n/ "n/ "n / NN^,_ _ON/,HNVN8$A*-H?.?< "n/ "n/ "n/ "n / NN^,_ _ON/,HNVN8$AP-H?. N10. rAfBgBgN1`(?. HnHnHnHnN?.?.N1N^,_ _TN/,HNVN8$A&-HBg?< HnHnHnHnN=n0.N^,_Nu/,HNVN8$A-H?. ?< BgBgBgBgNNN^,_ _TN/,HNVtN8$Al-H0.J@W0. J@WÄCBdBgHnHnHnHn N=n=n=n=n=n ?<eHnHnHnxHntN0FN^,_ _O N/,HNVtN8$A&-H=n ?<fHnHnHnxHntN0FN^,_ _TN/,HNVN8$A"-H?.?<?.?.?.?. NJN^,_ _O N/,HNVN8$AH-H"n $n p*R@r"n / HnHnN?.?<?.?.BgBgNN^,_ _\N/,HNVN8$AH-H"n $n p*R@r"n / HnHnN?.?<?.?.BgBgNN^,_ _\N/,HNVlN8$A-H0.J@W0. J@WÄCBdBgHnHnHnHn N=n=n=n=n=n ?<dHnHnzHnrHnnN0F=nzl0.lrAg?.l"n/ N=nl0.N^,_ _ON/,HNVtN8$A&-H=n ?<gHnHnHnxHntN0FN^,_ _TN/,HNVnN8$A2-H=n=n ?<jHnHnzHnrHnnN0F=nz0.N^,_ _XN/,HNVtN8$Ad-H=n&=n$=n"=n =n=n?<lHnHnHnxHntN0F"n2"n2"n2"n 2N^,_ _ONNu/,HNVN8$ .R-@"n ."<//N9"2"n .r2N^,_ _O NNu/,HNVVN8$=nt=n vp. |o =|X` p. =@Xp=@Z=nXV0.ZnVn$0.Z@2.ZtA 0A1RnZ`?<Bg?.X?<HnHnHnHntHn\?<N0N^,_ _ONNu/,HNVA-HN8$?.?. N1N^,_ _XN/,HNV8A\-HN8$=nP=nR=nT=n V?<BgBg?<HnHnHnhHnPHn8?<N0?.?. N1N^,_ _PN/,HNVA<-HN8$HnHnN1?.?.?.?. NZ?.?. N1N^,_ _XN/,HNVA -HN8$?.?. ?.?. NN^,_ _XN/,HNV8A`-HN8$=nP=nR0.nS@=@T0.n S@=@V?< ?<Bg?<HnHnHnhHnPHn8?<N0N^,_ _PN/,HNV8A^-HN8$=n=n =nP=nR=nT=nV?< ?.?<?<HnHnHnhHnPHn8?<N0N^,_ _ON/,HNVA,-HN8$?<?.?.?.?.?.?. NXN^,_ _O N/,HNVA,-HN8$?<?.?.?.?.?.?. NN^,_ _O N/,HNV8AP-HN8$=nP=nR=nT=n V?< ?<Bg?<HnHnHnhHnPHn8?<N0N^,_ _PN/,HNVA&-HN8$?.?.?.?. Bg?<N,N^,_ _PNNu/,HNV8N8$A~-H=nP=nR0.nS@=@T0.n S@=@V0.J@V0. J@VCBd p=@`Bn?<Bg?<?<HnHnHnhHnPHn8BgN0N^,_ _PN/,HNVN8$A"-H0.n n =n`=n 0.N^,_ _XN/,HNVN8$A"-H0.n m =n`=n 0.N^,_ _XN/,HNVN8$A-H0."n?"n0"nQ? NNN=@0. n?"n0"n Q? NN,=@"n/ ?."$n? NNR"_2"n/ ?. $n? NN8"_2"n0.$nR2"n 0.$nR2"n0rA^"n 0rA^C=B0.N^,_ _ON/,HNVtN8$A&-Hp=@?<kHnHnHnxHntN0FN^,_Nu/,HNVtN8$A$-HBn?<kHnHnHnxHntN0FN^,_NuNu/,HNV8A:-HN8$=n ?.Bg?<BgHnHnHnhHnPHn8BgN0N^,_ _XN/,HNVA-HN8$?< ?. NN^,_ _TN/,HNV8AL-HN8$=n=n=n=n ?<Bg?<BgHnHnHnhHnPHn8BgN0N^,_ _PN/,HNVA"-HN8$?. N2?<?. NN^,_ _TN/,HNVA-HN8$?<?. NN^,_ _TN/,HNV8A>-HN8$=n PBnR?<BgBg?<HnHnHnhHnPHn8BgN0N^,_ _TN/,HNV8AN-HN8$?.?. N2"=n=n ?<lBg?<BgHnHnHnhHnPHn8BgN0N^,_ _XN/,HNVA"-HN8$?. N22?<?. NN^,_ _TN/,HNVA.-HN8$0. rA?N2F?<h0. rA?NN^,_ _TN/,HNVAz-HN8$?. N2<=n 0. rAo0p=@0. S@=@ 0. rAop=@0. @=@ ?<?.N.0.rAo?<?. NN^,_ _TN/,HNV6A@-HN8$=n =n?<'Bg?<BgHnHnHnhHnPHn8BgN0N^,_ _XN/,HNVA-HN8$?<j?. NN^,_ _TN/,HNV8A>-HN8$BnP=n R?< BgBg?<HnHnHnhHnPHn8BgN0N^,_ _TN/,HNVA-HN8$?<?. NN^,_ _TN/,HNV2A-HN8$Hn2Hn4Hn6N2PBgBgNl=nP=nR0.nS@=@T=nV0.nS@=@X0.n S@=@Z=n\0.n S@=@^=n`=nb?<BgBg?<HnHnHnhHnPHn8?<N0?.4?.6NN^,_ _PN/,HNV8A`-HN8$=nP=nR0.nS@=@T0.n S@=@V?< ?< Bg?<HnHnHnhHnPHn8?<N0N^,_ _PN/,HNVAr-HN8$HnHnHnN2lBgN?<NHnHnHnN2P?.Nn?.?.?.?. N*?.N?.N?.NBN^,_ _PNNu/,HNVtA2-HN8$=n-n x?<NHnHnHnxHntN0FN^,_ _\N/,HNVA-HN8$?</. NN^,_ _XN/,HNVA-HN8$0. ?BNnN^,_ _TN/,HNVA2-HN8$N2J@f ?<BN8N2R@?N2N^,_Nu/,HNVA@-HN8$N2rAo(N2S@?N2N2J@f ?<BNN^,_Nu/,HNVA<-HN8$p?BNp=@N2=@0.nn NrRn`N^,_Nu/,HNVtA,-HN8$p=@?<kHnHnHnxHntN0FN^,_Nu/,HNVtA,-HN8$p=@?<kHnHnHnxHntN0FN^,_NuNu/,HNVN8$A-H=nF=n@=nD=nB0.:rA=@=n8=n6=n4=n20.0rA=@=n. =n, =n*=n(=n>=n<-n$?<HnHnHnHnN0F=n"n2"n2"n2"n 2"n 2"n20.N^,_ _O3|NAXNu ;Nu#4 _ g;e;d 94NHy4`Hy4N/t`t _"_0gR@| e.G4$S" ghjebb"*f&"`v&A%S"`l&J`ذ|gb*|f8"94g0$A#4`""94g$A#4`"94g $A#4"`"E;&R"$b Hy4N/Jgr"QHd2S@k"QN _"_0" g;e;d gR@ @mz @ e@E4"fB3@B$`\&A2+@ef "'I`F"3@B$`8$K`ư|f"4#4` |f"4#4` "4#4NHeap overruns stackPointer NILPointer not in heapH`?<,NAT24HAI<Ёr jЂLNu&_4"_jtEh  SB*(y;/,,/  HyhUBkQBBg?<KNANHhf _0"_jp&y;r+t$IS@k,RB  WfSBkBkG$I0(K Vg RQBg`?</LhfNuHi _0"_e /LiNuHy7N//B9i./|i.NuHi _0 @f0"|iip` "_J@jpEi.r4@ BbBS@kQ/LiNuHi _4SBkt82$_rAdd0 @f0"|iip` "_J@jp6ADb6CG0IS@k$eQ/LiNuHi _4k2SAk0"_p6B@bE0)CS@kQ/LiNuHi _2$_r0 @f0"|iip` "_J@jp@kS@kv&J$IRC4(K Vg RQBg`?/LiNuHi _4kF2SAk>0 @f0"|iip` "_J@jp6B@bEi.SBkQ/LiNuString overflow _ hNVf 0(gr"OD@Hd2S@k "Q` _"y;e Hy8~N/N#j6#j2 .f -|8n`-|8n nNнj2f yj6NStack overruns heapH?j: _z gBjDRE"g8jDRE$6HBJBg8HAJAf,HBJBf$ւi EdD.` $HB8`B/L?j:Nu0NvDNHj:|` Hj:| _z f0NjDRE"g`jDREdJgR(`DfxJg<`DxSDbb JgHA8`"tcRЀ`xeWJg(MdD.`B/Lj:Nu09;Nu _3;NBy;Nu[3][][ Abort ]Copyright 1986, CCD and OSS, Inc. , H 6"l : F *&>hT2 r\.  42 , * $"(,P"4*>4@ l*tj,&D0T>0,8&&,F.:FFFF*@4n(>2020nD(."F<".$ B " 4T R"BBD 4@@(&. ,@ ,,2 4 ,2 4 ,2 ,,T  V& ,,  ,6  L    8@F L2`*2 "T &( &0&  >          R  <   , F"L  ( *@ B @ B V  P=nR=n. S -.. ACC DOC d.[ACC PRG d0B *********************************** *** Accessory v1.0 *** *** *** *** by *** *** |\/| *** *** | |urray Levine *** *********************************** Accessory (ACC.PRG) is a program that will let you load all of your accessories out of a folder called ACCS on the boot drive instead of loading them out of the root directory of the boot drive. This helps to keep your main directory less cluttered especially for hard drive owners. Just place ACC.PRG in your AUTO folder or add it to your STARTUP.INF script file for STARTUP.PRG. All accessories will now be loaded from the ACCS folder on the boot drive. They will also get re-loaded the same way after changing resolutions from the desktop with a color monitor. Chances are that this program will not work with any of the accessory loaded programs, but if there is any interest in having it do so just send me Email to either of the following ID's and I will try to enhance to program to work with these other programs. |\/| | |urray Levine Compuserve ID - 74435,1015 GEnie ID - MURRAY `8(oO:3 /<?<NA\?</<?<NNAPJ@fTy ?<ONATJ@g3  09 f3` 3B?< NA\O/ x#!?< NA\O&, ּ֬֬Hz?< NA\OBg/?<1NAJ"z#Nh g O\0|Ng29JAgJ|=gL|Kf>0N:$P"|2<Jg&Jg"fQ 3  3"yN$PJgV<.g`"|2<Jg@Jg<f6Q$P"|Jg` Sy 09 n 3N2 Accessory V1.0 by |\/| | |urray Levine \*.ACC\ACCS\*.ACC\ACCS\  > . S 1.. QMOUSE PRG 2MOUSDOUBPRX k>A3*`\`~HA"P JgJ)j!i#|JL/:NuQM10HC k j"8"WdL/:Nu,OO\,n(n HlHVBg?<JNAO ?<"NNTCP" @"h QM10f?<NAHzd?< NA\Hz?<&NN\BgHx?<1NA|A"P!i#|Jrp(C$1@BQ "A!Q"NuEQuick Mouse (c) 1987 by IMAGIC Grafik. N~*`/<\?< NA\NV/<?<.?<NMP#Bg/<?<1NA/ y#!| _Nu?<"NN#T/<:?<&NN\?<NMT (,#Nu/ g of0#/|`Nh Pf#!| yNHD"y?<*|NTg:g2gax3``g3JygBf:9` g((@9` g (@L"/9NuCSN.CSN.CSN.CSN.CSN.CSN.CVN.9`gCVN.CYN.CYN.9`JgCYN.CYN.Nu/APii*yN _Nu ** Mouse Doubler 2.0 ** By Kyle Cordes $$ Shareware 093088 $$ Read MOUSDOUB.DOC.  6N . S 4.. BLITMODETXT F5BLITTER ACC I6BLT_AUTOPRG L<BLT_GEM C O>TREAD ME R@/* Synopsis: WORD Blitmode(flag) WORD flag; when flag is -1 (0xFFFF), Blitmode returns the current BLiTTER configuration as follows: bit0 : 0 -- blits are being done in software 1 -- blits are being done in hardware bit1 : 0 -- no BLiTTER chip is available 1 -- a BLiTTER chip is installed bit2-14 : undefined, reserved for future bit15 : always returned as 0 when flag is not -1, Blitmode sets the BLiTTER configuration as follows: bit0: 0 -- set blit mode to software(disable BLiTTER) 1 -- set blit mode to hardware(enable BLiTTER) bit1-14 : undefined, reserved for future bit15 : must be zero If an attemp is made to set the blit mode to 'hard' on a system that does not contain a blit chip, the mode is forced to software. */ `N NLK mNf]` m"m -So Q m -SBQ(m)MO*mNN?<N H?<A?<NAX <B@SfLNuNV0,fB?<N \9|N^NuNV0,gB?<N \BlN^NuNVBn`0.RnA0 n m9|9lHlHlHlN N^NuNV=n=n 0.n =@0. n=@Hn?<?,N PN^NuNVN^NuNVN,?<N T=n=n =n =nHnHnHnHn?< ?,N "`HHnHnN PJ@g?.?.?.?.NJPHnHnHnHn?< ?,N 0.g0.fBgN :TNN^NuNVNHlHlHlHlN 9@Hl?,rN\9@HlHlHlHl?<BgN h9|BlBl9|NN^NuNuNV`HlHlHlHlHlHlBgBgHlBgBgBgBgBgBgBgBgBgBg?,?<?<?<NH<=@?<N ^THlHlHlHl?< ?,N0.|g0,°|g`&0,Ȱlf?,?,?,?,N(P``|g|g`(0,ȰlfBgBgBgBg?< ?,N `z`|)g`(0,Ȱlf lg?,NT9|`J`|g`x0,Ȱlfh?,NT?,?,?,?,?,?,0,2,HA?0,2,HA?N?,NT?,N8T9|``|g |g`0,Ȱlfx0,2<Al 0<9@0,2<Al 0<9@?,?,?,?,?<?,Nt HlHlHlHl?<?,N`2`|(g`>0,ʰlf. lfNNxN.`BgBgBgBg?< ?,N `` |g`0,gTHlHlHlHl?,?,?,?,?</?<N?,?,?,?,?<?,N `HlHlHlHl?,?,?,?,?</BgNHlHlHlHl?,?,?,?,?</?<N?,?,?,?,?<?,N& l0.|g0,lf0,gBl`9|0.|g?,?,?,?,N0PBgNT0<fHN^NuNV?<?,N X?<?,N .XBg?,N NX=l=l0,lS@=@0,lS@=@Hn?,N \?<?,N X?<?,N X0,H?0,H?0,2,HA?0,2,HA??,N N^NuNV?Hl?<N4\=@=|g$0<2.|A=@?.?<@N ,X=@N^Nu)I<)J8"/0<NB"l<$l8Nu NV9n0.| A" AA-H=|` nR2.AH0Rn nm/,tN.X0,N^NuNVA)HxA)H|A)HA)HA)HA)HAx)Ht?< NXT9lr0,rN^NuNV9n9n 9n 9n9n9n9n9n9n9n9n9n9n 9n")n$9n(9n*?<NT n,0 n00 n40 n80 n<0 n@00,N^NuNV9n)n ?<#NTN^NuNV9n)n ?<4NfTN^NuNV9n9n 9n 9n9n9n9n9n?<JN$TN^NuNV?<MNT n0 n 0 n0 n00,N^NuNV9n)n ?<NNTN^NuNV9n?<fNTN^NuNV9n?<gNTN^NuNV9n9n ?<hNT n 0 n0 n0 n00,N^NuNV9n9n 9n 9n9n9n?<iN(TN^NuNV9n?<kNTN^NuNV9n9n 9n 9n9n9n?<lNT n0 n0 n0 n 00,N^NuNV?.NT nn0<`?.?<>NLX9@pg0<`0<N^NuNV?.?<LN&XN^NuNV/ A&H`0+ |g/ NBX A"Ҽm?.NT&_N^NuNV0.n l0.`0. N^NuNV0.n o0.`0. N^NuNV n0 nh? n 0 n h?NX=@ n0( nh? n 0( n h?NtX=@ n? n ?NzX=@ n?( n ?(N`X=@ n 0 n 1n0.n n 1@0.n n 1@0.n^Jg 0.n^J|N^NuNV/ &n/ NDXJ@g0<`00+ |g /+NXBk ?+ NTJ@g0<`0<&_N^NuNVH&n0+ |f0<`.0+ |gV0+ |f0<`v0+ |g?<B?+ NhP?/+?+ NP @f0<`@k 0Hѫ`$ k o?<0+D@H/?+ NP'@&Bk0<LN^NuNV nl <`?.?./. ?<BN -@ m .`?<?.B?<BN` -@?<?.B?<BNF -@ nf .Ю -@ `$ nf .Ю -@ `0.g <`b . oHn . /?.?<@N Bg?./. ?<BN ]|9@pg <` `Blp . N^NuNV/.?<IN\N^NuNVBn`&0.A@0nf0.A@BPRn nLmN^NuNV?>.=|0A@"HPgXHf0(>N^Nu)I<)J8)_4NN"l<$l8/,4Nu)I<)J8)_4NA"l<$l8/,4Nu)I<)J8Hl)_ Hl " <sNB"l<$l8NuNV9n 9|Bl9|9nN0,N^NuNV9n 9|Bl9|9nN0,N^NuNV9n 9|Bl9|9nN^0,N^NuNV)n$)n, .мZ)@09|dBl9| n 9PN n 0A)H$A)H,A)H0A)H(N^NuNV9|eBlBl9nNN^NuNV)n (9n 9|9|9|9nNA)H(N^NuNV)n (9| 9|Bl9|9nNnA)H(N^NuNV9n 9n 9n9n9| 9|Bl9|9nN&N^NuNV`4 nH| f?< ?<NX nRH??<NX0. Sn J@fN^NuNV` nRH??<NX0. Sn J@fN^NuNV` nRH??<NrX0. Sn J@fN^NuNVH0&n $KA-H nf?./ N4\=n`L nf?./ N`\=n`. nf?./ Np\=n`-KBn?.NTJ@f`H| f |o@ H-@/./.?.?<@N 9@pHg0<`0,pn/./<?.?<@Nf 9@p @g0<`tRnR -@`R ned` 6.ƼЃ$@ H-@/./.?.?<@N 9@pHg0<`0,pnBlp0.L N^NuC"2"2 2"2"2"22"2"2"22"2x9|Nu Blitter[3] [ |You don't have a BLiTTER! |Check with your local dealer! | ][ Yes Sir! ][0][ |BLiTTER is on, | Turn it off? | ][ Yes | No ][0][ |BLiTTER is off, | Turn it on? | ][ Yes | No ]CON:AUX:PRT: `BLHN N*O*m - ЭЭм!"ҍ¼.A// Bg?<JNA m"m -So Q m -SBQ(m)M*mN lHhNX/,?,N\?<N?<A?<NAXNuNV?N4X9@g0<`0<N^NuNV?.?<LNXN^NuNV/ AB&H`0+ |g/ N*X AB"Ҽm?.NT&_N^NuNV/ &n/ NDXJ@g0<`00+ |g /+NXBk ?+ N,TJ@g0<`0<&_N^NuNVH&n0+ |f0<`.0+ |gV0+ |f0<`v0+ |g?<B?+ NhP?/+?+ NP @f0<`@k 0Hѫ`$ k o?<0+D@H/?+ NP'@&Bk0<LN^NuNV nl <`?.?./. ?<BN -@ m .`?<?.B?<BN` -@?<?.B?<BNF -@ nf .Ю -@ `$ nf .Ю -@ `0.g <`b . oHn . /?.?<@N Bg?./. ?<BN ]|9@g <` `Bl . N^NuNV/.?<IN\N^NuNVBn`&0.A0nf0.ABPRn nLmN^NuNV?>.=|0A"HPgXHf0(>N^Nu)I)J)_NN"l$l/,Nu)I)J)_NA"l$l/,NuNV`4 nH| f?< ?<NX nRH??<NX0. Sn J@fN^NuNV` nRH??<NX0. Sn J@fN^NuNV` nRH??<NRX0. Sn J@fN^NuNVH0&n $KAH-H nf?./ N4\=n`L nf?./ N`\=n`. nf?./ Np\=n`-KBn?.NvTJ@f`H| f |o@ H-@/./.?.?<@N| 9@Hg0<`0,n/./<?.?<@NF 9@ @g0<`tRnR -@`R ned` 6.ƼЃ$@ H-@/./.?.?<@N 9@Hg0<`0,nBl0.L N^NuCB"2"2 2"2"2"22"2"2"22"2x9|@NuBLiTTER is on now. You don't have a blitter chip! CON:AUX:PRT: #include #include #include main() { int blit_st, flag; int choice; appl_init(); /* check the blit mode */ blit_st = Blitmode(-1); /* get blit state */ if (!(blit_st & 0x0002)) { form_alert(1,"[3] [ |You don't have a BLiTTER! |Check with your local dealer! | ][ Yes Sir! ]"); exit(); } /* toggle blit mode */ if ((blit_st & 0x0002) && (blit_st & 0x0001)) /* blit is done in h/w */ { choice = form_alert(2, "[0][ |BLiTTER is on, | Turn it off? | ][ Yes | No ]"); if (choice = 1) { flag = 0x7ffe & blit_st; /* set bit 15 and bit 0 to 0 */ blit_st = Blitmode(flag); } } if ((blit_st & 0x0002) && !(blit_st & 0x0001)) /* blit is done in s/w */ { choice = form_alert(1, "[0][ |BLiTTER is off, | Turn it on? | ][ Yes | No ]"); if (choice = 1) { flag = 0x7fff & (blit_st | 0x0001);/* set bit 0 to 1 and bit 15 to 0 */ blit_st = Blitmode(flag); } } } READ.ME If you don't have a ST with new ROM set, you do not have to read this now. This package includes three programs: BLITTER.ACC A GEM accessory to toggle BLiTTER mode BLT_AUTO.PRG A TOS program to be run in auto folder The reason I wrote these programs is that when a program is run as an auto-boot program from the AUTO folder, the BLiTTER chip is not turn on. I add the BLT_AUTO.PRG to the auto folder with MULTIANI.PRG, the famous multiple birds demo and the disk is self-bootable. This is very useful for demo disk and bringing it around in computer show. The BLITTER.ACC is very useful when you want to check a GEM-based program to see how much the BLiTTER can improve. Note that the program must have menu bar in order to access the accessory. I do not know why the blitter chip is not turn on when in auto-boot and before GEM is loaded. DESKTOP decides if BLiTTER should be turn on or off from the DESKTOP.INF file. If no DESKTOP.INF is presented, the default is on. If you have a DESKTOP.INF file saved under the old ROM set, the BLiTTER is turn off. For example: #a000000 #b000000 #c7770007000600070055200505552220770557075055507703111103 #d #E 98 02 ^ BLiTTER is OFF, if ON it will be #E 98 12 For programming information: the BLiTTER mode is controlled by a new XBIOS function, Blitmode(). For further information, check with ST X-Press October issue. C source code written in Megamax C is included. Note that one has to declare the Blitmode() in the OSBIND.H as follows: ... #define Blitmode(a) xbios(64, a) ... Jinfu Chen GEnie: J.CHEN CIS: 72327,2434 BBS: MANIAC, (207)854-2687 Voice: (207)846-6124 . S B.. BUSYBUD ACC lT C`$N N K mNf]` m"m -So Q m -SBQ(m)MO*mNN*?<NH?<A?<NAX <B@SfLNuNVNHl?,zN\=@=|=|`BnHnHnHnHnHnHnBg?<Hn?.?.?.?.?.?.?.?.?.?.?N4X9@xg0<`0<N^NuNV?.?<LNXN^NuNV/ A&H`0+ |g/ N*X A"Ҽm?.NT&_N^NuNV/ &n/ NDXJ@g0<`00+ |g /+NXBk ?+ N,TJ@g0<`0<&_N^NuNVH&n0+ |f0<`.0+ |gV0+ |f0<`v0+ |g?<B?+ NhP?/+?+ NP @f0<`@k 0Hѫ`$ k o?<0+D@H/?+ NP'@&Bk0<LN^NuNV nl <`?.?./. ?<BN -@ m .`?<?.B?<BN` -@?<?.B?<BNF -@ nf .Ю -@ `$ nf .Ю -@ `0.g <`b . oHn . /?.?<@N Bg?./. ?<BN ]|9@xg <` `Blx . N^NuNV/.?<IN\N^NuNVBn`&0.AH0nf0.AHBPRn nLmN^NuNV?>.=|0AH"HPgXHf0(>N^Nu)ID)J@)_< |a6RGk0Gg`a(0GVfA1G<ap??<?<NM\Nu??< NMXNuHn 2$4BBNuAd RdQRB BbABJk 0NuJBjBBXNu 0Nu 2$NuE`B<gJEgEjCDEDF Fe( F dF8BCHC` F0bFHC8v` HD8HDkDуdQRBNuDdBDA@kgAр[SBk0NuJlJBk&Nu0g H@rB JkЀ[` BbNuJBj prtNuHPAJgPpr$< _Nup _NpNNuCDEJEgJBgJjBEBQ*HE?<>0rHGGdHGGdSWDуdi\?<>0rHGGdHGGdSWDуdiN?<>0rHGGdHGGdSW2 H@N?<,>CEdGH@0r`?<`JBgVB&8TTDуdQRBNuDAр&AdRAрAрDуNuprt|=|  g +g -f .g20  b 0e 9b da`RF` .f 0e 9b dajSF` Eg efX +g -f 0e 9oSH`00  b&Hz0  b E Do`HJjDDDS4</NJFkSFk&aQN`Ha"FFaQL8N@6.JgtBnNupr$<NuJBk4<rpAC v JBgJjv-| Bb BkH>aaNRFBdL8?N@<JBga2SF Be BgQRB`ApdR e <rRF&0xafEv+0JFjDFv-Hƌd0BFHF 0HF0ANuprt|`2:HQ A dNAXJ@jNNuNJ@g,A,BBgHQ?<=NAP FJ@k??<>NAXtNutNuvN)@p `H@)@prtNAHplrtNB 2pNpNpapaprapalpalpalpaTpaTpaTBp'a?<NNT@B){L9|0<rtNpapap9@p`pvNv`v`vj`v `v`v`v`?0<}N& ?<NNC`&?<NNT"@ C <}N`N*( INA)H @depd ae zb QB DNA\)H @ e` ae zb \gQBA BhNpZNA BP"`#|}N A"H0,tg"Hg \f`A\fS A ENAR@H`2QNu2(g"P@g2RADAH""l`r2oZAe 1@#)I`Nuk1@Nup NNv"l`dpNAtrdJhk\QpaNH ld$l`"Hg0 k&@ S`g k#&@0+S@H3 Q&f)I`LNuApNN$N^$BS@kH2QNupC ұd"X0Pg"RA$D#Nu"X0Nu _0HpN _0HpNp"_0HqNjE ұeHHQ0)N$_$ZR@H`2QNu$Y0gHR@@"D%$X0P2g# R@%NupE $ $X0dP.gRG,D%pr Y2dP.gRG,D!p4Ae4v`VfANuNVHNu2)A IJAfr4(Ae*RBBc0*SA?N^$E$R`QˈN ENup`(* 0(iN^$E 4R`Q$D 4R`QˈN DN ENupA` p9`p:`p;?N>J@fCAHPBHQ?NA\ _JjNNuH&N6րN6jNudd2d"d""d""""d""""""""dB` """"""""""""""""""""""""""""""""QNu"p`tdbDA0Hg<<R@f|0HN^*JFk*HQ/??<?NAXfX ENuJkpNp`p`\F( &I.` ??<NMXJ[j E&DNuak NupNuakfpNupNtddA0oH?<?B?<BNA Jk.,?<?B?<BNA *kBg?/?<BNA JkNuNp`pNu)H9@Jp4NP'J&f H LNu P&NuQ'` J,'fJ,&gHA#ȇeC! B,&LNu-W)K20, 8k8@ gJl&f"Nu , 8g"P 8 @/, 8NX  8fQ 8J,'gNupB <``L@ H)l26)z @W , Jf`CfSHj-D@Hd0H@H 0H@0`fSC\fS , @a"C\fApNNNxHP?< NA\NuH@aa/a a Nu@0 9c^Nu| PC>$Error # ][Abort]\f.B &lX)K\)ld` lp ,BQjNup(NV"l`Yd&-KNNv"l`YepN&#k"C-KN"Cփk փk2##`փk"`2`& $Y8gHRDD*D%H8#$c2g# HRDD%H`C ҳfHP0(N^$W$RR@H`2Q"H _$l` dd" $X&0BP6Y&|Hg R@@%E ҳeHQ0)N$_$RR@H`2QNu$Y 0P1@Hg R@@%NuNv$l` epZNN PUBLISH.WIDNNJBfNN PUBLISH.WIDNrN\PUBLISH\GEMSYS4N~N PRINTER.SYSMNNJBfNdN PRINTER.SYSMNrN\PUBLISH\FNTSELCT4N~N>N&8FNTSELCT.APP VER 1.1 SELECT FONT/PRINTER FILES:N\N\PUBLISH\FNTSELCT\*.WID HPHmA""_N(HmA "_NJBfNANNH <r$<L8N\N+@(Hm -(r"_NHPN.SYS"_N2CN4HmN\PUBLISH\PUBLISH.WIDHPANXN>N\N>HmN* written to disk as \PUBLISH\PUBLISH.WID !"_N2NPN\N>N\N\PUBLISH\FNTSELCTtN~HmN\PUBLISH\GEMSYS\PRINTER.SYSIHPANXN>HmN1 written to disk as \PUBLISH\GEMSYS\PRINTER.SYS !%"_N2NPN\pPNNx"_AN"_A NpINHPA r"_NXpONHPAr"_NXpN+@$ -$ }nNpN&p"<}NRNP <$Ѝ/ <} _`pN&p"-$NRNPpNpNN~NxT~' FNTSELCT.APP VER 1.1 18 MAY 88 ' SELECTS *.WID & *.SYS (PRINTER.SYS) FILES ' FOR PUBLISHER ST ' ' ERASE OLD PUBLISH.WID & PRINTER.SYS ' If Exist("PUBLISH.WID") Kill "PUBLISH.WID" Endif Chdir "\PUBLISH\GEMSYS" If Exist("PRINTER.SYS") Kill "PRINTER.SYS" Endif ' ' ' SELECT *.WID & *.SYS, choice *.wid = Ch.wid$, choice *.sys = Ch.sys$ ' Chdir "\PUBLISH\FNTSELCT" Print "FNTSELCT.APP VER 1.1 SELECT FONT/PRINTER FILES:" Fileselect "\PUBLISH\FNTSELCT\*.WID",A$,Ch.wid$ If Ch.wid$<>"" ' IF CANCEL IS NOT SELECTED L.ch%=Len(Ch.wid$)-6 Ch.sys$=Mid$(Ch.wid$,1,L.ch%)+".SYS" ' ' COPY CHOICES TO WORK FOLDERS ' CH.WID$ TO \PUBLISH\ CH.SYS$ TO \PUBLISH\GEMSYS\ ' @Filecopy(Ch.wid$,"\PUBLISH\PUBLISH.WID") Print "" Print Ch.wid$+" written to disk as \PUBLISH\PUBLISH.WID !" Print "" Chdir "\PUBLISH\FNTSELCT" @Filecopy(Ch.sys$,"\PUBLISH\GEMSYS\PRINTER.SYS") Print Ch.sys$+" written to disk as \PUBLISH\GEMSYS\PRINTER.SYS !" Pause 80 ' ' that's all folks ! ' Endif Procedure Filecopy(Old$,New$) Open "I",#1,Old$ Open "O",#2,New$ L%=Lof(#1) While L%>32000 Print #2,Input$(32000,#1); Sub L%,32000 Wend Print #2,Input$(L%,#1); Close #1 Close #2 Return FNTSELCT.APP Ver 1.1 MAY 18, 1988 (corrects bugs from ver 1.0 and moves printer.sys files) UTILITY FOR PUBLISHER ST - PRINTER SELECTOR (HARD DRIVES) (PUBLISHER ST is a product of TIMEWORKS, INC.) In order to use different printers with PUBLISHER ST (ver 1.1), you have to install it in different partitions for each printer resolution. This is grounded in the fact, that PUB ST uses a different ASSIGN.SYS file for each printer configuration corrosponding to the various printer fonts required for each printer. After, installing PUP ST on two separate partitions (one for my NEC P6 - 180 dpi; the other for 360 dpi) I had alot of duplicate files devouring too much disk space. There had to be a way to eliminate all those duplicate files. I use SUPERBOOT (ver 3.2) for boot up - so selection of the different ASSIGN.SYS was not a problem. The relatively minor problem really involves the font reference file PUBLISH.WID file created by FONTWID.APP as the last step in installation and the different printer drivers stored in the GEMSYS folder. Dusting off my Gfa manual, I whipped out a simple file selector which copys the PUBLISH.WID and PRINTER.SYS files needed for the printer you plan to use. One might ask, - well what about the fonts? All the fonts can be kept in the GEMSYS folder - the ASSIGN.SYS file used on boot up tells GDOS which fonts to keep track of and ignores all the others. SET UP: 1. Install PUB ST on different partitions for each printer you want to use. 2. Rename the ASSIGN.SYS files so you can identify them for each printer installed (EX: NEC180_1.SYS). Use 8 characters for the name. Back them up on floppy for safety. *** NOTE: You must change the path line using a text editor to reflect the correct path if installed on a different partition than you plan to use. 3. Rename the PUBLISH.WID files so you can identify them (EX: NEC180_1.WID). Rename the PRINTER.SYS file for each printer using the first six letters of the same name as its corrosponding *.WID file (EX: NEC180.SYS). Back them up for safety. 4. Create the folder FNTSELCT in the directory PUBLISH of the partition you want to use. COPY all the *.WID files and renamed PRINTER.SYS files into this folder. 5. Copy all the printer fonts from the different GEMSYS folders into the folder GEMSYS of the partion you want to use. Erase the extra installations of PUB ST. *** NOTE: The screen fonts will be common for each installed printer. 6. Copy the program FNTSELCT.APP from this archive into the folder PUBLISH of the partition you want to use. TO RUN: 1. On boot up use PD file selector like SUPERBT to select which ASSIGN.SYS file to use. 2. Open folder PUBLISH; double-click on FNTSELCT.APP. Pick the *.WID file to be used and written from the folder FNTSELCT to folder PUBLISH. Subsequently, it copies over the liked-named printer driver into the folder GEMSYS. 3. Run PUBLISH.APP. 4. MUST REBOOT when changing printer configurations so GDOS picks up the different ASSIGN.SYS file. SAMPLE CONFIGURATION: <..> shows folder. C:\ SUPERBT.PDC NEC180_1.SYS (RENAMED ASSIGN.SYS FOR NEC P6-180 DPI) NEC360_1.SYS (RENAMED ASSIGN.SYS FOR NEC P6-360 DPI) SUPERBT.PRG GDOS.PRG <* other folders *> DESKTOP.INF ASSIGN.SYS (LAST RENAMED COPY SUPERBT SELECTED) E:\ ===> - ALL SCREEN FONTS NEEDED ===> - PRINTER FONTS (360 DPI) ===> - PRINTER FONTS (180 DPI originally installed on different partition then copied over). - PRINTER.SYS (Last written printer driver from folder FNTSELCT) ===> (create this folder) ===> NEC180_1.WID (RENAMED PUBLISH.WID FOR 180 DPI or your printer 1). ===> NEC360_1.WID (RENAMED PUBLISH.WID FOR 360 DPI or your printer 2). ===> NEC180.SYS (RENAMED PRINTER.SYS FOR 180 DPI or your printer 1). ===> NEC360.SYS (RENAMED PRINTER.SYS FOR 360 DPI or your printer 2) ===> FNTSELCT.APP (selects which *.WID file in the folder FNTSELCT to copy as PUBLISH.WID) FONTWID.APP PUBLISH.APP (main prg) PUBLISH.WID (font reference file copied from folder FNTSELCT by running FNTSELCT.APP Any questions or hints, fire them to my mailbox DILITHIUM on GEnie, or 72637,2407 CIS. - BRIAN HUNT . %S W.. GD_SWTC2PRG sXlGD_SWTCHDOC s`!`8Qt` Efv*oM m HPHUBg?<JNA(m)m -:gS)@ -OK1PC#HNHx?<HNA@)@l/?<HNA)@h&@)@XЬl)@d)@`ARCpr Ѝ"QHNFALNHz2?< NA\pdAxr0XQ)K\NN*666666JrBjNuHz?<&NN\NPCAp$L Qp N<9lrBlJpNN< |a6RGk0Gg`a(0GVfA1G<ap??<?<NM\Nu??< NMXNuHn6 2$4BBNuAd RdQRB BbABJk 0NuJBjBBXNu 0Nu 2$NuE`B<gJEgEjCDEDF Fe( F dF8BCHC` F0bFHC8v` HD8HDkDуdQRBNuDdBDA@kgAр[SBk0NuJlJBk&Nu0g H@rB JkЀ[` BbNuJBj prtNuHPAJgPpr$< _Nup _NpNNuCDEJEgJBgJjBEBQ*HE?<>0rHGGdHGGdSWDуdi\?<>0rHGGdHGGdSWDуdiN?<>0rHGGdHGGdSW2 H@Nz?<,>CEdGH@0r`?<`JBgVB&8TTDуdQRBNuDAр&AdRAрAрDуNuprt|=|  g +g -f .g20  b 0e 9b da`RF` .f 0e 9b dajSF` Eg efX +g -f 0e 9oSH`00  b&Hz0  b E Do`HJjDDDS4</NJFkSFk&aQN`Ha"FFaQL8N6.JgtBnNupr$<NuJBk4<rpAC v JBgJjv-| Bb BkH>aaNRFBdL8?N<JBga2SF Be BgQRB`ApdR e <rRF&0xafEv+0JFjDFv-Hƌd0BFHF 0HF0ANuprt|`2:HQ A dNAXtNutNuvN|)@p `H@)@prtNAHplrtNB 2pNzpNnpapaprapalpalpalpaTpaTpaTBp'a?<NNT@B){L9|0<rtNpapap9@p`pvN|v`v`vj`v `v`v`v`?2(g"P@g2RADAH""l`r2oZAe 1@#)I`Nuk1@Nup NN"l`dpNAtrdJhk\QpaNH ld$l`"Hg0 k&@ S`g k#&@0+S@H3 Q&f)I`LNuApN&Nv$N$BS@kH2QNupC ұd"X0Pg"RA$D#Nu"X0Nu _0HpN& _0HpN&p"_0HqNLp"_0HqNLE ұeHHQ0)NT$_$ZR@H`2QNu$Y0gHR@@"D%$X0P2g# R@%NupE $ $X0dP.gRG,D%pr Y2dP.gRG,D!p4Ae4v`VfANuNWHNuNVHNu(* 0(iN$E 4R`Q$D 4R`QˈN< DN< ENu, N<* ( FN< EJ@fC JDfA E@( BE, BHPHQBg?<VNA F DJjNNuH&NրNjNu??<NMXNu?k?<NM"UAf J@fH@NuDW?<NMXNup`pNu)H9@Jp4NJf`CfSHj-D@Hd0H@H 0H@0`fSC\fS , @a"C\fApNNN&HP?< NA\NuH@aa/a a Nu@0 9c^Nu| PC>$Error # ][Abort]\f.B &lX)K\)ld` lp ,BQjNup(NV"l`Yd&-KNN"l`YepN&#k"C-KN"Cփk փk2##`փk"`2`& $Y8gHRDD*D%H8#$c2g# HRDD%H`N0N N>N N' ///////////////////////////////N>N Nr / GDOS/HP <N"_N^HPNf Switch 1.1 /"_N^N2N>N N% / /N>N N~$ / V ertical /N>N Nr / HP <N"_N^HPNr 1988 S ofteque /"_N^N2N>N N~" / S ystems /N>N N! / //N>N N~ / All Rights Reserved /N>N N~ \ \N>N N! \ Shareware Fee: $10.00 \!N>N N~" \ \N>N N# \ Vertical Softeque Systems \!N>N N~$ \ P.O. Box 383 \N>N N% \ Canonsburg, PA 15317 \!N>N N~& \ \N>N N' \ 412-745-5769 \!N>N N~( \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\N>N N>N NChecking Auto Folder...\N>Nf\AUTO\GDOS.PRGNFNJBfN"N N>N NrDo you want to use GDOS\HP <N"_N^HPNr now (Y/N)?"_N^N2N>ANXHmpyN"_NTpJBgp/HmpYN"_NTpJBgp/HmpnN"_NTpJBgp/HmpNN"_NTpJBgp$fN|N N Aborting...N>pNN&HmpNN"_NJpJBgp/HmpnN"_NJpJBgp$fN"Nf\auto\gdos.prgHPNf\auto\gdos.prz"_NN NGDOS is now disabled...\N>N N>ANXNf\AUTO\GDOS.PRZNFNJBfNN N>N NrDo you want to use GDOS\HP <N"_N^HPNr now (Y/N)?"_N^N2N>ANXHmpyN"_NTpJBgp/HmpYN"_NTpJBgp/HmpnN"_NTpJBgp/HmpNN"_NTpJBgp$fNJN N Aborting...N>pNN&HmpYN"_NJpJBgp/HmpyN"_NJpJBgp$fNNf\auto\gdos.przHPNf\auto\gdos.prg"_NN N~GDOS is now enabled...N>N N>ANXNN N>ANXN N>ANXN&NANpN F$fNNNHANL8N vN N&<x*<NANAN&<x*<NJBfNN N~Timeout, Aborting...N>ANX`\pNNCNN~N N3Thank you for your contribution to this shareware!!N>pNN&N~N&vdzbd*dzbb &d( ////////////////////////////////// / GDOS Switch 1.0 / / / / S ystems / / (c) 1988 S ofteque / / V ertical / / / / All Rights Reserved / \ \ Documentation for GDOS Switch 1.1 \ Shareware Fee: $10.00 \ \ \ July 26, 1988 \ Vertical Softeque Systems \ \ P.O. Box 383 \ D.C. Signorini, Author \ Canonsburg, Pennsylvania \ \ 15317 \ \ 412-745-5769 \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\Disclaimer: Vertical Softeque Systems makes no implied claims or warranties as to the suitability of this software for any particular purpose. Vertical Softeque Systems is not responsible for incidental and/or consequential damages incurred while using this software. Vertical Softeque Systems also reserves the right to upgrade or otherwise alter this product and/or documentation without notification of any person of such changes. Use this software at your own risk. This software is shareware. It may be distributed freely provided that no part is changed or altered. You are not obligated to pay for it. BUT if you have found this program to be very valuable, then please donate $10.00 to: Vertical Softeque Systems P.O. Box 383 Canonsburg, PA 15317 Your support is appreciated and will register you for free information concern- ing this product and free updates. With your payment, please include any suggestions concerning this product...Thanks! Gdos is a registered Trademark of Atari Corp. =============================================================================== Version 1.1 update 8-4-88: A few changes have been made in version 1.1. Gdos Switch will now look better in LOW rez. A slight oversight on our part. Forgot to compensate for 40 column display. Ooops... This change was made for you people who like to turn on the ST and walk away to let your acc's boot: Gdos Switch will now timeout after 10 seconds if no key is pressed. No changes will be made at all. This is so that you do not have to wait to press Y or N at boot up...I found out that even I am in the habit of booting my ST and going to get a cup of coffee only to return to find the Y/N prompt staring me in the face...So, now, you can walk away and no changes will be made in the Auto Folder. Remember, if you find this program usefull, please support shareware! =============================================================================== \\\\\\\\\Introduction: GDOS Switch is one of those utilities that will collect dust on an old utilities disk if no one has a use for it. Granted, there may be very few who will have a use for it, however, we needed it, so, here it is. What exactly is GDOS Switch? Well, if you are a hard drive user, you know that if you boot off of your hard drive, you have only one AUTO folder from which you load all of your favorite utilities. You will always have this AUTO folder and can not escape its contents unless you manually go in and change the program extenders to abort a program's execution OR delete the file from the folder all together...(a pain if you have to later use it...) Let me transgress for a second. Any TOS program with the extender *.PRG or *.TOS placed in the AUTO folder on the boot drive will be run at boot-up. These programs, if more than one is present, will run in THE ORDER IN WHICH they were placed in the AUTO folder. If you copy a file called RUN_ME_2.PRG into an AUTO folder before a file called RUN_ME_1.PRG, the RUN_ME_2.PRG file will be executed and then the latter. So, programs placed in the AUTO folder will be executed in the order that they were written in the AUTO folder. Enter GDOS.PRG. GDOS.PRG is a handler that is used in several programs available for the ST such as Degas Elite, Desktop Publisher, Word-up, and several others. GDOS.PRG is placed in the Auto Folder and is run upon boot-up of the ST. This program searches for a file called ASSIGN.SYS that is on the root directory and loads its contents into memory. The ASSIGN.SYS file will tell GDOS.PRG where on the disk(s) and drive(s) to find the system fonts used with the programs mentioned above. Without GDOS.PRG, these programs will be unable to display character fonts to the screen or print them to a printer. Without getting into more detail about GDOS.PRG, let me explain the need for GDOS Switch. As mentioned, if you are a hard disk user, you may be using your hard disk as a boot drive. In that case, if you have an AUTO folder on that drive (which you probably do) you may have several files that you need for several programs on your hard drive. GDOS.PRG may be one of them if you have installed any of the above mentioned programs on your hard drive. But, what if you are booting your Hard drive, but don't want to use any of the programs, and are going to do some simple word processing or some telecommunicating? You may not want GDOS.PRG lingering in the background, or you may not be able to afford the small amount of memory it takes up while resident. Up until now, the only solution was this: You had to change the name of the GDOS.PRG in the AUTO folder to something like GDOS.PRX or GDOS.PXX. Remember, TOS looks for the extender on the files in the AUTO folder. If it finds a *.TOS or *.PRG file extender, it will run that program. Otherwise, in the case of GDOS.PXX, the file is ignored and the next bootable program is executed. GDOS Switch will prompt you at boot-up if you want to use the GDOS.PRG if present in the AUTO folder. If you choose "Y" when prompted, the program will automatically rename GDOS.PRZ to GDOS.PRG if it is already not the case. After this, it will load GDOS.PRG. If you choose "N" at the prompt, GDOS Switch will rename the file to GDOS.PRZ and will cause TOS to ignore the file and GDOS.PRG is not loaded. Simple, right? The only complicated thing you have to do to have this program work correctly is to place the GD_SWTCH.PRG file into the AUTO folder BEFORE you copy GDOS.PRG into the AUTO folder. Remember, TOS executes files in the order you place them into the folder. SO, if GD_SWITCH.PRG is copied in first, it has a chance to beat GDOS.PRG to execution and will rename it as you choose. The easiest way to insure that you copy the files into the AUTO folder in the correct order is to copy the entire folder to another disk. Then, delete the contents of the AUTO folder on your boot disk and copy the files back in from your back up disk in the order you want them to run. But remember, you MUST copy GD_SWTCH.PRG into the folder BEFORE GDOS.PRG! That is all there is to it. By the way, if you hit any other key than Y or N (or y/n) the program will abort, and the GDOS.PRG will remain unchanged. //////////Conclusion: We are currently working on an update to this program. In our future version, you will be able to install different ASSIGN.SYS files to call up different fonts. This will be very useful since programs such as Word-up and Degas take many GEM fonts but are limited by the amount of memory in your machine. So, with the vast numbers of fonts available today (all of the ones coming over from the Macintosh world) you may want an option to load a certain batch of fonts for your particular Desktop Publishing session. Keep your eyes open for this update. But remember, we, and others, work hard to offer quality solutions for the ST such as this. Support your shareware authors as much as you can. Shareware keeps the ST community going! So, your support is needed! We hope that you like this program and that it finds its way into your AUTO folder. Any questions or comments can be made to the above listed address. I can also be reached on: Compuserve: 72327,1060 GEnie : DC.SIGNORINI Enjoy!!!!! D.C. (Derek) Signorini Vertical Softeque Systems P.O. Box 383 Canonsburg, PA 15317 412-745-5769 . -S i.. COMMAND TOS s jJCDESKENV TTP s {e#GEMBOOT DOC s #GEMBOOT INF s oGEMBOOT PRG s -7GEMFRL TOS s `8A&*O.|*m - ЭЭм// ??<JNA /<AatX MB"HB |@ 80<  fR`Jg R@R  nJgB`/ /<@?N BBBgNA"/0<NBNu#ANA/9ANuNVBBJlDRBJ lD RB0. -@0.2. An=@ .gDN^NuNVH?BCB..,. f#A <`hlDRCJlDRCn8fzB`0l :HGH`xe`Jge`|fD#A D`#A JLN^Nu o AdpNu#ABNuNVJy96lB@`pN^NuNVN5NмAN^NuNV .a m .z n . H|`. HN^NuNVH*n` H>aRJf .JL N^NuNVH *n(n `Jf JL0N^NuNV`R n  g .N^NuNV>N4N^NuNVHag(<fp` `<f` <fp` a|fB@JLN^NuNVH. H>N4aJLN^NuNVH*n` H>N4JfJL N^NuNV.aafN^NuNV.aJ@gp`aB@N^NuNV.9aN^NuNVHagHJLN^NuNVHa>aJHJLN^NuNVH *n(n JUgSUS.9a>JL0N^NuNVBn-n` . m .m.H` nBB@`.Q/UaX` nB nN.a`-nBn nN`l`.Q/UaTXJnf`TJnf4.9/.N8X.9N8=@HЮ-@.an``H |:VrW hN`&0.n l.H"n>N4RRna@| f nB./<9N8X0.N^NuNVH*n Jl- .D-@~ `/< /NP.o`H992f.RH992f 92`H>a|=@f./ aX(@`<Af(. n0H/ahX./ aX(@`<CfBW/ N6bX`RJf`<DfN5NмA`<Ef$.0y9:/aX./ a>X(@`Z<Pf.9=/ a&X(@`B<1m4<9n.Sn0."n2Al n2n./ aX(@`92R`JfB .JL0N^NuNVa:J@gN*.a`aaJ@gN J@g Sy94p``B@N^NuNVB. /&N8X-n./.aX`BW?.$/.N6@\Bn"A-H`dR./<?.$N5\gJn"f>$N5p```0`& n g$ n  g n  gRRn" n"m>$N5 .fp` nB././/aX .aJ@gp`D.&/aXJy94g Sy94p`BW/&N5X=@$lpN^NuNVnNJ@gp`j|v-y9BA#9`4N*.*?</vaV\a./vaVXJy94g#9Sy94B@N^NuNV H .м,-@ .9=/<9 n /N PB.&Bn nfF.:NJ@f(Sy96.&/<:aXJy94f\Ry96.&a`H=|$`0n$ *P`RJf Rn$0.S@n$n.& n /(alXJL N^NuNVH (n`N*n `(<am<zn H|`HHAfRRJfJf./.N8X`RJfRJfJL0N^NuNV./. /.N8P/N8:XN^NuNVBW/.N5X=@lp`` >N5B@N^NuNVH*n n (:g N:` n R n ;g n Jf -:g -\g\././ aJP .JL N^NuNV././. /.av .a/.N6X=@`Bn`A-H`R nJg n .f0. @"|:./.N8dXJ@fD0.м: @ hfJnf&0. @"|:00=@nl=n`Rn nmlN6=@JngR0.`P-|:=|`Z-|:=|`J-|:=|`:-|:=|`*-|:Bn``|g|g|g|g`././. /.a( 0.N^NuNV n (:fJnf .:/. /.aP.aJ@gx.:/. /.a|P.aJ@gT.:/. /.a^P.a|J@g6.:/. /.a@P.a^J@g.:/. /.a"PB@`p`p`Z`X-n`2>/. /./.a =@g0.`*.a-@ nJf.:/. /.aPB@N^NuNV-n `R nJf` n \g n .gS . fJnfD./<:N8dXJ@f..; /./. /.aj J@gp`B@``./<:N8dXJ@g,./<:N8dXJ@g./<:N8dXJ@f*.; /./. /.a J@gp`B@``>/./. /.a N^NuNVH*n \fJ-g -:fJ-g -\fJ-gB@`pJL N^NuNV.;6/. /.N8P/N8:XN^NuNVH*n` *g ?fp` `RJfB@JL N^NuNV.=QN:N^NuNV>N4Jy;:g>v`>wN4B@N^NuNVN<}NTa.N5Hr4.aHgB@`"` >N5H <.adp`l-|;<`T. n/N8dXJ@f:-n /.//. NX/NP/ n hNPp`P n P  fB@JLN^NuNV.N.=NJn g.;`.;N:N^NuNV nJPfp` n hH|=@`SnpH>NJnfB@N^NuNVB@N^NuNVH n Pg.=N:`L n*h.NJ@g.=N(.N:`" n. / N6XJg .=N:B@JL N^NuNVH*n./<;6N8dXJ@f.=a J@fB@`<.NJ@g.=N.N:``.aJ@g .NJ@gB@JL N^NuNV. /./<aPN^NuNV.a.N5V> /.N6XJgB@`pN^NuNV.?</.a\J@g(.N(J@f.>N(J@fB@`p`b``Jn g".>N(J@f.N(J@gp`8NT.N5Jg".>N.NNTp``B@N^NuNVBW/.aLXN^NuNV. /./<>aPN^NuNV0.|A<>RW/N6bX.>.N.E`.N:N^NuNVN5N>aN^NuNV n (:fh nJ(f nH>Wad`t`DN5N=@ nH>aJ@gp`P.TN5=@>N5HJnfB@`,`.N5JfB@`.N.>GNpN^NuNV nJPfa:``. /./<aPN^NuNV.N5Jg.N5JfB@` `.>[N.NNTpN^NuNV. /./<aDPN^NuNVH./.N8dX>. /<>jN8dXJ@fJGgB@`p`L`J. /<>lN8dXJ@fJGmB@`p`(`&. /<>nN8dXJ@fJGnB@`p``B@JLN^NuNVJng0. ` Jn gB@`pJ@g*.N. n2n /0NX``B@N^NuNV n ./<>pN8dXJ@f:./. ?< n /( NXJ@gBg`?<?.ad `N`L n PlB@`>./. ?< n /( n /( n /(a ??.a N^NuNVH n PlB@`v n./<>wN8dXJ@fHBG`0G2GRI!iRG|m n0"nSQ. /.Bga\``. /.?<a\JLN^NuNVH nJPg~ n !|.: n/(/. NP.N n Pf n Bh`8BG n*h n (h`RGݾ|m.  n /(NXB@JL0N^NuNV nJPfp` n hH|=@`8Sn n Jhg0. N.  n /(NXJnfB@N^NuNVH*y90<``.{N 90NNT*U 99W`BW/. N5XN^NuNV n<./<N ..N.>N.N.>N.N.>N.N.>N:N^NuNV nJPfN<.A#9 n*h`d(M`RJg !fJgB@`p=@B.Nl*@.N J@f2. / NXJy94gSy94`Jng ` R*@Jf#9B@JL0N^NuNVH BGaJ@f.>N:J@gp`f-|;<`D(|<` Jf(|<`Jf.N@|Yg .Nf.H>N4NT .YgB@`pN^NuNVaV.N@|0m. .9n&.H|394.H>N4`` .Am* .Zn".H|394.H>N4`h`b . g^ .fRNT-y9-|? A#9ab#9Jy94gSy94fNTax.Ry94`B.? n/(N8dXJ@g n.N7y94`a` J@g|g`B@N^NuNVN>/<; a~XN^NuNVNJ@gB@``.N n.N:N^NuNVH n*h nJPf a`` n Pg.a``~./<;N8dXJ@fSy96``./<;N8dXJ@fRy96`D./<;N8dXJ@fBy96`(./<;N8dXJ@f 396` .a`B@JL N^NuNVH n*h nJPf$Jy98lBW`>/<;2aTX`x`r./<;N8dXJ@fSy98`T./<;N8dXJ@fRy98`8./<;N8dXJ@fBy98`./<;N8dXJ@f398B@JL N^NuNVH n*h nJPgn./<;N8dXJ@g./<;N8dXJ@fBy;:a`J`6./<;N8dXJ@g./<;N8dXJ@f3;:av`>;:/<;&a8XJL N^NuNV n Pf0 n-h n ;fR./<9=N8XB@`D`B.?N(J@f0J99=fB@`pHм9<.N(J@fNTJ@fB@`pN^NuNV.?"N:Nd|f n JgaB@N^NuNVHBD>. n ;fJygB@`p3`BW/.N5X=@l.?N5Jyg JEg nN80JLN^NuNVN5N4NN^NuNVH*n`H>aJ@gp`JfB@JL N^NuNVp H>aN^NuNV.?IaJ@fF.aJ@f<.?PaJ@f0.0n /NX.aJ@f.?iavJ@fB@`pN^NuNV n :fa`$.&/<&?<7/<&/.aN^NuNVBy. /./<'NaPN^NuNVNd|gB@`pN^NuNVB@N^NuNV n :f.?mN(`$.'/<'?</</.aTN^NuNVBy. /./<'a&PN^NuNVH *n(n `H>NJ@gp`JfB@JL0N^NuNVH*n >.<.N8Ȝ@`> NJ@gp`0SFJ@f./.aXJL N^NuNVH*n >.>/ //.NP/aPJL N^NuNVH *n >. n(P .f `H>NJ@gp`ZJg0SGJ@f`$`H>NJ@gp`:Jg .g0SGJ@f`> NJ@gp`0SGJ@f .fR n B@JL0N^NuNV>/. /Pa\PJ@f*?<. n NTJ@f>/. /Pa6PJ@fB@`pN^NuNV> /./.aPJ@f./<?qaJXJ@fB@`pN^NuNV?< nNTJ@f?< nNTJ@fB@`pN^NuNVH*nBG`RG | mBJL N^NuNV. gp\`. gp/`p N^NuNV n |fRp`B n (:f nH>N|Cf n (:gN5NfB@`p=@.avJ@g(.;6/./N8P/N8:X-@. /<?sa$XJ@f. /.aXJ@f . aJ@gp`BnBB.?</.a\J@g/</.NP-@Ѯ.H?aT? n NTJ@fh. /aXJ@fR.H|g?<+`?< n NTJ@f0.g. /<?aHX`. ?</.a\J@gp`RRn0.|fBn. aJ@gp``. /<?aXJ@gp`.N5V.aN6JgJng. axJ@gp`JJng./.aX. ?</.a\J@f. /<?ahXJ@f>/. /.aPJ@f. /<?a:XJ@fJng. ?</</././.NP/NP/NP/a~\J@fn. /<?aXJ@fZ. ?</</././.NP/NP/NP/a(\J@f. /<?aXJ@fB@`p`B@J@f. a0J@fB@`pN^NuNV./.aXN^NuNV nJPf .;6a`./<-a/.N6XJf.fB@`p``B@N^NuNVH*n.NLJ@gB@``.aJ@gB@`pJL N^NuNVH*n`RJf JL N^NuNVRH =|./N8X.a*@` мػ@SDg :g \f.?/ RN8X.NBW/. N5X>l .?N. NNT`BW/N5X<l.?N:`*<`ⅺg.N6(@ g`$./.?N6\g.?N`./?N5\-@nȺg.N6Jg.?N:`Bn>N5>N5.N./N6X0.JL0N^NuNVH*n `RJf` @SDg :g \fR.NLJ@g&././N8P/N8:X-@`@.apJ@g4./<?/./N8P/N8:P/N8:X-@. /.aXJL N^NuNV>/.NXJ@gp`..@/. /N8P/N8:X./.aXN^NuNVv./N8X.NLJ@g A-H`.a -@ n\R. /N8X.a-@` ."Ҽ@SDg n :g n \fR.zN5V>/. N6XJgB@`p=@`./.N8X./.N8X.g* ..g ./aXJ@gp`x`J.@N(J@f.N(J@gp`NNT./aXJ@gp`*.zN5VN6JgB@`p=@Jnf4N^NuNVH *n(n .NJ@g=|`l.NLJ@g./NX(@=|`D.aJ@g:.;6/<@/ /N8P/N8:P/N8:X(@=|Jng8.aJ@g .N(.@N(NTp`` ./ aX` ` ./ aXJL0N^NuNVHBG`&> n2G/0/.aPJ@gp`RGn mJLN^NuNVH n>|fBW n/( n/( aP`6|o$ n2GSI.?SW/.\an\`` .@3N:B@JLN^NuB@`0<?NATNu0<?/?NAXNu0<`0<`0<`0<`0<`0<`0< `0< `0< `0<2<??NMJNu0<2<`0<`0<`0< `0<`0<`t0<`^0</`f0<*`^0<+`b0<,`N0<-`R0<0`>NV?. /.?<1NANuNV?. /.?<6NAN^Nu0<9NV/.?NAN^Nu0<:`0<;`0<`0<?NV/./. ?.?NAN^Nu0<@`0<A`NV?<?./<?<BNAN^Nu0<BNV?.?. /.?NAN^Nu0<C`NV?. /.?<GNAN^NuNV/././. ?.?<KNAN^Nu0<M`,NV?. /.?<NNAN^Nu?<ONATNuNV/. /.Bg?<VNAN^Nu0<E`0<F`0<H`0<I`NV/. /./<JNAN^Nu0<L`NV/. /.?<WNAN^NuNV/. ?.?<NMN^Nu?<NNJ_Nu?<`?<`NV?./. /.?<NNN^NuNV?. ?.?<NNN^NuNV/./. /.?<NNN^NuRising Star Industries, Copyright (c) 1985NVH*nBGBF`RHHм@R @f +fR` -fRRF` H@| 0m 9oJFg0D@>0JL N^NuNVH *n (n`RJff .JL0N^NuNVH *n(n `op`lp`JgJfHHAJL0N^NuNVH *n (nf .JL0N^NuNVH *n(M`RJf HJL0N^NuNVN^NuRising Star Industries, Copyright (c) 1985CON:LST:AUX:%;PATH=:9  0BZAUTOEXEC.BAT*** GEM DesktopBatch file: Program: Cannot find .BAT.PRG.TOS.TTP::::.*ONOFFSETRESETECHOWRAPPATHLOG*.*<< <!<<4P<F<-<-; "<<F=!=6= ;2#N=-=R;,$=%,=.6='=%L=)V=-=0F=3:=9=?=D(;&$=IL=K"=M0=ORising Star Industries, Copyright (c) 1985eq{ }A: does not exist. A: is 0: A: A: Select item to continue execution: ?BELLBYECDCOPYDELDDIRENTERERAEXITGOTOIFLSMDPAUSEPDIRPRINTREMRENRDRMSTACKSHIFTSHOWTYPE;:! RSI Command Facility V1.01 9-20-85 WGWTerminate commandValid disk letters are A through P is REN needs 2 file names.Cannot find Rename failed.Erase all filesCannot erase: exists. Creating Cannot create Current directory for \ cannot be found. Cannot remove =<>EXISTSNOT*** ENTER <--- Current Environment KB free of blocks use bytes/sec sec/block*** ! CommandBuilt-in commands: (Y/N)? *** Query EXIT?PATH = Press any key to continueCannot open File: Page: K Search path: ---- |B total in files. B free B total$$$Cannot copy Cannot open destination fileWrite Error while copying file.\\*.*Copying \ must be a drive or subdirectory.COPY destination not specified!!!!".. vf $^&Db ".(<|* $ $ *:<,Rj "L0 &.(Dj. "   0 $P*B *d d` 2  BDB 2" > :.     " 6   2 @&(  J  JR <     $ 2 $     "(   $F   6   .  @  6 >0@$L* . XT$ lpXX.4 * 8  2b.      J  0 & ^:`!PN6N N VN N nN N N N!*O*m - ЭЭм!"ҍ¼.A// Bg?<JNA m"m -So Q m -SBQ(m)M*mN0 lHhNX/,?,N\?<N?<A?<NAXNuNV=| nf n(f 0<`*`Rn nRf nf0.`N^NuNV?<=/.N@\-@g6 nB/. /.NPJ@f n= .R`6 n=/.NX"RA .HЁ-@ @f <`N^NuNV/.N$X=@ .6.HЃ-@/.N~X=@/./.NHP-@g/.NZX=@nmh/./.N(P0.noJ .6.HЃR-@ .6.HЃR-@` nR nR .o`x0.nnn o 0<`-n .6.HЃ6.HÐ-@` nS nS .".6.H҃n/./.NZP`x/.NdX=@0.nnT@n o 0<`T/./.NPHl/.NP/./.NP/.NX=@ .6.HЃR @B0<`N^NuNV/.NfX" .HЁ-@?<=/.N\-@gt nB/. /.NLPJ@fR .R/NX=@ .6.HЃT-@` nR nR .o0<`4 n=/.N>X"RA .HЁ-@ @fX0<`N^NuNV/.HlNP0. g0,g ?<NT?. N TN^NuNVHlNXBn-l n ($-@f?<HlJN\Hl` nA/NNNX9@g0<`0<N^NuNVHl/.N"PJ@g`Hl/.NPJ@gNHl/.NPJ@g n(g nf. n-P n(f HnNX` HnN>XA-H/./. 0.A PNPLN^/W DNuN^NuNVH nB fB`м8 LN^NuNVH n$fBCB`nD6< f႖|NzN^NuNVH0&n$n Bn-J @)P)h-l-lBEG>O|g|JGn|m` REHl/ NRPO`SEHl/ NPO`&0+H@JGgDG0<0dR@0.BAQ,>QQֆG|0QB`Rn0.g$nB`0R 2.HmB`b .6.HЃR$@ nH|0fRZ"` R"H|9n nH|0f$n R&@fSE .6.HЃ @B n0L N^NuNVH0&n BnH|bf=| RH|rgH|wgH|ag <`F ,$@ f*A@$H`0* |f` A@"Ҽm A@"Ҽm <`BBj Bn+H|+f =|j H|wf?./.NZ\>j `hH|afB0<n?/.N\> @f?./.N\>?<B?NrPj `0.n?/.NN\>j Gf Bj <`05G Bj <$%@?<B?* NP%@5l> L N^NuNV)n/.NX/. /.NLPN^NuNV`H0BnBnBB9| nRH|=@ .&@$@BG`TH| g(H| gH| gH| g H| f0.f0.gBnB` `H|"f< nfBn`*0.f 0.f=|0,RlA` `"`H|'f: nfBn`*0.f 0.f=|0,RlA` `'`r0.fj0.fd=|H|f. R @H|>f T-@=|` R-@Bn`0,RlA`  R0RG0nmB .g,A@ H1| A@ H1|Hl@Hl(/.N .g2AT H1| HlT0.gA* `A, //.N 0,R@H/?<HN\)@><`0A` 2 l RG0lm l 0, lBL N^NuNVH$.f BB`J". BnJlVnDJlRnDvd`Bbd nmDdD-@-A LN^NuNV nl <`?.?./. ?<BN -@ m .`?<?.B?<BN~ -@?<?.B?<BNd -@ nf .Ю -@ `$ nf .Ю -@ `0.g <`b . oHn . /?.?<@N Bg?./. ?<BN ]|9@g <` `Bl . N^NuNV/.?<HN\N^NuNV/.?<IN\N^NuNVBn`60.A0f"0.A00.A0 ` Rn nLmN^NuNVBn`&0.A0nf0.ABPRn nLmN^NuNV?>.=|0A"HPgXHf0(>N^NuNVHl./.NPJ@f =|`Hl4/.NPJ@f =|`Hl:/.NPJ@f=|`f0. |g0/.N6XJ@g0<``Bg/.?<NLX0. |?/.?<=N4P=@9@ @l0<`0. | ??.N~X0.N^Nu)I|)Jx)_tNA"l|$lx/,tNuNVH&n Bn0.|dg`>< `.`|ug`>< ``|og`><``|xg`>< l* ndf SR- .D-@`0. f Gf .`& Gf .` ./0H/NX 2.RnA0 Gf .`( Gf .` ./0H/N X-@ .fp`FSn0.A P m0.A0| |A`0.A0|0 SR0.fLN^NuNVH&n n f=| )n)nHl@Hl?<Nb]|@0. R@?HnHnHnNb.g SR-.H|0f.f SR`J nff>.n RG0lo0,`0> Gl0<`0?HnHnHnNBF`0RFA SRSGSn0g nl` SR0Sn nl0. g SR.` SR0RnSn 0. g nm`" Go0RFAH`0<0 SRSG0. Sn J@f`` SR0. g SR.><`0RGA SR0. Sn J@f SRE?.HlH/N: /NXHѓLN^NuNVBn`"0. n PHC|0=@ nR n PH|0m n PH|9o0.N^NuNVH0&n -n @$PX`R` nRg H|%fH|%f,RBn=|Bn| H|-f=|RH|0f|0R-JHnN$X=@$nH|.fR-JHnNX=@$nH|lf=|RgH-n Gdg Gog Gxg GufB0.g @ ` @0H/Hn?.?NV 0.g0<`0<H` Gcf R @ nRT` Gsf4 @-PX<.` nR nRSF0g nf`J Geg Gfg Ggf, @)P)h/,/,Hn?.?NP` 0 nR .nl0.g$<.".A` nRSF0f`b .2.SAHЁ-@-@,.` .2SAHЁ @ nSSF0f` nR .o .R-@f nB .L N^NuNV/. HnNhP=@/.HnN8P0.N^NuNVHnHlTNPN^NuNVHn /.N&PN^NuNV`/. nRH?N^\ nfN^NuNVH0&n$n -K`fS`f .`L N^NuNVH0&n$n `RRgHHAgHHC`L N^NuNV n "n fN^NuNVH0&n$K`Rf `L N^NuNVH&n>. `Rg HGfg ` <`LN^NuNV/.?<AN.\9@g0<``0<N^NuNV`4 nH| f?< ?<NX nRH??<NX0. Sn J@fN^NuNV` nRH??<NX0. Sn J@fN^NuNV` nRH??<NX0. Sn J@fN^NuNVH0&n $KAL-H nf?./ N4\=n`L nf?./ N`\=n`. nf?./ Np\=n`-KBn?.NTJ@f`H| f |o@ H-@/./.?.?<@N 9@Hg0<`0,n/./<?.?<@Nv 9@ @g0<`tRnR -@`R ned` 6.ƼЃ$@ H-@/./.?.?<@N 9@Hg0<`0,nBl0.L N^NuC@"2"2 2"2"2"22"2"2"22"2x9|>)l)l)l)l )l$9|CA"A"A"A$"A*"A"A ")|Nu= p Error: %s q DESKENV V1.0 Copyright (c) 1987 by Konrad A. Hahn Can't locate GEMBOOT*GEMBOOT* DESKTOP Environment: %s Environment buffer overflow Set %s=%s PATH Variable PATH not removable Variable %s not found Remove %s CON:AUX:PRT:@$??rawCON:AUX:PRT:%d Documentation of the archive GEMB1V10.ARC Contained files: 1) GEMBOOT.PRG the GEM booter V1.10 2) GEMBOOT.INF GEMBOOT parameter file example 3) COMMAND.TOS a PD command shell 4) DESKENV.TTP environment string setter for DESKTOP 5) GEMFRL.TOS prints status of GEMDOS internal system memory free lists 6) GEMBOOT.DOC (this file) ############################################## # Copyright (c) of GEMBOOT.PRG, DESKENV.TTP # # GEMFRL.TOS # # # # by Konrad A. Hahn # # Karlstr.19 # # D-6109 Muehltal # # W.-Germany # # # # Permission of charge free copy and usage # # only for noncommercial users # ############################################## GEMBOOT.PRG V1.10 ------------------ GEMBOOT serves as a plaster for the old TOS problem: "the 40 folder limit". The so called "40 folder limit" is a two fold TOS bug. The system crashes are caused by GEMDOS being "out of system memory". GEMDOS has a limited system memory area of 3000 words used for memory descriptors, media descriptors, directory cache blocks, etc. Each cached directory needs 66 words of the system memory. Together with the system blocks added by AHDI.PRG this gives you a total capacity of 85 folders on your non-GEMBOOT-enhanced system (including floppies). Even if you hold your system below this limit you will get into trouble. Tracing GEMDOS internal data I found most system memory overflows being forced by multiple duplicates of directory cache blocks. Obviously GEMDOS sometimes forgets to set a special flag in the parent directory cache block, which should indicate that subdirectories have been cached. Thus next time GEMDOS needs a file located in this directory it creates another set of subdirectory cache blocks. This happens on and on until the flag gets set (or until system crash). So the system memory gets totally trashed with useless duplicates and is overflowed finally. Since hard disks have fixed media you never get rid of these duplicates. With floppy drives you have a chance because all assigned directory cache blocks are released after a media change. GEMBOOT protects the system by linking fresh cache blocks to the system and scanning all hard disk directories with Fsfirst()-Fsnext(). Thus GEMDOS is forced to build up a complete, errorfree directory cache tree. The cache blocks created by this procedure have their "flags" set and prevent GEMDOS from generating duplicates. The number of cache blocks initially allocated and linked to the system free lists is determined by the variable FOLDERS. Besides this GEMBOOT may add chunks of fresh cache blocks to the system during the directory scan. This "incremental add" happens each time GEMBOOT detects the cache block free list being empty. The size of the cache block chunks is determined by the variable FOLDERINC. Since the memory for each chunk is allocated seperately it costs additional system memory for the memory descriptors. Furthermore GEMBOOT provides a 256 character environment buffer for DESKTOP, which may be modified by the program DESKENV.TTP. Last not least it has a build in startup batch feature which uses a standard command shell without creating a "memory hole" in front of resident programs. A ramdisk installation program can be supplied with params within our startup batch procedure. Note: After the login phase GEMBOOT lists the number of directories found and the free cache space left. The latter count only depends on the number of system blocks in the free list. The left unpartitioned system memory is not counted. Thus you may have more space for hard disk folders, but it is better to spare this memory for memory descriptors and floppy disk folders. ############### Installation and customization ################## Put GEMBOOT.PRG and GEMBOOT.INF in the AUTO directory of your boot disk. Be sure that GEMBOOT is the last file in the AUTO exec sequence because DESKTOP is booted without leaving GEMBOOT. GEMBOOT.INF contains variable assignment lines of the form = and may be modified to serve your needs. Following variables are local to GEMBOOT V1.10: Name Range Default Meaning ------------------------------------------------------------------------- FOLDERS 1 : 1000 150 dir. cache blocks added to system FOLDERINC 0 : 100 20 chunk size of incremental add MEMBLOCKS 0 : 5000 0 mem. descriptors added to system BATCHSELECT OFF : ON ON manual batch file selection BATCHFILE \AUTO\*.BAT batch file search pattern BATCHSHELL \COMMAND.TOS batch shell SHELLSIZE 0 : MAXMEM $82F8 shell load size (in bytes) ENVBUFSIZE 12 : 4096 256 env. string buffer size (in bytes) SYSMEMFRL 0 : $FFFFFF $56FA addr. of GEMDOS free list ptr array Assignments to variables different to the above are treated as DESKTOP environment variable definitions and are included in the DESKTOP environment string. The default 256 character environment string buffer provided for DESKTOP is initiated to "PATH=;X:\" (X = boot drive). Resizing the env. buffer by "ENVBUFSIZE=..." does also initialize the buffer to the above string. Thus your DESKTOP environment definitions must follow the "ENVBUFSIZE=..." assignment to survive the resizing. Be aware that each directory cache block costs 132 bytes, and each memory descriptor 18 bytes of your TPA. The allocated system blocks and the env. string buffer reside at the top of the TPA. For the startup batch feature put COMMAND.TOS (included in the archive) into the root directory of your boot drive. You can direct GEMBOOT to use a different shell by the assignments "BATCHSHELL=" and "SHELLSIZE=" The used shell must be able to accept a batch file parameter. With the program GEMMEM you can find out the load size of your shell. The batch shell will be loaded at the top of the TPA, so programs staying resident may be executed without creating a "memory hole". At boot time GEMBOOT is looking for a batch file using the value string of variable BATCHFILE as a search pattern. If the value is the zero-string (BATCHFILE=) the boot batch feature is disabled. With BATCHSELECT=OFF the first file found will be used without asking. With BATCHSELECT=ON up to 9 files found will be listed and you may select one to be executed by the shell. Dependences: GEMBOOT uses the system variable exec_os to find the GEM startup procedure. GEMBOOT uses a GEMDOS internal pointer array at SYSMEMFRL to find the system memory free lists. DESKENV.TTP ----------- DESKENV prints or modifies the contents of the DESKTOP environment string buffer provided by GEMBOOT. EBNF-Syntax: DESKENV [ ('=' | ) {' ' (...)} ] brackets: '' for terminals, <> for nonterminals, () for grouping with | as alternative separator, [] for options (0 or 1), {} for repetitions (0 or more) If called without parameter the current environment variable assignments will be printed. Called with an assignment string as parameter (name string followed by 'equal' and a value string) DESKENV modifies or adds the variable definition to the environment string. Called with an environment variable name without following 'equal' removes the variable definition from the environment string. Examples: "DESKENV LIBPATH=\USR\LIB\" sets the variable LIBPATH to value \USR\LIB\. "DESKENV LIBPATH" removes the variable LIBPATH. If the value string contains white-space characters the assignment must be quoted. Example: DESKENV 'HEADER=***** Keep hands off !!! *****' Note: DESKTOP internally sets the first character of the PATH variable to ';'. Thus the first character of your PATH value should be ';' (i.e. DESKENV PATH=;;;...) to leave the following path string intact. GEMFRL.TOS ---------- This program finds the GEMDOS internal system memory free lists and prints the current status. If the address of the located pointer array is different to $56FA the GEMBOOT variable SYSMEMFRL must be set to the found address value. GEMDOS uses type-1 blocks for memory descriptors and type-4 blocks for directory caching. COMMAND.TOS ----------- A PD command shell used by GEMBOOT. May be used for other purposes too. Enter '?' for a command list. FOLDERS=160 BATCHSELECT=ON BATCHFILE=\BOOTBAT\*.BAT ENVBUFSIZE=128 PATH=;C:\;C:\BIN\ SHELL=DESKTOP `2H N6NN NjN$NNNfN0*O*m - ЭЭм!"ҍ¼.A// Bg?<JNA m"m -So Q m -SBQ(m)M*mN0 lHhN\X/,?,N 2\?<N6?<A?<NAXNuNV/.?<INAN^NuNVB/.B?<?<KNAN^NuNV/./,Bg?<JN! . g$/. NX n /(,NX/. NX/.NXNN^NuNV .R-@/NX9@g0<`0<N^NuNVHl/.NPJ@g`Hl/.NPJ@gNHl /.NPJ@g n!@& k f HlN~X0+ |g0<`0+?/?+ N P7@Sk0+ @l kfk `k@ Bk0<` SRH|&_N^NuNV/ &n Bk0+ |fk@ 0+ |@g0<` `R0+ |g AALA &'@`*0+H/N zX&'@ fk `k g0+ |g SR k `<0+ |g2k SR . H| g kl . H|`T/ N,XJ@g k@ 0<`<0+ |gBk. H|`"` 0+S@7@k . SRH|&_N^NuNV n Sh0( @m. n "R AH|`/. . H?N\N^NuNV fBC`&SCdTC0|g0|gԼdRC`|CHBC0|@HB LN^NuNVNVH n " n $&JjFFJjFFLN^@4NuNVH n"n $0(H@6C|g.0)H@:E|gE|BB0<まef bRAQ$0P`HNVH n$0(H@6C|gd"n .0)H@:E|gD|E(HD*HE20HGHBBB8:BGBBЇӄЂӅJg$0P`B`NVH"n 0<9@2Q`NVH"n Bl2 n,0(H@8D|fB.0)H@:E|fB2$60Enfl8,:.6$0Jg0Eg|n0@gDԇ0,2Q fBB`HSCdTC0|g0|gԼdRC`|"|CHB|C0|@HB AHABA LN^NuNVH0.|=@n n f n0H-@HnNXA-H`> n(g nf. n-P n(f HnNX` HnN>XA-H/./. 0.A PNPLN^/W D4NuN^NuNVH nB fB`м8 LN^NuNVH n$fBCB`nD6< f႖|NzN^NuNVH0&n$n Bn-J @)P*)h.-l*-l.BEG>O|g|JGn|m` REHlD/ NRPO`SEHlD/ NPO`&0+H@JGgDG0<0dR@0.BAQ,>QQֆG|0QB`Rn0.g$nB`0R 2.HmB`b .6.HЃR$@ nH|0fRZ"` R"H|9n nH|0f$n R&@fSE .6.HЃ @B n0L N^NuNVH0&n BnH|bf=| RH|rgH|wgH|ag <`F , $@ f*A$H`0* |f` A"Ҽm A"Ҽm <`B Bj Bn+H|+f =|j H|wf?./.N*\>j `hH|afB0<n?/.N\> @f?./.N\>?<B?NPj `0.n?/.N\>j Gf Bj <`05G Bj <$%@?<B?* NP%@5l L N^NuNVH0&n$K`0.H| f`HSn 0. @o: nSh0( @m n R @H|` /.NX=@ @fB nf f <` L N^NuNVH$.f BB`J". BnJlVnDJlRnDvd`Bbd nmDdD-@-A LN^NuNV/BnJlRnDJ lRnD 0. -@0.n0. nngD -n N^.JNuN^NuNV nl <`?.?./. ?<BN -@ m .`?<?.B?<BN -@?<?.B?<BN -@ nf .Ю -@ `$ nf .Ю -@ `0.g <`b . oHn . /?.?<@N Bg?./. ?<BN ]|9@g <` `Bl . N^NuNV/.?<HN\N^NuNV/.?<IN\N^NuNVBn`60.A0f"0.A00.A0 ` Rn nLmN^NuNVBn`&0.A0nf0.ABPRn nLmN^NuNV?>.=|0A"HPgXHf0(>N^NuNVHl&/.N PJ@f =|`Hl,/.N PJ@f =|`Hl2/.N PJ@f=|`f0. |g0/.N XJ@g0<``Bg/.?<NhX0. |?/.?<=NPP=@9@ @l0<`0. | ??.N~X0.N^Nu)I)J)_NM"l$l/,Nu)I)J)_NA"l$l/,NuNVH&n Bn0.|dg`>< `.`|ug`>< ``|og`><``|xg`>< l* ndf SR- .D-@`0. f Gf .`& Gf .` ./0H/NdX 2.RnA0 Gf .`( Gf .` ./0H/N X-@ .fp`FSn0.A P m0.A0| |A`0.A0|0 SR0.fLN^NuNVH&n n f=| )n*)n.Hl8Hl*?<N]|@0. R@?HnHnHnN.g SR-.H|0f.f SR`J nff>.n RG0l6o0,6`0> Gl0<`0?HnHnHnNhBF`0RFA SRSGSn0g nl` SR0Sn nl0. g SR.` SR0RnSn 0. g nm`" Go0RFAH`0<0 SRSG0. Sn J@f`` SR0. g SR.><`0RGA SR0. Sn J@f SRE?.Hl@/N: /NXHѓLN^NuNVBn`"0. n PHC|0=@ nR n PH|0m n PH|9o0.N^NuNVH0&n -n @$PX`R` nRg H|%fH|%f,RBn=|Bn| H|-f=|RH|0f|0R-JHnN$X=@$nH|.fR-JHnNX=@$nH|lf=|RgH-n Gdg Gog Gxg GufB0.g @ ` @0H/Hn?.?NV 0.g0<`0<H` Gcf R @ nRT` Gsf4 @-PX<.` nR nRSF0g nf`J Geg Gfg Ggf, @)P*)h./,./,*Hn?.?NP` 0 nR .nl0.g$<.".A` nRSF0f`b .2.SAHЁ-@-@,.` .2SAHЁ @ nSSF0f` nR .o .R-@f nB .L N^NuNV/. HnNhP=@/.HnN8P0.N^NuNVHnHlNPN^NuNVHn /.N&PN^NuNV`/. nRH?N\ nfN^NuNV nf:0,zlxf0<9@x9@z`?<NT=@ nf*0,zg Slz?<?<NX?<D?<NX` n f00,zRlzA| ?< ?<NX?< ?<NX`v nf ?<NXT nf20.2,zRlzA|?< ?<NfX?< ?<NXX`*0.2,zRlzA|?.?<N4X0<fA|xH|f0<`0,xRlxA|H`` nf?<NT``0. `Rg HGfg ` <`LN^NuNVH0&n>. $|`HGf$KRf `L N^NuNV n R @H=@` n R @H=@ n g n g n g0.N^NuNV=| nxg nXf n f0<`f n0m n9n0.|0=@`2 nam0.|a| =@` nAm0.|A| =@0.n o0<``0.N^NuNVBnBHnNX=@ n-f0<=@ nRH=@`0 ./0.H/N 6.HЃ-@ nRH=@?.?.NX=@ @f g n 0.g .D` .N^NuNV/.?<AN\9@g0<``0<N^NuNV`4 nH| f?< ?<NZX nRH??<NBX0. Sn J@fN^NuNV` nRH??<NX0. Sn J@fN^NuNV` nRH??<NX0. Sn J@fN^NuNVH0&n $KAD-H nf?./ N4\=n`L nf?./ N`\=n`. nf?./ Np\=n`-KBn?.N2TJ@f`H| f |o@ H-@/./.?.?<@N 9@Hg0<`0,n/./<?.?<@N 9@ @g0<`tRnR -@`R ned` 6.ƼЃ$@ H-@/./.?.?<@Nx 9@Hg0<`0,nBl0.L N^NuC\AUTO\GEMBOOT.INFC\COMMAND.TOSsC^\AUTO\*.BATt)|VZ9|X9|V9|T9|R9|P)|LC"2"2 2"2"2"22"2"2"22"2x9|)lD)lH)l@)l8)l"<9|6CA"A"A"A$"A*"A"A ")| 9|z9|xNu p FATAL ERROR: %s q p ERROR: Add of %u type-%u system blocks failed q =*.*No cache blocks !!!.. Boot procedures: %1d) %s l Select boot procedure (abort with ESC):  p ERROR: %s not found q p ERROR: No memory for batchq p ERROR: Load of %s failed q p ERROR: Integer value required q p ERROR: Value not within range q ONOFFp ERROR: ON/OFF value required q PATH=;C:\Ep GEMBOOT V1.10 Copyright 1987 by Konrad A. Hahn q No memory for DESKTOP environment !!!rp ERROR: Open of %s failed q >%s FOLDERSFOLDERINCMEMBLOCKSSYSMEMFRLENVBUFSIZEBATCHFILEBATCHSELECTBATCHSHELLSHELLSIZEp ERROR: Env. buffer overflow q p ERROR: Bad assignment line q logging in drive %c: %3d directories \p ERROR: System blocks exceeded !!!! Space for %3d folders added q Total number of directories found: %u Free cache space left for %u directories \No memory for DESKTOP !!!Can't start DESKTOP !!!*GEMBOOT*CON:AUX:PRT:@$??CON:AUX:PRT:%d `xN6NvNN NN\NLN N.*O*m - ЭЭм!"ҍ¼.A// Bg?<JNA m"m -So Q m -SBQ(m)M*mN0 lHhNX/,?,N@\?<N ?<A?<NAXNuNV .R-@-|`T . @  f@ .X @ f. .P @ f .] @ Pf .Y`*T m/. HlNP <`N^NuNV-|`V . @ fB .Y @ f0 .X @ f .Y/Hl,NP .Y`*T .m/.Hl@NP <`N^NuNVHljNrX/N jX9@g0<`0<N^NuNV?.?<LN DXN^NuNV/ AB&H`0+ |g/ N*X AB"Ҽm?.NT&_N^NuNV/ &n/ NDXJ@g0<`00+ |g /+N JXBk ?+ N,TJ@g0<`0<&_N^NuNVH&n0+ |f0<`.0+ |gV0+ |f0<`v0+ |g?<B?+ NP?/+?+ NP @f0<`@k 0Hѫ`$ k o?<0+D@H/?+ NXP'@&Bk0<LN^NuNV/ &n Bk0+ |fk@ 0+ |@g0<` `R0+ |g ABAA &'@`*0+H/NX&'@ fk `k g0+ |g SR k `<0+ |g2k SR . H| g kl . H|`T/ N\XJ@g k@ 0<`<0+ |gBk. H|`"` 0+S@7@k . SRH|&_N^NuNV n Sh0( @m. n "R AH|`/. . H?N\N^NuNV fBC`&SCdTC0|g0|gԼdRC`|CHBC0|@HB LN^NuNVNVH n " n $&JjFFJjFFLN^@NuNVH n"n $0(H@6C|g.0)H@:E|gE|BB0<まef bRAQ$0P`HNVH n$0(H@6C|gd"n .0)H@:E|gD|E(HD*HE20HGHBBB8:BGBBЇӄЂӅJg$0P`B`NVH"n 0<9@ܱQ`NVH"n Bl n,0(H@8D|fB.0)H@:E|fB2$60Enfl8,:.6$0Jg0Eg|n0@gDԇ0,ܱQ fBB`HSCdTC0|g0|gԼdRC`|"|CHB|C0|@HB AHABA LN^NuNVH0.|=@n n f n0H-@HnNXA-H`> n(g nf. n-P n(f HnNX` HnN>XA-H/./. 0.A PNPLN^/W DNuN^NuNVH nB fB`м8 LN^NuNVH n$fBCB`nD6< f႖|NzN^NuNVH0&n$n Bn-J @)P)h-l-lBEG>O|g|JGn|m` REHl/ NRPO`SEHl/ NPO`&0+H@JGgDG0<0dR@0.BAQ,>QQֆG|0QB`Rn0.g$nB`0R 2.HmB`b .6.HЃR$@ nH|0fRZ"` R"H|9n nH|0f$n R&@fSE .6.HЃ @B n0L N^NuNVH$.f BB`J". BnJlVnDJlRnDvd`Bbd nmDdD-@-A LN^NuNV nl <`?.?./. ?<BN -@ m .`?<?.B?<BNZ -@?<?.B?<BN@ -@ nf .Ю -@ `$ nf .Ю -@ `0.g <`b . oHn . /?.?<@N Bg?./. ?<BN ]|9@g <` `Bl . N^NuNV/.?<HN\N^NuNV/.?<INr\N^NuNVBn`&0.A0nf0.ABPRn nLmN^NuNV?>.=|0A"HPgXHf0(>N^Nu)I)J~)_zNA"l$l~/,zNuNVH&n Bn0.|dg`>< `.`|ug`>< ``|og`><``|xg`>< l* ndf SR- .D-@`0. f Gf .`& Gf .` ./0H/NX 2.RnA0 Gf .`( Gf .` ./0H/N X-@ .fp`FSn0.A P m0.A0| |A`0.A0|0 SR0.fLN^NuNVH&n n f=| )n)nHlhHl?<N]|@0. R@?HnHnHnN.g SR-.H|0f.f SR`J nff>.n RG0lo0,`0> Gl0<`0?HnHnHnN4BF`0RFA SRSGSn0g nl` SR0Sn nl0. g SR.` SR0RnSn 0. g nm`" Go0RFAH`0<0 SRSG0. Sn J@f`` SR0. g SR.><`0RGA SR0. Sn J@f SRE?.Hlp/N: /NpXHѓLN^NuNVBn`"0. n PHC|0=@ nR n PH|0m n PH|9o0.N^NuNVH0&n -n @$PX`R` nRg H|%fH|%f,RBn=|Bn| H|-f=|RH|0f|0R-JHnN$X=@$nH|.fR-JHnNX=@$nH|lf=|RgH-n Gdg Gog Gxg GufB0.g @ ` @0H/Hn?.?NV 0.g0<`0<H` Gcf R @ nRT` Gsf4 @-PX<.` nR nRSF0g nf`J Geg Gfg Ggf, @)P)h/,/,Hn?.?NP` 0 nR .nl0.g$<.".A` nRSF0f`b .2.SAHЁ-@-@,.` .2SAHЁ @ nSSF0f` nR .o .R-@f nB .L N^NuNV/. HnNhP=@/.HnN8P0.N^NuNVHnHlVNPN^NuNVHn /.N&PN^NuNV`/. nRH?N\ nfN^NuNVH0&n$K`Rf `L N^NuNV`4 nH| f?< ?<NX nRH??<NX0. Sn J@fN^NuNV` nRH??<NX0. Sn J@fN^NuNV` nRH??<NX0. Sn J@fN^NuNVH0&n $KAt-H nf?./ N4\=n`L nf?./ N`\=n`. nf?./ Np\=n`-KBn?.NTJ@f`H| f |o@ H-@/./.?.?<@N 9@Hg0<`0,n/./<?.?<@Nx 9@ @g0<`tRnR -@`R ned` 6.ƼЃ$@ H-@/./.?.?<@N 9@Hg0<`0,nBl0.L N^NuCB"2"2 2"2"2"22"2"2"22"2x9|@)lB)lF)lJ)lN)lR9|CA"A"A"A$"A*"A"A "Nu Memory descriptor for $%lx not found !! SYSMEMFRL = $%lx SYSMEMFRL (ref. to $%lx) not found !! Locating GEMDOS internal free list pointer array SYSMEMFRL: Malloc failed System memory block free lists: Type Length(words) Count(blocks) ---------------------------------- %2u %3u+1 %3u @$??CON:AUX:PRT:%d . FS .. KEYBOARDHLP KBD_RSX PRG  A KEYBOARD RSX A little utility that sit in the auto folder (first preferably) it sets medium rez (if no Mono Monitor) during boot-up period so you can read the text in your auto folder programs then it hides away intercepting the keyboard routine (a reset will clear it). KEYSTROKES FUNCTION ---------- -------- CTRL/ALT/DEL = WARM BOOT CTRL/ALT/SHFT/DEL = COLD BOOT ALT/SHFT/DEL = SCREENSAVER ALT/SHFT A = BOOT FROM A ALT/SHFT B = BOOT FROM B ALT/SHFT/I = TOGGLE INVERSE VIDEO ALT/SHFT K = TOGGLE KEYCLICK ON/OFF ALT/SHFT M = TOGGLE SHOW/HIDE MOUSE ALT/SHFT R = TOGGLE REZ MED/LOW ALT/SHFT/S = TOGGLE 50/60 HZ SYNC ALT/SHFT/V = TOGGLE VERIFY (PING SOUND = ON) VERIFY DEFAULT IS OFF ****** THESE ARE WITH CAPS LOCK OFF or ON ***** WHY:- WARM BOOT saves reaching around the back COLD BOOT gets rid of reset proof stuff without using mains switch SAVER don't want the desktop burned into our screens do we BOOT A/B why not INVERSE I can't read white on black very well KEYCLICK if only they had asked Rob Hubbard to do it MOUSE for those annoying programs that need a mouse for alert boxes - but you never use them REZ mainly for .TOS programs like a pop-up monitor that pops up in low rez and has a medium rez screen ! 50/60HZ bigger picture on SOME TV's - games run faster !!! VERIFY 100% faster disk writes - error checking is still done All palettes are saved and restored with screen functions. This all works on my 1meg 1.09, if used with the 'Mono emulator' screen functions are either disabled or can get confused for example use SCREEN SAVER for INVERSE VIDEO, true mono should be OK. If any of this is useful to you - GOOD If it is useful but the keystrokes conflict with your favourite program (mine do with Devpac) let me (or Steve) know and I can alter them, same goes for a new function that can be squeezed into 1/50th sec. Yours Faithfully (why does STOS use line numbers) Chris Oates. Bay View Cottage. 1.Albert Tce. St.Ives. Cornwall. TR26.2NA. `b`wbp PU"wUPwbw@|H y@N| y8?N.X .?NT/./.?.?<?N.O g.Hy?<N\?.?<>N.X?N.X*n`T ng Hm HmHy?<N\?N.X?.NT?.?<>N.XHyn?<AN.\HynHyBg?<VN.O Hy?<N\BgNTL N^NuNuNuA@Xy@ !J!_ NMYy@A@"P$h/( J@NuA@Xy@ !J!_ NNYy@A@"P$h/( J@NuA@Xy@ !J!_ NAYy@A@"P$h/( J@NuNVN^NuNVN^NuNV 9FA䀰|l yFXF 0<`0<N^NuNVH`YF yF PN 9FAfAJ*H`0- |g / N*X AJ"Ҽ@m?.NTL N^NuNVH*n0- |g/ NXg0<`20- |g /-N XBm ?- N0Tg0<`0<L N^NuNVH*n0- |f0<`r.0- |gV0- |f0<`R0- |g?<B?- N"P?/-?- N&P @f m@ 0<`m *Bm0<L N^NuNVJnl32 <`H?.?./. ?<BN.O -@Jm .`?<?.B?<BN.O -@Jl .32 <`?<?.B?<BN.O -@ nf .Ю -@ `& nf .Ю -@ `0.g <` . oH?.N T|J@f .32 <``` Hn . /?.?<@N.O Bg?./. ?<BN.O J]|=@g32 <`` . NqN^NuNVH .<".ҼS/"</N"X/./N. /N vX*@f <`(M)G P/N X 9L0N^NuNVH .<".PS/"</N"Xށ 9(@JfA( (@##(B,*T -e* -f(`  -+G# P`( f/N X*@Jf <`(M*U`L0N^NuNV0./N XN^NuNVH .f`v .Q*@(y` m n l`(T o l "-Ёf T (ѭ T*`* ",Ёf -Ѭ(`(#L0N^NuNVBn`<0.@A<00f&0.@A<10.@A<1 ` Rn nmN^NuNVBn`*0.@A<00nf0.@A.=|\A<"HPgXHf0(LN^NuNVHHy/.N PfBG`Hy/.N Pf><`Hy/.N Pf><`0. |gR0. |?/.?<=N.P>J@m 0. |g&JGm??<>N.XBg/.?<`j0. |gD0. |?/.?<=N.P>J@m"??<>N.XBg/.?<`0. |?/.?<=N.P>JGl 320<`?. ?N hX0LN^NuNV/.?<HN.\-@ .f-|32 .N^NuNV0./N vXN^NuNV . @"n rJWfSWfN^NuLB@ggSBAgHJ@gHANuL rWfNuNVH*n (MBn ng?.N T| fA&H. nU|`H| f S @  . nU| A|l0fD AH-@Hn/.?.?<@N.O <Hg 320<`dA&H0f~ =@`J/ 0./?.?<@N.O -@2.¼g .320<` .n0.L8N^NuNV?<NT0<N^NuNVAH#VA#ZA#^A0#bA$#fA4#jAV# ?< NT30F09FN^NuNV3# $?<4NTN^NuNV#$# (?<ZNT n02090N^NuNV#$3 33333?<*NTN^NuNV33 ?<hNT n 02 n04 n06 n08090N^NuNV33 3 333?<iNTN^NuNV3H0.| AHЈ-@=|` nR2.AAHH1Rn nm/9 N|X090N^NuNVH$.f BB`&". Bvd d``bd-@-A LN^NuNVHL&gHC H@J@g@HCBCւ-C LN^.JNuNV?.?<LN.XN^NuNV?.N TJnn0<`,?.?<>N.X=@g320<``0<NqN^NuA@Xy@ !J"/0<NBYy@A@"P$hNu  H p Where is MACCEL.PRG? q\*.PRGMACCEL.PRGMACCEL.TMP[3][ | Error opening |][Terminate][3][ Not enough memory | to read file! ][Terminate][3][ | Error reading file! ][Terminate][3][ | Couldn't find magic number! ][Terminate][2][ | Default acceleration... ][ ON | OFF ][2][ | Default speed... ][ FAST | SLOW ][2][ | Write new |][Yes|No][3][ | Error creating temp file! ][Terminate][3][ | Error writing temp file! ][Terminate][1][ | Configuration complete. | Reboot to use new defaults. ][ I will ]  CON:AUX:PRT:*              4        ("  (l@ (X&>&. . 4&f.,*   ."(8 (      &` F`n@<lByLNHJ9g3l0:g aBy>ByLN z8"PXg :.f#`f #n X0:gHz3fDy`,Jy>f2:`2:Af3Dy0:fa0aP>Nu8L<fFx@`Jy>f pA@BXQNuA@CgIr2QNuB!*!&N&o k  Ј<.@// ?<?<JNAO a,?</<?<1NAPJ@(|NuF(NuH0NNAxNnE0G f $ANT09g N6NhJCg Rf AN0N RfAN09f yJN yNNL Nu x gC0` nf"NuPH fNu/ EN$A# #*#&!*!1AY&& R#n!|X R# !|r AVpLN\#%xVX j f j $_Nu!*!& y!yn y!y ypLN yBNu/ / xC f$I!`XB@`R@2I$0f$02Hl$4JB 2I!  !n!0`2$I!` "HPH&JPJ&& f$n%y0PJB%|(&_$_NuH>BCEG"IMK`0@CH(2 22|| bA2;NX 爐"4)"4)"4)A2ACI% `"҄$6 ЀЂЀA-$6 ЀЂЀ- 6-C0@CH% `B"牒ҁ$5 ЀЂЀA+C0@CH% ` 2ACI% 0 JN RC|mBC`0H"2%RC|mBCK`2I$5 ЀЂЀA+RCJCmL|NuH>Op(yR$LRJ Cf&JRK ?fNfA LpNj6W@gK4|fv(JM` Mf*.*BB/HWCANZXO6J@l yVpN`0gMIRNf &\f`RNfRNBE|fBB@ JN&JCm Mr\0Nr\f U`f n g 0N` m;h4h %h$BB2pN Mr\0Nb>0NB W\fDf?OL|NuH6QOBCE0G Rf'|( R8(JDgkBkZ` kZkB R( HJEgkk` kk R(Jgkk` kkKMHWHoHo C KNvO ????/ BgBgBBBAB@N*O ????/ BgBgBBBApNO ???4/ rB@ KN\OB@NfB@ KN|[@|b@0;Ntxzz0:zz(zBLzT R1|`R RBh`J R| `@ RB( `8 R|`. RB(`&N(Bk???4/ rB@ KN&\O`v`vJCgb????/ BgBgBBBApN4O ????/ BgBgBBBApNO |f R1D RE RF|fp`B@POLlxNu//??<?NAO Nu?<NA??<>NAXONu/?< NA\ONu//??<@NAO Nu?/?<=NAPONu??/?<BNAO Nu/ ?< NMTO$_Nu/ /??<NMPO @$_Nu/ /?<&NN\O$_Nu/ ?<"NNTO @$_Nup `p`#AN000000p*`#3Np2`#AN0000000 0 0p3`x/ #p6aj"_2"o2"o2"o 2Nu#3Np4`@#3Npr`.#3NpN`##pZa "o2Nu3@@A CB@22220<"< NBAN0NuNN  */4BEIMP]b@ 0 0  [<$ -?,žH 00x  |?}d@ǀ`@ 0! &       ! Q Q      !Q Q  ! QQ  % JJMACCEL.RSCMouse Accelerator //by Ken BadertscherCopyright 1989, Atari Corp.ConfigureCancelAcceleration:SlowFastScreen Saver:OnOffYesNoWatch Modem:Save p Mouse Accelerator 2 installed q Copyright 1989, Atari Corp. [2][ |Save current configuration to |C:\AUTO\MACCEL2.PRG?][Save|Locate| Cancel ][1][ |Error saving configuration!][ OK ]Installz   6     H( :F ,$   pMACCEL2.PRG by Ken Badertscher Copyright 1989, Atari Corp. Why another mouse accelerator? ============================== I guess just don't get enough punishment working on the other system software here at Atari. History: Once upon a time, there was this mysterious three-hundred-odd byte program that had the peculiar side-effect of accelerating the mouse cursor. I'm not sure what else it did, but then, I only wrote it. Later on, this program got a little more useful - it let you communicate with it, it put up informative messages, it was able to find itself in memory so you couldn't run it twice (running it twice or more would result in hilarious consequences if you so much as bumped the mouse), and so on. It was still a bit primitive, however. Months later, I decided that I needed another breed of screen saver - it seemed that all the ones I had featured, um, interesting side-effects. What better place to put a screen saver than in a mouse accelerator, right? And while I was at it, I could spruce up the mouse accelerator, right? Right. Here it is. Mouse Accelerator //. It uses a new-and-improved algorithm for acceleration - you may like the feel of it better than the original MACCEL. You may even enjoy the screen saver, but if you don't you can always disable it. I'm sure that you'll like the means of communicating with MACCEL2 better than MACCEL. What was I thinking of when I came up with ControlShiftAltLeftClick?! Using MACCEL2 ============= First you need to put MACCEL2.PRG in your auto folder. You don't need to reboot; you can install it from the desktop. MACCEL2 functions both as an auto folder program that installs the mouse accelerator and screen saver and as a configuration program that allows you to change the way it operates. After you have put MACCEL2.PRG in your auto folder, run it from the desktop. You will be presented with a dialog box that has a title at the top, three rows of selection buttons, and some actions at the bottom. Let's deal with them in order: Selections ========== The first row of selection buttons are for Acceleration. You have two choices, Fast or Slow. Selecting a button will activate that speed, so try them out and see which one you like. The second row turns the Screen Saver On or Off. (The interesting capitalization here is to emphasize what appears in the dialog.) If you have the screen saver on, after about four minutes of inactivity, it will kick in. If you have a color monitor, your monitor will go black. Don't panic, your monitor is not broken, just bump the mouse or hit a key (even a shift key) and the display will be restored. If you have a monochrome monitor, it will toggle black-white/white-black about every 15 seconds or so. This prevents an image from "burning in" to your monochrome monitor by constantly flip-flopping the image. Bump the mouse or hit a key to restore a sane display. The third row of selection buttons has the mysterious title "Watch Modem." This feature is useful if you, like me, tend to spend too much time on BBS's and online services. If you are watching a live CB discussion or reading long messages on an online service, there may be a long period of time during which you don't touch a key or use the mouse. It would be most annoying for the screen saver to kick in while you're reading a message. That's what "Watch Modem" is for. If you select Yes, the screen saver timer will be reset by characters coming in the modem port as well as by keyboard or mouse activity. If you run a BBS, you should set "Watch Modem" to No, so that the screen saver timer won't be constantly reset by your callers. Actions ======= Finally, let's look at the row of action buttons at the bottom, from right to left. As with most dialog boxes, the rightmost button is Cancel. If you have not yet installed the mouse accelerator, selecting Cancel will exit the program without installing it. If you have already installed the mouse accelerator, select Cancel to exit the program and restore the accelerator to the state it was in before you started messing with the selection buttons. The middle action button is Save. You can save the current mouse accelerator configuration directly into your copy of MACCEL2.PRG. It expects to find itself in the auto folder of your boot device. If it isn't there, or if you have renamed it, you can tell it that you want to Locate your copy of MACCEL2.PRG; it will present you with a standard file selector so that you can locate it. If you make a mistake and select the wrong file, you needn't worry. MACCEL2 is fairly intelligent about saving its configuration - it won't try to save a configuration in a program that isn't MACCEL2, or in a text file, for example. It will let you know if it had any problems saving the configuration. The next time you boot using the configured copy of MACCEL2.PRG, it will use the defaults you have set. The left action button is the default button, and it has a different label depending on whether or not MACCEL2 has been installed since you booted your ST. If it has not yet been installed, the button will read "Install", and selecting it will install the mouse accelerator with the selections you have made via the selection buttons. If it has already been installed, the button will read "Configure", and selecting it will reconfigure MACCEL2 based on the selection button settings. In either case, selecting this button will exit the program. NOTE: Selecting "Configure" will not permanently save your configuration; you must use the "Save" button to do that. Configure will only configure the MACCEL2 that is currently installed in memory. Th-th-th-that's all, folks! =========================== That's about all there is to it! Next time you boot with MACCEL2 in your auto folder, it will install the mouse accelerator and screen saver (depending on how you have configured it), and print the message "Mouse Accelerator 2 installed." If you need to reconfigure it for any reason, just open a window onto your auto folder and run it from the desktop any time. If you're concerned about how much memory MACCEL2 uses, don't be. Almost all of the program goes away after it has installed the mouse accelerator and screen saver drivers. The critical parts have been written in assembly to be as small and as fast as they can be. . ]S .. MOUSDOUBPRG lT READ_ME lT `T/<?< NA\NV/<t?<.?<NMP#bBg/< ?<1NA/ y^#T!| _Nu?<"NN#^T/<:?<&NN\Nu/ g of0#T/|`Nh Pf#T!| ybN/9` g((@9` g (@ /9TNu Mouse Doubler Installed By Kyle Cordes v. 1.1 PUBLIC DOMAIN 062588 &D Mouse Doubler version 1.1 By Kyle Cordes PUBLIC DOMAIN Mouse Doubler makes all mouse movements go twice as far, so your mouse only needs half of the space it used to. Your hand also only needs to move half as far. Just run MOUSDOUB.PRG from the desktop or drop it in your AUTO folder to use it. In high resolution, Mouse Doubler doubles movements in both directions. In medium resolution, it doubles movement in only the X direction. In low resolution, it has no effect at all. The net effect is that the mouse movement to move across the screen is the SAME in all resolutions, as opposed to the normal state of requiring more space in higher resolutions. The first version of Mouse Doubler had a small bug which caused it not to recognize medium resolution if run from the AUTO folder. . eS .. MOUSESPDACC lT  MOUSESPDRSC lT ` f(0.|2&OO HyBHyBHy BHy BHy HyBHyBHyBHy BHy Hy Hy Hy .KG 6 6666"9 0<NBG 6BG 6M6666"9 0<NBGBI 8((8G 6d7|7| 7y 8 I BG v 8Q"9 0<sNBIBGBv,8QGBv 8QG 66 ,NG 6e7|7|7y 6 "9 0<sNBG 66666"9 0<NB09BG 6#6666G B6 GBI &"9 0<NB3BJylNuG 6n6666GBI &"9 0<NB09BJ@fA aDNuG 6p6666G B66"9 0<NB09B#B jJ@fA aNu y jG 666666GBI&"9 0<NBGB0I r(( y j0<G 6/6666G B66I &&66GBI&"9 0<NB29B3 3 G 66666GBI&"9 0<NB09B y(f09yfa`Jy fala:3 3 3 pa`paZ y jG 6*6666G B66 I &&GBI&"9 0<NB09B y jG 626666G B6GBI&"9 0<NB09B|faa`Z|f"3   a`2|f"3   ap` |f"3   aH`| f"3   a `| f"3   a`|f"3   a`j|f"3   a`B|f"3   a`| f"3   aX`| f"3   a0`ʰ|f"3   a`|f"3   a`z|f"3   a`R|f"3   a`*|g|g`a <<a<<apaNpaHNuA aA a|A SarNu>< <<aRFQ<< a<<aNuG 636 666G B6I z&&I r&&"9 0<NB09BNuG 646666G B6GBI&"9 0<NB09BNu y j0<G 6/6666G B66I &&66GBI&"9 0<NB29BNu3 ?<"NNTA# f# nNuHy ?<?<NNPJy kNu y fC!I3 NuHy ?<?<NNP3 y f"y n!INu"HR(|HHJy ky k49 y k*3 49 y j3 Ry k69 y k*3 69 y j3 "y nN49 DBA"y nN [1][Resource Not Found !!!][ Ooops ]MOUSESPD.RSC[1][MouseSpeed is Shareware!!| From| William Cota][ Okay ][1][ To get rid of this message | Just send $10 to..][ Where? ][1][ William Cota| 4766 Pleasant Pl.| Santa Maria, CA 93455][ I Will!! ]   Mouse Speed                   $D 0       $  B$BMajor Malfunction,Unltd.Mouse Speed 1.0Shareware fromWritten byBill CotaSet mouse speed:8641231/21/31/41/81/61/51/101/121/16?@____}a0.;H"ΤAB@ @@  ?@____}a0.;H"ΤAB@ @@  \s00t00 $ SQQ Q QQ Q q=Q Q Q M]  h  uABAd  QQQ Q. nS .. MYTIME6 BAS {e MYTIME6 LST |eUMYTIME6 PRG |eGfABASICJf8>. DATETIMEZAXYXENDXBIOSXBIOS22TDNEWIMESEETIDATIMESETDATESETTITLETIMESETDATESETZTDVALZTITLE2TITLE3TITLE4TIMEDATEZLENTIMESETDATESETVALTDSEEBINTIDATIMEDATETITLETIMESETDATESETTDDATTIMZTIDATITLE2TITLE3TITLE4CONVERT&Braun's Nifty Keyboard Clock Setter  sDUse this file in the auto folder to set your IKBD clock from your Bsystem clock. This file is usefull to those of you who have a u@clockcard that sets the system clock but not the IKBD clock. a lDThis file is written in compiled GFA Basic and is released to the public domain by;  uBraun Tacon Marysville, CA. CIS (74736,2613) GENIE (XTA 02273)  E*HH F* HH F* HH F*HH F ESETTING YOUR CLOCK WITH,FeETHE MAGIC OF 'GFA'.F"EThis is my first GFA Hack,F$ EI LIKE it!!! (GFA of course).FY !  "FoY !  "FoY !p "FoY !  " Fo$GETTING THE DATE FROM THE SYSTEM A E( FNOW LETS GRAB THE TIME H E0 FOK...DO IT!!! 0! ! FqF8fP `faabF' Braun's Nifty Keyboard Clock Setter ' ' Use this file in the auto folder to set your IKBD clock from your ' system clock. This file is usefull to those of you who have a ' clockcard that sets the system clock but not the IKBD clock. ' ' This file is written in compiled GFA Basic and is released to the ' public domain by; ' ' Braun Tacon ' Marysville, CA. ' CIS (74736,2613) ' GENIE (XTA 02273) ' Dim Title$(25) Dim Title2$(25) Dim Title3$(25) Dim Title4$(25) Title$="SETTING YOUR CLOCK WITH," Title2$="THE MAGIC OF 'GFA'." Title3$="This is my first GFA Hack," Title4$="I LIKE it!!! (GFA of course)." Print At(5,5);Title$ Print At(5,10);Title2$ Print At(5,15);Title3$ Print At(5,20);Title4$ ' GETTING THE DATE FROM THE SYSTEM D=Gemdos(42) ' NOW LETS GRAB THE TIME T=Gemdos(44) ' OK...DO IT!!! Void Xbios(22,D,T) End `R` Efv*oM m HPHUBg?<JNA(m)m -:gS)@ -OK1PC#HNHx?<HNA@)@l/?<HNA)@h&@)@XЬl)@d)@`ARCpr Ѝ"QHNFALNpHz2?< NA\pdAxr0XQ)K\NN~fJJJJrBjNuHz?<&NN\CAp$L Qp NBlJpNNpMN9@pdAr 0Q0tr NR9lNupealp`NuaNJHz?<&NNBWNANC2A@p222NrҌ0<NB0,rNurA9Ar`v C9Cr`rt9@9A9BNrrҌpsNB0,Nu9@N`rDҌpsNBNuC2 @ e @}bA@p222Nr,Ҍ0<NBNu Hn 2$4BBNuAd RdQRB BbABJk 0NuJBjBBXNu 0Nu 2$NuE`B<gJEgEjCDEDF Fe( F dF8BCHC` F0bFHC8v` HD8HDkDуdQRBNuDdBDA@kgAр[SBk0NuJlJBk&Nu0g H@rB JkЀ[` BbNuJBj prtNuHPAJgPpr$< _Nup _NpNNuCDEJEgJBgJjBEBQ*HE?<>0rHGGdHGGdSWDуdi\?<>0rHGGdHGGdSWDуdiN?<>0rHGGdHGGdSW2 H@N?<,>CEdGH@0r`?<`JBgVB&8TTDуdQRBNuDAр&AdRAрAрDуNuprt|=|6  g +g -f .g20  b 0e 9b da`RF` .f 0e 9b dajSF` Eg efX +g -f 0e 9oSH`00  b&Hz0  b E Do`HJjDDDS4</NJFkSFk&aQN`Ha"FFaQL8Nb6.6JgtBn6Nupr$<NuJBk4<rpAC v JBgJjv-| Bb BkH>aaNRFBdL8?Nb<JBga2SF Be BgQRB`ApdR e <rRF&0xafEv+0JFjDFv-Hƌd0BFHF 0HF0ANuprt|`2:HQ A dJf`CfSHj-D@Hd0H@H 0H@0`fSC\fS , @a"C\fApNNNHP?< NA\NuH@aa/a a Nu@0 9c^Nu| PC>$Error # ][Abort]\f.B &lX)K\)ld` lp ,BQjNup(NV"l`Yd&-KNN"l`YepNpCNpC8NpC>NpCDNN&SETTING YOUR CLOCK WITH,CfN>N2THE MAGIC OF 'GFA'.WC퀐N>N&This is my first GFA Hack,C퀖N>N2I LIKE it!!! (GFA of course).C퀜N>N0prN.AfNXNdN0p rN.A퀐NXNdN0prN.A퀖NXNdN0prN.A퀜NXNd?<*NATAN309N^NuNV/ ?</NTO&@/<#?<N\O0. |gD<H=@ ?. /.?<NNPO3/ ?<N\OJyW|&_N^Nu<`NVH&n(n Bg/ ap\OJ@ghAC#0<0QB@,|gD0<@,A :f H| |a@,|-B@LN^Nu?<NTOBA`0<`0<`NVBg/.aJ@g 9#N^Nup`NVH6. &n(nSCJCo/ NXO8|g LR  fB|ffpJ@g pLN^Nu .`B@`NVH&n(n BCJg*/ KRH?N\\O|f 0Eg k@ 0<`JFg < f< `B@`vNVH&n(kBDBE6+ ?<Hn?+ N PO:JEnJDg 0L8N^Nu0`0|gRDkm0`0|gRD LR f?abk:aDSEa@ z*aFHz?<&NN\OAJPgBgNABg0:ACЈ/?<1NA??<>NAXONu/?<NA\ONuBg/?<=NAPOJNup 9b 0eH"HЁ¼Ё`Nu xC2NuAv Pf bV x0<: P FfB f8 Xf. X f$ mfSHC"ACl"C"`hTHU@fCX"CX"C"`B Pg< PgHz[`HC&">C&"Cb"FC."*ob#|"h08T xVXHU@JgQHz?< NA\OA0NuC"C""zE< GI&GI~&GI&GIj&G*I&GjISK" QCN! Cܓ!C@|!FNu*.*PINHEAD.DAT No vblank slots left... PinHead 1.4 installation cancelled! This version of PinHead works only with TOS 1.0, 1.2 or 1.4... Installation cancelled! p PinHead 1.4 q Copyright 1989 Charles F. Johnson Shareware from Little Green Footballs (based on an idea by Leo De Wit) Please support shareware authors! PINHEAD ------- Version 1.4 Shareware by Charles F. Johnson Copyright 1989 Little Green Footballs Software All Rights Reserved. Release Date: Saturday, September 9, 1989 Introduction ------------ PinHead is a *very* tiny program (it uses less than 1K when installed!) that should be run from your AUTO folder. PinHead will drastically reduce the amount of time it takes to boot your computer, especially if you have several AUTO programs and desk accessories installed. Every program that runs after PinHead will load into the computer faster than you ever thought possible! And this speedup is not only evident at bootup time; programs will load much faster even when they are run from the GEM desktop or a shell such as CodeHead Software's HotWire. PinHead gives you a lot of bang for your memory buck! PinHead 1.4 works with all ROM versions of TOS; 1.0, 1.2, and 1.4. Even though TOS 1.4 contains its own built-in "fastload" feature, I decided to make PinHead support TOS 1.4 as well, because in some cases PinHead's fastload is more compatible with improperly written ST applications. (Two very popular programs that don't work correctly with TOS 1.4's fastload, but do work with PinHead 1.4, are ARC.TTP [the original version] and the GFA Basic 2.x Interpreter.) If You've Already Read This Document ------------------------------------ ...then skip ahead to the section at the end titled "New Stuff." Here you will find the revision history of PinHead, with any new features (hopefully) clearly described. If you haven't read this document before, please take a few minutes to read it through. Your enjoyment of PinHead will be much increased if you do; there's information here that will help you through the most common trouble spots, to the fastest ST bootup you've ever seen. Yow! Yet Another Shareware Plea -------------------------- The first three versions of PinHead (1.0, 1.1/1.1a, and 1.2) were released as freeware. However the response to PinHead on the major networks has been so enormous that I've found myself spending more and more time answering questions, looking for solutions, working on the code and the documentation, etc. Therefore, starting with PinHead 1.3, PinHead and the accompanying documentation are now being distributed as shareware...which means that if you use and enjoy the program, you're expected to pay a small registration fee. (After you've used it a few times I suspect you may find it difficult to do without!) I'm asking only $15 for PinHead. Please pay the registration fee if you end up using PinHead regularly; if there's no shareware response to PinHead, I'll be unable to keep enhancing and supporting the program. If after trying PinHead 1.4, you decide to continue using it, please send a check or money order for $15.00 to: Charles F. Johnson P.O. Box 1250 Pacific Palisades, CA 90272 and please indicate on your check that this is a registration payment for PinHead. This will enable me to enter your name properly in my shareware data base. Installation ------------ For best results, PinHead should be as close to the beginning of your AUTO folder programs as possible. If you already have an AUTO folder with several programs in it, you can use CodeHead Software's "AUTO Organizer" (one of the programs on our 'CodeHead Utilities' disk) to make sure PinHead runs before most of the other AUTO programs. If you don't yet own a copy of CodeHead Utilities, you should make a backup copy of your AUTO folder, delete the original folder on your bootup disk, create a new folder named AUTO, and copy all the programs back, in the order in which you want them to run. If you have a hard disk driver in your AUTO folder, it should run before PinHead. If you use the public domain program FATSPEED (which speeds up the directory search routines in GEMDOS), this too should run before PinHead 1.4 in the AUTO folder. Why? Well, FATSPEED insists on being the very first thing in the trap #1 vector; and PinHead also needs to intercept this vector. But every other program designed for AUTO folder usage can run after PinHead...which is just the way you want it. When you boot up with PinHead active, your AUTO folder programs and accessories will just FLY across the screen, especially if you have a hard disk. When PinHead 1.4 first runs, it tries to read a file called PINHEAD.DAT in the root directory of the boot drive. See below in the section titled "Configuring PinHead" for details on how to "custom tailor" PinHead 1.4 for each program you run, to get the most compatible system possible. Disabling PinHead for One Program --------------------------------- It should be a very rare occurrence to find a program that needs to have PinHead 1.4 disabled in order to run. However, if a certain program does act strangely or crashes with PinHead active, you can turn off the "fastload" feature before running that program, with a special "hot key" sequence. To disable PinHead, hold down the Alternate, Left Shift, and Control keys while you type '0' (zero) on the numeric keypad, before running the program. This will disable PinHead, but only for the very next program you run. After quitting that program, PinHead will be active again. Turning PinHead On and Off -------------------------- PinHead 1.4 also lets you turn it "on" and "off." This is different from the disabling method explained above; when you turn PinHead off, it will be disabled until you turn it back on, not just for the very next program that runs. To turn PinHead off, hold down the Alternate, Left Shift, and Control keys and type '-' (minus) on the numeric keypad. To turn PinHead on, hold Alternate, SHift, and Control, and type '+' (plus) on the keypad. This feature is in PinHead 1.4 in case you find yourself running several programs in a row that don't work properly when PinHead is active. In that case, it will be easier to just turn PinHead off for the duration, and re-enable it when you're through with the "problem" programs. See "Configuring PinHead" below for a way to automatically tell PinHead when to disable itself. Configuring PinHead ------------------- Since it's hard sometimes to remember when you're supposed to disable PinHead to run a certain program, and a system crash seems like a rather harsh penalty to pay for a moment of forgetfulness, PinHead has a configuration option which lets you tell PinHead to automatically disable itself when certain programs are run. You can also tell PinHead to clear a little bit of extra memory for certain programs; this enables "problem" programs to be fastloaded. As mentioned above, you can create a special "configuration file" which will be read when PinHead is first run. This file should be called PINHEAD.DAT, and kept in the root directory of your boot disk. PINHEAD.DAT is a standard ASCII text file which can be created and edited with just about any ST word processor or text editor (as long as your editor has an option to 'Save as ASCII'). This file contains information about programs that need "special treatment" in order to live harmoniously in the same system with PinHead. The PINHEAD.DAT file must follow some simple rules of organization to be properly used by PinHead. All lines should be flush with the left screen margin...do not insert spaces from the left. The first line of the file should contain the letters 'PH13', followed by Return. This is the special identifier that tells PinHead this is a valid PINHEAD.DAT file. On the lines following the identifier, you can list each program or desk accessory that needs to be specially treated. All filenames should be in upper case, with no path information -- only the name of the file itself. PinHead 1.4 allows you to list up to 32 programs in the PINHEAD.DAT file. If a line contains only a program filename, followed by a Return, PinHead assumes this to mean that it should deactivate itself during the loading of that program. This frees you from having to remember to disable PinHead manually. If a line contains a program filename followed by one or more spaces, followed by a number, PinHead assumes this number to be the number of kilobytes of "extra" memory it should clear when that program runs. (One "K" or kilobyte is 1024 bytes.) By experimenting with different sizes of "extra" memory, you should be able to "fastload" many programs that would otherwise be incompatible with PinHead. (The same programs that are incompatible with TOS 1.4's fastload feature.) For example, the GFA Basic Interpreter apparently needs only 8K of "extra" memory cleared when it runs in order to be fastloaded like any other program. (See "How PinHead Works" for more details about clearing this extra memory.) Here's a sample PINHEAD.DAT file: PH13 <---------------\ GFABASIC.PRG 8 <------\ \ USCRIPT.PRG <---\ \ \ ARC.TTP 16 <-- \ \ \ TURBOST.ACC | \ \ Mandatory "identifier" (must be 1st line). | \ \ ^ | \ Clear 8K of extra memory when GFABASIC.PRG runs. | \ \ | \ Disable PinHead when USCRIPT.PRG runs. \ \ \ Clear 16K of extra memory when ARC.TTP runs. \ Disable PinHead when the Turbo ST desk accessory loads. Please note that unless a program's name is listed in the PINHEAD.DAT file with a number after it, PinHead 1.4 will not clear any "extra" memory at all when the program runs. This differs from PinHead 1.2 -- version 1.2 would always clear an arbitrary 16K of extra memory for all programs. How PinHead Works ----------------- PinHead is based on a public domain program called NULLFILL, originally written by Leo de Wit, and circulated on the Bitnet system. When it appeared on GEnie, I got curious about it and took a look. The original program worked only with TOS 1.0, which didn't do me much good since I have a Mega ST4 with TOS 1.2. I added compatibility with TOS 1.2 and 1.4 (which turned out to involve a bit more than just changing a few addresses!), and had it check to see which version of the ROMs it was running under. I also added a "hot key disable" feature, optimized the code to work almost twice as fast, reduced its memory usage by quite a bit, and made it compatible with the popular FATSPEED program (the original stopped working if FATSPEED was installed). Then I found a way to make it even more compatible with certain programs (programs like Microsoft Write, the GFA Basic Interpreter, and ARC.TTP) than the new "fastload" feature in TOS 1.4. Leo, if you see this, I hope you don't mind what I've done with your idea! So how does it work? Ordinarily, when TOS runs a program all free memory (from the beginning of the program to the end of the TPA, or Transient Program Area) is cleared. PinHead sits and watches for that memory clearing routine to occur, and when it does, substitutes a much faster clearing routine. In addition to being faster, the PinHead routine only clears one (usually small) part of the program's memory area (the BSS) instead of clearing all memory in the computer. This means that programs start up much faster. (This is the exact same method that TOS 1.4 uses to implement its fastload feature.) But a few programs don't get along with TOS 1.4's fastload method; these "problem" programs expect all memory to be clear (set to zeros) when they run. (The ST documentation does not guarantee that anything except a program's BSS area will be clear when it runs, but some programmers have made that assumption in their code.) To get around this problem, PinHead 1.4 allows you to specify (in the PINHEAD.DAT file) an amount of "extra" memory to clear beyond a program's BSS; this extra clearing is usually imperceptible unless you specify a very large amount, yet it enables PinHead to work properly with many applications that fail when used with TOS 1.4's fastload technique. If you do come across a program that won't work properly when PinHead is active, you can either disable PinHead manually before running it, or add its name to your PINHEAD.DAT file to disable PinHead automatically when that program runs. (See "Disabling PinHead," "Turning PinHead On and Off," and "Configuring PinHead" above.) A tough decision ---------------- When I started playing with the NULLFILL code, I had no idea that I'd end up writing something that would make one of CodeHead Software's products (TopDown) obsolete for many people. One of the purposes of TopDown is to accelerate the bootup process, by limiting the amount of free memory which needs to be cleared by TOS when programs run. As it turns out, PinHead does a much better job of speeding up the boot process, and has the added benefit of being active whenever you run a program...not just at bootup. TopDown has one other important feature, however...it also allows people to use all their usual desk accessories and AUTO programs along with programs that normally don't allow this. (For example, Epyx's Art/Film Director, and early versions of Hybrid Arts' SMPTE-Track and Easy-Track.) After much discussion, my partner John Eidsvoog (John's the author of TopDown, and together we own CodeHead Software) and I have decided to release TopDown as shareware, since there is still a very valid use for it. Watch for TopDown to be posted soon on the major information services. ************* * * * NEW STUFF * * * ************* ------------- PinHead 1.4 ------------- PinHead Now Fastloads Itself! ----------------------------- Version 1.4 of PinHead uses an undocumented feature of TOS 1.0 and 1.2 to "fastload" itself. This means that the speedup starts one program sooner in your AUTO folder, since the PinHead program file does not cause memory to be cleared when it runs. (NOTE: Normally, the use of this undocumented feature would result in the PinHead program file being left "open" by the system. PinHead 1.4 uses a special technique to avoid this bug in TOS, and you will have no trouble deleting, renaming, or copying the PinHead program file after it runs.) New "Wildcard" Configuration Option ----------------------------------- Starting in PinHead 1.4, you can now specify a default amount of "extra" memory to be cleared automatically for every program _not_ listed in the PINHEAD.DAT file. This way, if you have a problem with PinHead, you don't have to go laboriously searching through your AUTO folder and accessories to find the one that's crashing -- just list a default amount of extra memory in the PINHEAD.DAT file. To do this, just create a PINHEAD.DAT file that looks like: PH13 *.* 16 In this example, we're telling PinHead to clear 16K of extra memory whenever any program runs. The wildcard specifier "*.*" is used to mean "all files/programs". This should be followed by a space, then the amount of K (kilobytes) you wish to clear beyond the program's BSS. If there are other program names listed in the PINHEAD.DAT file, either before or after the "*.* 16" line, they will be processed according to the rules explained in the section titled "Configuring PinHead" above. ************************************************************************** * * * PINHED14.PRG and PINHEAD.TXT are * * Copyright 1989 Charles F. Johnson & Little Green Footballs Software. * * All Rights Reserved. * * * * PinHead 1.4 may be freely distributed as long as both the program * * file and this documentation are included, and as long as neither * * file is altered in any way whatsoever. No part of this program or * * its accompanying documentation may be reprinted or used for * * commercial purposes without the express written consent of the * * program's author. * * * ************************************************************************** From idec!stl!stc!ukc!mcsun!uunet!cs.utexas.edu!uwm.edu!mrsvr.UUCP!jupiter.uucp!krieg Sat Nov 18 11:07:54 GMT 1989 Article 11495 of comp.sys.atari.st: Path: prlhp1!idec!stl!stc!ukc!mcsun!uunet!cs.utexas.edu!uwm.edu!mrsvr.UUCP!jupiter.uucp!krieg >From: krieg@jupiter.uucp (Andrew Krieg) Newsgroups: comp.sys.atari.st Subject: Here's Pinhead 1.4!! Summary: Speed up your boot time Keywords: memory Message-ID: <1357@mrsvr.UUCP> Date: 4 Nov 89 02:20:40 GMT Sender: news@mrsvr.UUCP Reply-To: krieg@jupiter.UUCP (Andrew Krieg) Organization: GE Medical Systems, Milwaukee, WI Lines: 242 OK, since so many of you are interested in speeding up your STs via Pinhead, I've decided to post the listing. This is the latest version (1.4) from CodeHead Software. It's shareware and was written by Charles Johnson. Cut the listing at the line below, use uudecode and then unarc it. Enjoy! -- ========================================================================= = The Marvel Historian A. Krieg = = G.E. Medical Systems - CT - New Berlin, WI = = USENET: krieg@jupiter.med.ge.com = ========================================================================= = "Landing gear, landing gear, landing gear. = = Have a beer, shut the door." - Howard Borden = ========================================================================= . S .. CACHE TTP 7|ICACHREADME I|IXCTSPATCHDOC }I<CTSPATCHPRG }I MACCEL2 PRG K|I MACCEL2 TXT L|IbMAKEFASTPRG M|IU MAKEFASTTXT M|ISHIPACC PRG N|I"SHIPREADME O|I#TOS14FIXPRG P|I&TOS14FIXTXT Q|I'y TURBOCTSDOC *%TURBOCTSPRG Ts4LSTE_FIX S 6`,oB?< NA\/?< MJgjvrF*&NHS@|_AWJg  fRK`arDQJ@fJEf&NRKa*`~tpg<0m< n HAQNuBC?</NA&@G#?<Hz?<NNAPJ@g408F|Al?<Hz?<NNAPJ@gHz?< NA\z`a*(nJEnHz-?< NA\`>< xCR AHDIf f>(\|<E NnhܼHzG?< NA\ aHz9?< NA\ a~Hz8?< NA\ r ajHz@?< NA\Hzr?< NA\ACp"QNHz?< NA\ r a*Hz?< NA\zHz?< NA\a6NA\??<LNAJA% H@<0B@H@fHP?< NA\Nu00000vZ?<$NNTQNuGv0"S&=|A-HS@g Ap,,H`,0QNA\?</?<1NAP Couldn't find CACHE*.* or X:\AUTO\CACHE*.* FAT/root, data/dir cache buffers in K. Not enough memory for K... No cache buffers added. pCACHEnnnq Copyright 1989, Atari Corp. Usage: cache [D]nnn [Fnnn] (nnn = 1 to 999) D=Data/Dir buffers F=FAT/Root Dir buffers no letter=nnn of each `cache d10 F 20' adds 10 D, 20 F buffers. Or, rename to CACHEnnn.PRG and run (equivalent to `cache nnn'). CACHEnnn, by Ken Badertscher Copyright 1989, Atari Corp. A program to add cache buffers to Rainbow TOS, and make your hard disk scream... Why cache? ========== The advantage of having cache memory available for Rainbow TOS is that it means that the OS doesn't have to look on the disk every time it needs to know where to go to find a file or a bit of data. It keeps as much information as it can in the cache memory you give it, so that frequently used directories and data can be quickly accessed. Some caches use a method called "deferred writes" to keep even more stuff around in memory, but TOS does not do that. The TOS cache is a "write through" cache, which means that there is never anything in the cache which isn't also on the disk. Thus, CACHEnnn is both fast and safe. How fast? CACHEnnn can increase the performance (read: decrease file access time) by as much as TEN TIMES what it would be without the cache. Running CACHEnnn ================ You can use CACHEnnn in several ways. The easiest is to change its name and put it in your auto folder (or run it from the desktop). It works like FOLDR100, in that its filename determines how much cache you get. Technically, there are two kinds of cache buffers - one kind holds File Allocation Tables and root directories (we'll call these "F buffers") and the other kind holds data and subdirectories ("D buffers"). When you rename CACHEnnn, you tell it how many of each kind of buffer you want. For example, if you rename CACHE.TTP to CACHE90.PRG, it will add 90 F buffers and 90 D buffers that TOS can use as a cache after it runs. Command line usage ================== CACHEnnn can also be used from a command line (after all, it is called CACHE.TTP if you don't rename it...). If you use a command line shell, and type CACHE -H, you will see a message similar to the following: Usage: cache [D]nnn [Fnnn] (nnn = 1 to 999) D=Data/Dir buffers F=FAT/Root Dir buffers no letter=nnn of each `cache d10 F 20' adds 10 D, 20 F buffers. Or, rename to CACHEnnn.PRG and run (equivalent to `cache nnn'). CACHEnnn Copyright 1989, Atari Corp. What all that means is that you have three ways of specifying on the command line what kind and how many cache buffers you want to add. If you just give it a three digit numerical argument, it will add that many F _and_ D buffers. This is the same as renaming it to CACHEnnn.PRG and running it from the desktop or auto folder. Alternatively, you can specify how many F buffers and how many D buffers you want, by using the Fnnn and Dnnn arguments. The letter part of these arguments can be in upper or lower case, and may be separated from the digits by spaces. Any digits past the third are ignored, so if you say CACHE F1234, you'll only get 123 F buffers added. How many buffers? ================= I personally find it easiest to just put CACHEnnn in my auto folder, but performance nuts might want to tweak just the right buffer numbers for their setups. 90 each of F and D buffers seems to be a good number for a 20 megabyte hard disk (CACHE90.PRG in the auto folder). You may want more if you have more storage. Also, depending on how you set up your directory structure, you may want more F or D buffers. Generally, if you have a lot of deeply nested subdirectories, you'll want more D buffers for optimum cache performance. If you keep everything in the root directories on your hard disk partitions, you'll want a lot of F buffers. The amount of memory taken up by cache buffers is another consideration. Normally, each cache buffer (F or D) uses a little over 512 bytes, so if you're running CACHE90.PRG, you'll get about 90K of cache buffers. If you are using AHDI 3.01, and have any partitions bigger than 16 megabytes, the cache buffers will be bigger (1K or more each). CACHEnnn tells you the approximate amount of memory it uses for cache buffers when you run it, so you'll know if you're using an outrageous amount of cache memory. Experiment with different numbers - you won't hurt anything. Error handling... ================= CACHEnnn will abort with an informative error message if you give it no arguments and it is unable to find itself in the current directory or in the auto folder on your boot disk. It will also check to make sure you aren't trying to add too many cache buffers, and it will refuse to add buffers if they leave less than 256K of free memory. All that cache memory isn't going to help you much if you don't have any memory left to run programs! CACHEnnn Caveats ================ CACHEnnn is most useful on a system which has TOS version 1.4 (Rainbow TOS) or later, with a hard disk. Cacheing will help with floppies too, but the performance increase is much more dramatic on a hard disk system. Usually on a floppy based system, you're popping disks in and out frequently, and that invalidates the information in the cache. Hard disks, on the other hand, are removed much less frequently, so information cached from hard disks is valid as long as your system is turned on. You can use CACHEnnn with TOS versions previous to Rainbow TOS, but there isn't much point. Older TOS versions will use the cache, but they will often ignore it and go to the disk instead of reading valid information from the cache. If you don't have Rainbow TOS, you will see very little, if any, performance improvement using CACHEnnn. Technical stuff =============== An earlier version of this cache program was distributed with early Beta releases of TOS 1.4. THAT PROGRAM CAN NOT BE USED WITH AHDI 3.01! The reason for this is that AHDI 3.01 (unreleased at the time the original cache program was written) requires variable size cache buffers. This official release of CACHEnnn handles variable size buffers correctly. If you're concerned about how much memory this program is wasting (after all, it is a whopping 1051 bytes long), don't be. The program uses a psychotic method of installing itself which only leaves 128 bytes more than the actual cache memory requested after the program terminates. I would have gotten rid of that 128 bytes if I could, but GEMDOS won't let me. Developers who are interested in the technique of adding cache buffers to GEMDOS are referred to the Rainbow TOS release notes, where the subject is covered thoroughly. All in all, it's just easier to use CACHEnnn. CTSPATCH.PRG Copyright (C) 1989 by Bill Penner 26 August 1989 CTSPATCH.PRG is a program to fix the TOS 1.4 RS-232 RTS/CTS handshaking problem. The program can be run as an autorun program (placed in an AUTO folder and booted) or run when beginning to use RTS/CTS handshaking. Outside of the Rsconf() command not allowing the RTS/CTS mode to be enabled, the RS-232 routines in the TOS 1.4 (April 1989) ROMs appear to be bug free. The problem with the RTS/CTS routines is due to the internal variable indicating the past state of the CTS line and the active edge interupt register for the CTS line improperly set up when the system initializes at powerup. CTSPATCH.PRG simply does the initialization and exits. Even with this program, many programs may not work with RTS/CTS. This is primarily due to the various programs being written on a system in which the RTS/CTS routines were not working (and causing system crashes when enabled with older ROM's) and so many programs will automatically turn off RTS/CTS handshaking. `.|B?< NA\, y>(/?< NA\ Gg/<F?< NA\`h/<?< NA\Bg?<NNX<@B?< NA\,@|| 9 9Jf|F/?< NA\BgNA p Rainbow TOS RTS/CTS Fixed. Copyright 1989, Bill Penner q Must be used in conjunction with Rainbow TOS patches from ATARI Corp. CTSPATCH.PRG will NOT work with this version of ROM. ,` F`n@<lByLNHJ9g3l0:g aBy>ByLN z8"PXg :.f#`f #n X0:gHz3fDy`,Jy>f2:`2:Af3Dy0:fa0aP>Nu8L<fFx@`Jy>f pA@BXQNuA@CgIr2QNuB!*!&N&o k  Ј<.@// ?<?<JNAO a,?</<?<1NAPJ@(|NuF(NuH0NNAxNnE0G f $ANT09g N6NhJCg Rf AN0N RfAN09f yJN yNNL Nu x gC0` nf"NuPH fNu/ EN$A# #*#&!*!1AY&& R#n!|X R# !|r AVpLN\#%xVX j f j $_Nu!*!& y!yn y!y ypLN yBNu/ / xC f$I!`XB@`R@2I$0f$02Hl$4JB 2I!  !n!0`2$I!` "HPH&JPJ&& f$n%y0PJB%|(&_$_NuH>BCEG"IMK`0@CH(2 22|| bA2;NX 爐"4)"4)"4)A2ACI% `"҄$6 ЀЂЀA-$6 ЀЂЀ- 6-C0@CH% `B"牒ҁ$5 ЀЂЀA+C0@CH% ` 2ACI% 0 JN RC|mBC`0H"2%RC|mBCK`2I$5 ЀЂЀA+RCJCmL|NuH>Op(yR$LRJ Cf&JRK ?fNfA LpNj6W@gK4|fv(JM` Mf*.*BB/HWCANZXO6J@l yVpN`0gMIRNf &\f`RNfRNBE|fBB@ JN&JCm Mr\0Nr\f U`f n g 0N` m;h4h %h$BB2pN Mr\0Nb>0NB W\fDf?OL|NuH6QOBCE0G Rf'|( R8(JDgkBkZ` kZkB R( HJEgkk` kk R(Jgkk` kkKMHWHoHo C KNvO ????/ BgBgBBBAB@N*O ????/ BgBgBBBApNO ???4/ rB@ KN\OB@NfB@ KN|[@|b@0;Ntxzz0:zz(zBLzT R1|`R RBh`J R| `@ RB( `8 R|`. RB(`&N(Bk???4/ rB@ KN&\O`v`vJCgb????/ BgBgBBBApN4O ????/ BgBgBBBApNO |f R1D RE RF|fp`B@POLlxNu//??<?NAO Nu?<NA??<>NAXONu/?< NA\ONu//??<@NAO Nu?/?<=NAPONu??/?<BNAO Nu/ ?< NMTO$_Nu/ /??<NMPO @$_Nu/ /?<&NN\O$_Nu/ ?<"NNTO @$_Nup `p`#AN000000p*`#3Np2`#AN0000000 0 0p3`x/ #p6aj"_2"o2"o2"o 2Nu#3Np4`@#3Npr`.#3NpN`##pZa "o2Nu3@@A CB@22220<"< NBAN0NuNN  */4BEIMP]b@ 0 0  [<$ -?,žH 00x  |?}d@ǀ`@ 0! &       ! Q Q      !Q Q  ! QQ  % JJMACCEL.RSCMouse Accelerator //by Ken BadertscherCopyright 1989, Atari Corp.ConfigureCancelAcceleration:SlowFastScreen Saver:OnOffYesNoWatch Modem:Save p Mouse Accelerator 2 installed q Copyright 1989, Atari Corp. [2][ |Save current configuration to |C:\AUTO\MACCEL2.PRG?][Save|Locate| Cancel ][1][ |Error saving configuration!][ OK ]Installz   6     H( :F ,$   pMACCEL2.PRG by Ken Badertscher Copyright 1989, Atari Corp. Why another mouse accelerator? ============================== I guess just don't get enough punishment working on the other system software here at Atari. History: Once upon a time, there was this mysterious three-hundred-odd byte program that had the peculiar side-effect of accelerating the mouse cursor. I'm not sure what else it did, but then, I only wrote it. Later on, this program got a little more useful - it let you communicate with it, it put up informative messages, it was able to find itself in memory so you couldn't run it twice (running it twice or more would result in hilarious consequences if you so much as bumped the mouse), and so on. It was still a bit primitive, however. Months later, I decided that I needed another breed of screen saver - it seemed that all the ones I had featured, um, interesting side-effects. What better place to put a screen saver than in a mouse accelerator, right? And while I was at it, I could spruce up the mouse accelerator, right? Right. Here it is. Mouse Accelerator //. It uses a new-and-improved algorithm for acceleration - you may like the feel of it better than the original MACCEL. You may even enjoy the screen saver, but if you don't you can always disable it. I'm sure that you'll like the means of communicating with MACCEL2 better than MACCEL. What was I thinking of when I came up with ControlShiftAltLeftClick?! Using MACCEL2 ============= First you need to put MACCEL2.PRG in your auto folder. You don't need to reboot; you can install it from the desktop. MACCEL2 functions both as an auto folder program that installs the mouse accelerator and screen saver and as a configuration program that allows you to change the way it operates. After you have put MACCEL2.PRG in your auto folder, run it from the desktop. You will be presented with a dialog box that has a title at the top, three rows of selection buttons, and some actions at the bottom. Let's deal with them in order: Selections ========== The first row of selection buttons are for Acceleration. You have two choices, Fast or Slow. Selecting a button will activate that speed, so try them out and see which one you like. The second row turns the Screen Saver On or Off. (The interesting capitalization here is to emphasize what appears in the dialog.) If you have the screen saver on, after about four minutes of inactivity, it will kick in. If you have a color monitor, your monitor will go black. Don't panic, your monitor is not broken, just bump the mouse or hit a key (even a shift key) and the display will be restored. If you have a monochrome monitor, it will toggle black-white/white-black about every 15 seconds or so. This prevents an image from "burning in" to your monochrome monitor by constantly flip-flopping the image. Bump the mouse or hit a key to restore a sane display. The third row of selection buttons has the mysterious title "Watch Modem." This feature is useful if you, like me, tend to spend too much time on BBS's and online services. If you are watching a live CB discussion or reading long messages on an online service, there may be a long period of time during which you don't touch a key or use the mouse. It would be most annoying for the screen saver to kick in while you're reading a message. That's what "Watch Modem" is for. If you select Yes, the screen saver timer will be reset by characters coming in the modem port as well as by keyboard or mouse activity. If you run a BBS, you should set "Watch Modem" to No, so that the screen saver timer won't be constantly reset by your callers. Actions ======= Finally, let's look at the row of action buttons at the bottom, from right to left. As with most dialog boxes, the rightmost button is Cancel. If you have not yet installed the mouse accelerator, selecting Cancel will exit the program without installing it. If you have already installed the mouse accelerator, select Cancel to exit the program and restore the accelerator to the state it was in before you started messing with the selection buttons. The middle action button is Save. You can save the current mouse accelerator configuration directly into your copy of MACCEL2.PRG. It expects to find itself in the auto folder of your boot device. If it isn't there, or if you have renamed it, you can tell it that you want to Locate your copy of MACCEL2.PRG; it will present you with a standard file selector so that you can locate it. If you make a mistake and select the wrong file, you needn't worry. MACCEL2 is fairly intelligent about saving its configuration - it won't try to save a configuration in a program that isn't MACCEL2, or in a text file, for example. It will let you know if it had any problems saving the configuration. The next time you boot using the configured copy of MACCEL2.PRG, it will use the defaults you have set. The left action button is the default button, and it has a different label depending on whether or not MACCEL2 has been installed since you booted your ST. If it has not yet been installed, the button will read "Install", and selecting it will install the mouse accelerator with the selections you have made via the selection buttons. If it has already been installed, the button will read "Configure", and selecting it will reconfigure MACCEL2 based on the selection button settings. In either case, selecting this button will exit the program. NOTE: Selecting "Configure" will not permanently save your configuration; you must use the "Save" button to do that. Configure will only configure the MACCEL2 that is currently installed in memory. Th-th-th-that's all, folks! =========================== That's about all there is to it! Next time you boot with MACCEL2 in your auto folder, it will install the mouse accelerator and screen saver (depending on how you have configured it), and print the message "Mouse Accelerator 2 installed." If you need to reconfigure it for any reason, just open a window onto your auto folder and run it from the desktop any time. If you're concerned about how much memory MACCEL2 uses, don't be. Almost all of the program goes away after it has installed the mouse accelerator and screen saver drivers. The critical parts have been written in assembly to be as small and as fast as they can be. ` r`` >>> TURBO-C <<<< for ATARI-ST Release 1.1i (C) 88 Borland International G# J$VH3  k  Ј<.@# // ?<?<JNAO NpBAA4|`g |`.gg4TB|"O4SBQBt SAe!dB)SAe !eHiR@`/ R@HzR"k, ON? 9 g @N 9 g @NN?<LNA.y Hy ?< NA\?<?<LNAA NNA NDNuH0]O$H*8G pNV&l,JDgA^N JNAmN `<Sfx`<Cfx`NpN`xz`2 4J r NREEn`tNNBBFG ApN>SGJGfFA0Np<S@fx` |fx`xHy C1ApNrXO:J@g 2A NJGgN&B@N$OL Nupи @3 $rA8G &Nu/ ANE 'Nn<A:B@ JN$_NuH>Op8$H*IIMglp\N&H g B"J LN`C ' LN&LC LN,"K NN g "M LN`TC LN p. KNJ&H g:"K LN`0C ' LN^C LN g&M`G "K LNB og y $e/Ho"N LN,PO6`HW"N LNXO6JCo6fB`>p\ LN&HB"L JNC JNb"N JNZJDg "LA 'NfBC0OL|Nu/ G g/ &S?<INA\O`G g/ &S?<INA\O`&_Nu JgJgJgJgJg JgJgJfSHggggg ggf @NugfSHNuJgNug fC`Jg INuSHNu g<g8g4g0g,g(g$g ggggg ggf @NuBAA0Nu  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~Nu//??<?NAO Nu?<NATONu??<>NAXONu/?< NA\ONu//??<@NAO Nu?/?<GNAPONu?/?<=NAPONu??/?<BNAO Nu/ /?<&NN\O$_Nup `Vp`P#3^p4`>##pZa,"o2Nu###p[a "o2Nu3 @@A C B@22220<"<NBA^0Nu ^^  Stack overflowUsage: makefast [-c|-s] filename [filename ...] -c = check current state, -s = make slow Error opening . [1][| Error opening file.][ OK ] is not an executable file. [1][| Not an executable file.][ OK ] is not set to fastload. [1][| Program IS set to fastload.][ OK ][1][| Program is NOT| set to fastload.][ OK ]: no change. [1][| No change to program.][ OK ]Error writing [1][| Error writing file.][ OK ][1][|MakeFast|by Ken Badertscher|Copyright 1989, Atari Corp.][Continue|Quit][2][| What would you like to do?][MakeFast|MakeSlow|Check]Select Program*.*\*f&d  8F R"$ J~ MAKEFAST.PRG by Ken Badertscher Copyright 1989, Atari Corp. NEW TOS FEATURE! ================ One of the new features of Rainbow TOS is the ability to set a program for "fastload." This is accomplished by setting a bit in the program file which tells TOS that the program can be loaded without having all of memory cleared for it. Setting programs for fastload is most useful on machines like Mega 4's with a lot of memory. Clearing 4 megabytes of memory can take a significant amount of time - a program set for "fastload" can start up to a second faster. That may not sound like much, but when you're running a program which runs other programs (in, for example, a programming environment) saving a second on each program load can add up. And it makes your ST feel much faster when everything is loaded seemingly instantaneously. Wot's a fastloadbit? ==================== Now, we could have told everyone which bit was the fastload bit and watched everyone whip out their handy sector editors and flip that bit in each of their programs - but we're not that sadistic. MAKEFAST is a program which will set the fastload bit on any program. It is one in a series of what I like to call "AlertWare," that is, a program which does everything via the simplest AES call that exists: form_alert(). It is sort of a pain to wade through all those alert boxes, but it's quick and dirty to program, and it gets the job done. You do have an alternative with my AlertWare, though - I try to make things run from command lines as well as from the desktop. From the desktop... =================== When you run MAKEFAST from the desktop, it presents you with (surprise!) an alert box. The first one asks you if you want to Continue or Quit. If you bravely select Continue, you are then presented with an alert which asks you which function you want to perform: MakeFast (set a program's fastload bit), MakeSlow (clear a program's fastload bit), or Check (see if a program is set for fastload). Make a selection, and use the file selector which appears to select the program to check. Don't worry if you make a mistake and select a Spectrum picture instead of a program - MakeFast won't do anything with files that aren't executable. It will let you know if you selected a file which was not an executable program. Also, if you try to MakeFast a program which is already set for fastload (or MakeSlow one which is not set for fastload), MakeFast will leave the program alone and tell you that there was no change. After the function is complete, you're back to the "Continue/Quit" alert box. On a command line ================= When installed as a TOS Takes Parameters application, or run from a command line shell, MAKEFAST can be used to manipulate more than one file at a time. From a command line shell, type: makefast -h to get a message describing the usage. Long after you've lost this doc file, you'll still be able to use makefast -h to remind you how to run makefast. Note that if you are using makefast as a TTP application, you don't have to type "makefast" at the beginning of the command line - the desktop fills in that part of the command for you. To set the fastload bit in file1, file2, and file3, use the command: makefast file1 file2 file3 To clear the fastload bit in filea and fileb, use the -Slow option: makefast -s filea fileb To check the fastload bit in all files in a directory, use the -Check option: makefast -c *.* If any of the files are not executable, MAKEFAST will inform you of that fact. Note that filename wildcards will NOT be expanded if you are running makefast from the Desktop TTP dialog. If you are using the TTP dialog, you must type out all the filenames to check. Why MakeSlow? ============= Fastloading works because almost all programs don't require that all of memory be set to zeros when they start up. What Rainbow TOS does when it sees a file with the fastload bit set is it only clears as much memory as the program needs cleared. The rest of memory is left alone. The operative word here, though, is "almost." Some programs insist on having all of memory cleared for them, among them is Microsoft Write. Don't try to MakeFast Microsoft Write, because it won't work correctly. Also, using MakeFast on desk accessories yields mixed results. BE VERY CAREFUL when using MakeFast to speed up desk accessory loading. If you run into a problem, you can always use MakeSlow to clear the offending program's fastload bit. !IMPORTANT!IMPORTANT!IMPORTANT!IMPORTANT!IMPORTANT!IMPORTANT!IMPORTANT! !IMPORTANT> If you use MakeFast to set the fastload bit on any program, DO NOT EXPECT THE PROGRAM TO LOAD ANY FASTER IF YOU DO NOT HAVE A RELEASE VERSION OF RAINBOW TOS. Other versions of TOS do NOT know about the fastload bit, so setting the bit will have NO EFFECT. .Oa,VHNA\OL8N^Nu~ar(a< fNuҸlNuIKP>8<H@0<a4f(| <a(fQ* 2<xaf 80ra8Q>Nu*rar(Ҹ8glrNu #4M Park Hard Disks[2][|Park all hard disks?][Yes|No][3][|TURN OFF all hard disks.][ OK ]EAll hard disks parked. TURN THEM OFF, then press a key...    SHIPACC.PRG, by Landon Dyer and Ken Badertscher Copyright 1989, Atari Corp. Anyone who uses the Atari Hard Disk Utilities is familiar with SHIP.PRG, the program that tells your hard disks to put their heads someplace safe so they don't hurt themselves. Well, anyone who has used SHIP.PRG is also familiar with what a pain it is to run, since it must be run from floppy, and it ships your hard disks with extreme prejudice, and... Now there's SHIPACC.PRG. It's called SHIPACC.PRG because it can function as both a desk accessory and a program. And since it takes up less than a kilobyte of memory, it's a nice accessory to have around. Especially since nobody ever runs SHIP on their hard disks before they power them down, even though it's a VERY good idea. When you run SHIPACC.PRG, it presents you with an alert box, asking whether you really want to park all hard disks or not. BE CAREFUL, because the default selection is YES - PARK THEM ALL. After it has done the deed, it presents you with another alert box, informing you that you had better turn off all your hard disks. Please follow its advice. Trying to access a hard disk after its heads have been parked can be EXTREMELY BAD for the hard disk. If you want SHIPACC available all the time, rename it to SHIPACC.ACC, and copy it to the root directory of drive C. Next time you boot, you'll see a "Park Hard Disks" selection in the Desk menu. If you select it, SHIPACC will work the same as if run as a program. Try it! As if that wasn't enough, SHIPACC can also be run as a TTP program or from a command line shell. To do this, you must give it arguments, or else it will assume that you are running it from the desktop, and present you with the alert box mentioned above. If you give it any arguments on its command line, it will go ahead and ship all hard disks, then inform you that it has done so, and firmly suggest that you turn off all hard disks. It won't go away until you inform it that you have done so by pressing a key. `Hyx?<&NN\Ogg Hz?< NA\OBWNA p Rainbow TOS patches loaded. q Copyright 1989, Atari Corp. x h <gNu <gNu 8 fNu h `Nuf `N^fXHC"J8,f A\0N ,APC0<lH"Q@|!,#,!!*!*!&!1AY&&FNu B!*!&N gA`Nh PgN hf08 nNu|CEI($0(|bfp Jhk6p@*@,2(1 nEZ2Eb2"pN6p@*@,Jhkh(Jhkh *Jh kh ,Jh kh & <Ns  @`@` o PgNqNqNq4 _2fF/|g.A | pNAgI|A0XLFN^Nu"o$IJf!e <\g<:fR NuTOS14FIX.PRG by Ken Badertscher Copyright 1989, Atari Corp. Contrary to commonly held beliefs, the system software engineers at Atari are human. That's right, human beings, one and all. And like most human beings, we make mistakes now and then. A couple of bugs made it into the Rainbow TOS release that we feel are serious enough to warrant an auto folder patch program, and that's what TOS14FIX is. The two bugs that are fixed by TOS14FIX are: 1) A change was made to the BIOS call that sets the RS-232 port configuration. Specifically, it did not allow RTS/CTS flow control to be enabled. This is a problem for people with serial printers and high speed modems, since those devices use RTS/CTS flow control to start and stop data transmission so that the device can keep up with the computer. If you have Rainbow TOS, and you use a high-speed serial device which requires RTS/CTS flow control, you need this program in your auto folder. 2) A much less significant bug crept into an internal routine which the AES uses to parse file names. The bottom line is that under extenuating circumstances, it could be possible that a GEM program would not be able to successfully load a resource file or to find a file using the AES shell library call shel_find(). The patch program replaces the internal AES call. All you need to do to use TOS14FIX.PRG is put it in your auto folder, or run it from the desktop. If it successfully installs the patches, it will print a message to that effect. If the version of TOS in your machine does not require these patches, then it will print nothing. Technical Notez =============== TOS14FIX does its work by patching into the vectors for the calls which it replaces. It copies the actual patch code into an area of low memory which is specifically reserved in TOS for this purpose. This means that having the patches installed will use no extra memory in your computer. Not only that, but these patches will not slow your system down whatsoever, because they replace completely the system calls which they fix. The patch program also installs a reset handler so that the patch can de-install itself when you do a warm boot (normally the area of memory reserved for programs like this will survive a warm boot). The patch program will be completely transparent to anything you do, except, of course, the bugs won't be there! TURBO CTS Version 1.32 Copyright (C) 1989 by Bill Penner First a statement: USE THIS SOFTWARE AT YOUR OWN RISK! THIS PROGRAM MAY BE FREELY DISTRIBUTED AS LONG AS THE PROGRAM REMAINS UNMODIFIED AND THIS DOC FILE REMAINS WITH THE PROGRAM. THIS PROGRAM MAY !!NOT!! BE SOLD, HOWEVER, MAY BE INCLUDED ON CLUB DISKS WHICH ARE SOLD FOR A SMALL FEE. YOU USE THIS SOFTWARE AT YOUR OWN RISK. I ASSUME NO RESPONSIBILITY FOR ANY LOSS, DIRECTLY OR INDIRECTLY FROM USE OR POSSESION OF THIS PROGRAM. Since the ATARI ST was released in 1985 the computer has been advertised as supporting RS-232 Clear to Send and Request to Send (CTS/RTS) protocol. The truth is that the computer never has sucessfully supported this. Even with the changes taking place in TOS 1.4, the April version of the ROM's still contain several bugs in the RS232 routines which have made RTS/CTS flow control inoperative. Currently most RS-232 interfaces only require three wires to be connected between the computer and a peripheral (such as a modem or serial printer). These lines would be the transmit data, receive data, and ground. The transmit data line would carry the information from the computer to the peripheral device and receive data would bring data into the computer from the peripheral. Some devices operate slowly, such as printers, and the computer can send out data faster than the device can use it. To be able to work best with a computer, the external device normally uses some form of buffering to store several bytes (characters) of data (sometimes up to 256K bytes or more). If the buffer was always larger than the amount of information no problem would occur, but most devices will allow you to send more data out than the buffer would be able to hold. To handle this, a form of "handshaking" is required. For the RS-232 interface one of two protocols of handshaking are normally used. Currently, the more popular one is the XON/XOFF protocol. In this protocol, when a buffer is nearly full, the device will send out a character as would be sent out by pressing Control and S (Ctrl-S). When the buffer has emptied to some point, the device will send out a Ctrl-Q to tell the other device to start sending again. Communication with most BBS's will also allow the user to stop the sending of text from the BBS by pressing Ctrl-S from the terminal and then Ctrl-Q to continue the text again. The other protocol is an older one in which two more wires are added to the RS-232 interface for RTS and CTS signals. These operate similar to the XON/XOFF protocol except that instead of sending some data back down the line to tell the other device to stop sending data, a line is changed from low to high. The line being sent from the computer to tell an external device to stop sending is called Request to Send (RTS). The line coming from an external device to the computer to tell the computer to start or stop sending is called Clear to Send (CTS). With most peripheral devices being smart (based on a microprocessor or microcontroller), and the serial speeds being fairly slow (110 to 9600 baud), XON/XOFF was easier to implement and required less hardware. But, now with modem speeds increasing, several companies are implementing RTS/CTS flow control. The US Robotics 9600 and 14400 baud modems have MNP data compression available when the modem to computer RS-232 speed is set at 19200 baud, but to handle the 19.2K baud speed, the modem uses RTS/CTS flow control. The ATARI ST ROM's have pretended to support this mode, but bugs in all versions of TOS have prevented RTS/CTS from working, including the April version of TOS 1.4 ROM's. Upon the request of Don P. (STARBASE), I began to work on a fix for the problem. At first glance the problem was a simple one, only to trap the characters being sent to the modem and check for CTS being low. I wrote a couple of accessories and programs which did this. They were called CTSFX100, CTSFX101, CTSFX102, and CTSFX103. The result is that they worked for some pieces of software like Flash and a couple of other problems. While working on the program, I was optimising routines and making the program faster. This only resulted in showing that my method of fixing the problem was greatly in error. I was simply grabbing the characters as they were being sent to the output buffer and between the operating system, my software, and the terminal or BBS program, the transfer speed was less then 19200 baud so the buffer would never get filled up and my filter was working. But after optimising several portions, the speed increased to the point of making my program useless since the buffer would fill up the output buffer and when CTS changed, my program would stop placing data in the buffer, but then the computer would continue to send out the rest of the buffer. In the documentation I wrote with the program, I included my phone number. The program was distributed on F-Net and within a couple of days, I had received many phone calls about fixing the problem. I have been working on the problem for a couple of weeks now and have come to understand that the problem has been around for a long time, and little has been done to resolve the problem. The data compression mode of the US robotics was not able to be used and people were relying on ATARI to eventully fix the ROMs. After generating the CTS Fix programs, alot of interest was stirred up to fix the problem and it appeared to be time to fix the problem, once and for all. The approach was to take a close look at TOS 1.4 and to determine why it didn't work. I found only three minor problems with the software. Two problems had to do with the software not being properly initialized and a bug in the Rsconf() routine which would not let you set CTS/RTS mode. I was able to get the RTS/CTS to work PERFECTLY simply by properly initializing the MFP CTS active edge register based on current CTS level, initializing a system variable which is used to tell the software if the transmit port was enabled or disabled (also based on current CTS level), and then setting the system variable to enable CTS/RTS. Programs would work just fine until they tried to set the flow control, which would disable CTS/RTS and cause XON/XOFF to be enabled or disabled. A final program was written to replace the RS-232 routines used by the system. This was the only way to create some software which would work with any version of ROMs. Since the other modes of handshaking worked just fine, I decided to write some RS-232 routines which were optimized for CTS/RTS flow control in hopes of also speeding up the RS-232 routines. The resultant program is called TURBOCTS.PRG. TURBOCTS is a program which can be either autobooted or run when the RTS/CTS flow control is needed. Once the program has been loaded, the RTS/CTS mode is enabled and can not be disabled without rebooting the system. The Rsconf() command can be used to set the RS-232 speed and play with the UART registers, but flow control settings will have no effect. The program will also properly trap the printer operations when the printer output is sent to the RS-232 port as set in the control panel or the Setprt() command. In beta testing, the program has resulted in increasing the average Zmodem transfer speed on a US Robotics 9600 baud modem communicating with the ST at 19.2 Kbaud from approximately 850 characters per second (CPS) to 1100 CPS for nearly 30% improvement. Note for PC Pursuit Users: You can continue to use the software when calling through telenet. At the @ prompt, type: @set ? 1:0,4:10,5:1,7:8,12:1 During beta testing, a 20 CPS speed increase was noted using TURBOCTS. I would like to thank Don P (Seattle) and Mark A for the support, suggestions, and information. I also appologize for distributing the real lousy version of CTSFX10x which worked for some and caused headaches for others. If you have a copy of CTSFX10x please do everyone a favor and erase it (besides, TURBOCTS works better and faster!). If you have any problems with the program, please send me a message on GEnie (BPENNER) or by mail at: Bill Penner, 3235 Wright Avenue, Bremerton, WA 98310. ` o,<ܨ ܨܨ.| /<?< NA\?=============================< > TURBOCTS -- Version 1.32 < Copyright 1989 by Bill Penner > Program may be freely < > Used and Distributed < > In Unmodified Form < >=============================< 8  6 (  ."("Tvd .. S 6.. S README ւS 7TROMPATCHPRG ւS 9STE_FIX PRG ւS ; STE_FIX.PRG README FILE On this disk you will find a folder called AUTO. Within this folder is a program called STE_FIX.PRG. This solves the problem of telling your STE to boot into medium resolution by altering the interpretation of the resolution flag in the DESKTOP.INF file. In plain English this means that when you save the STE's desktop to medium resolution using the SAVE DESKTOP option the STE ignores the fact that you have changed the saved resolution preference. If you switch on your STE with this disk in the disk drive the STE_FIX.PRG will automatically be run and will correct the STE mis-interpretation of your DESKTOP.INF file and boot in medium resolution if the DESKTOP.INF file is saved in that way. The STE_FIX.PRG program this README file are free available and may be copied onto any disk using the standard GEM file copy procedure. If you are at all unsure of this procedure please consult your owners manual. NOTE: This program will only work on the Atari STE range of computers. Atari (UK). `. 6*O.|V*m - ЭЭм"aJ@gBNAJA."| 0< Q09V|A. 09X|A. 09Z|A. TB?< NA\O#` |#,/9`?< NA\OBg/?<1NAJ4 _2fF/A |. pNAgI|A0XLFN^NuHzH?<&NN\O&y\pf,  g $g g g`pNu#\NuNVH>.<. BWBg?<|NX=yrR=yrTJyNgL09sn|n009sn|m 09sn|n09sn|l >NN3s3sJyZgX3mh3mj>Bg?<!NX>?N&T3pZ3p\BW?<?<NX3s3sJyfs?9s/9rNz\JLN^NuNVH..A-HNByZ3s`3sbBF`>//.NPPpdHH-@.NR .`.NRB`JyZfXBW/<8NXBWBg?<NX.lrNBW/<8NXBWBg?<~NX.\N-|d3Z`0-|Ij`&-|I``J@gb|gް|gf|gJg./.N>XNRFn mJyZgB.lrNBWBg?<NXBW/9\NXBWBg?<~NXByZ1NVH..<. N33n#nN` .dNRJyfNByynBynBnNBE`HB G-P .EfB .Jfx .Ifx .Ijfx G PREFm0=NVH 2(y#`Sy09s@H*@s>Rys y sfBysJyg If -+fByJygf Ef2 |"yn 0Ef ynY.ޭ ynY `*>/ /9nNPPnSyn3n/- UNXJyf #B92!NֆN6N6ZN֘#N/9NNu#b/9bNu#vt/9vNu#/9Nu#,/9Nu#/9Nu#/9Nu#d/9Nu#/9Nu#/9Nu#/9Nu#* /9*Nu,    .6B.f" >,&   F 0X           `:` f`dJxfA`A P=f" hmBCzp f8QP`, P?f J9g##/|vByN"m y #f EgQ`R( yNJDESKTOP.INF&o k  Ј<.@// ?<?<JNAO aBg/<?<1NAJ/ / B@rC02 x$f*`0 _INFf2` _MCHf fpRPH$fJ@f2`p$x )g2`\o _INF!|PHBpЁ!@`: xC!` $HPH&IPI&& f"_INF#|PIB#|(&_$_NuA8NA NZ090g A#NH090D@HA pN0A+N&090gNAp!N#rNu?<NA/?< NA\ONu/ /??<NMPO @$_Nu/ /?<&NN\O$_NuDESKTOP.INF patch installedalready installedthis machine is not an STEthis STE ROM version does not need the patch ERROR: . mytrap1main_StkSizeerrno0Pterm0dmsgCconwsjstartt1savercookie_jvalidate:SetexcvSupexecMADMAClongframjmp_abs_NFopen=opcodeFO_filenFO_modeFread?FR_handlFR_countFR_bufstartupsuptrp gheadplstkchkfnckreadDdeskinftstb4gotopennoreadjreadbufsaveretmungeitvxmunggetbytnxbytgoteresendTpaStartTpaEndTextSegSTextSegS DataSegSDataSegSBssSegStBssSegSiDtaPtr PntPrcPt$Reserved(EnvStrPt,Reserved0CurDrv7Reserved8CmdLineBasePage> h""   <. NJS =.. DESKTOP 0 k>DESKTOP 1 k?"DESKTOP INF k@"REZ_INFODOC kAREZ_INFOPRG kE#a000000 #b000000 #c7770004170560070055200505552220770557075055507703112105 #d #E DB 01 #W 00 00 0C 01 0F 17 18 D:\GAMES\LO__REZ\*.*@ #W 00 00 0C 04 11 11 00 @ #W 00 00 0E 09 15 0B 00 @ #W 00 00 0F 0A 15 0B 00 @ #M 00 03 00 FF D Lo-Rez Games@ `@ #M 00 00 00 FF A Boot Disk@ @ #T 03 03 02 FF TRASH@ @ #F FF 04 @ *.*@ #D FF 01 @ *.*@ #G 03 FF *.APP@ @ #G 03 FF *.PRG@ @ #F 03 04 *.TOS@ @ #P 03 04 *.TTP@ @ #G 03 04 GFABASRO.PRG@ *.BAS@ #a000000 #b001000 #c7770005070560070055200505552220770557075055507704112402 #d #E DB 02 #W 00 00 30 01 15 17 10 D:\*.*@ #W 00 00 1A 01 15 17 08 C:\*.*@ #W 00 00 00 01 15 17 00 @ #W 00 00 0F 0A 2A 0B 00 @ #M 00 03 00 FF D Heather@ `@ #M 00 02 00 FF C Erica@ `@ #M 00 00 00 FF A Boot Disk@ @ #T 07 03 02 FF TRASH@ @ #F FF 04 @ *.*@ #D FF 01 @ *.*@ #G 03 FF *.APP@ @ #G 03 FF *.PRG@ @ #F 03 04 *.TOS@ @ #P 03 04 *.TTP@ @ #G 03 04 GFABASRO.PRG@ *.BAS@ #a000000 #b001000 #c7770005070560070055200505552220770557075055507704112402 #d #E DB 02 #W 00 00 30 01 15 17 10 D:\*.*@ #W 00 00 1A 01 15 17 08 C:\*.*@ #W 00 00 00 01 15 17 00 @ #W 00 00 0F 0A 2A 0B 00 @ #M 00 03 00 FF D Heather@ `@ #M 00 02 00 FF C Erica@ `@ #M 00 00 00 FF A Boot Disk@ @ #T 07 03 02 FF TRASH@ @ #F FF 04 @ *.*@ #D FF 01 @ *.*@ #G 03 FF *.APP@ @ #G 03 FF *.PRG@ @ #F 03 04 *.TOS@ @ #P 03 04 *.TTP@ @ #G 03 04 GFABASRO.PRG@ *.BAS@  *** -=REZ_INFO=- (c)Copyright 1987 -- Chris Latham *** This program is provided as Shareware, and as such is in the Public Domain. If you like the program, and find it useful, please send a check for a minimum of $5.00 to the author as a show of appreciation. This will definitely encourage further ventures. REZ_INFO.PRG may not be sold as an individual product, nor included in a 'for sale' collection of other Public Domain products. The author holds complete Copyright on the program. Please send 'thank you' checks and bug reports to the author: CHRIS LATHAM c/o ST Informer Magazine 909 NW Starlite Place - Grants Pass, OR 97526 *** The following instructions will cover both monochrome and color systems. If you have only a color monitor, just follow steps 1 thru 7 and jump to steps 12 thru 15. If you have both color and monochrome monitors and switch back and forth, add steps 8 thru 11. 1. To set up the LO REZ file: Boot your system in low resolution and set up the desktop as you want it (don't forget to set up your RS-232 and Printer parameters, too). 2. Save the desktop in the usual manner. HARD DISK OWNERS: The DESKTOP.INF file will be saved to the root directory of drive C: FLOPPY DRIVES ONLY: The DESKTOP.INF file will be saved to the root directory of drive A: 3. Rename low resolution DESKTOP.INF to DESKTOP.0 (the extender is a zero). 4. To set up the MED REZ file: Boot the system in medium resolution and set up the desktop the way you want it (don't forget to set up your RS-232 and Printer parameters, too). 5. Save the desktop in the usual manner. 6. Rename the medium resolution DESKTOP.INF to DESKTOP.1 (the extender is a one). 7. Now save the desktop once more. This will place a fresh DESKTOP.INF file on the boot disk (or hard disk). 8. To set up the system for HI REZ (in case you have both monochrome and color monitors and like to switch back and forth): Boot the system with the monochrome monitor attached and set up the desktop the way you want it. 9. Save the desktop in the usual manner. 10. Rename the high resolution DESKTOP.INF to DESKTOP.2 (the extender is a two). 11. Repeat step 7 (above) to save a master DESKTOP.INF file to the boot (or hard) disk. 12. Place the REZ_INFO.PRG file in the AUTO folder on your boot disk(s). HARD DISK DRIVES: Place the REZ_INFO.PRG file anywhere after the hard disk boot file (or any other auto file that is placement sensitive). 13. Reboot your system. 14. You should be presented with a prompt line requesting you to make a choice as to which resolution to boot in: 0 = Low Resolution 1 = Medium Resolution 2 = High Resolution Monochrome (if you have a monochrome monitor and completed steps 8 thru 11). 15. Make your resolution selection (0, 1 or 2), and the boot process will continue as normal. ### `$4*o - ЭЭмO/HUBg?<JNA aBgNATa. Szf /?<NN\ ??<-NAXHG??<+NAX?< NMTM$K0g>?<?<NAXHyV?<;NA\?<HV?<=NAPJ@k??<>NAX`?<?<NAXHyV?<;NA\?<NNT<g&Hy:?< NA\?<NAT<0<c<<0@Hy\?<NA\?<HU?<NNAPJ@fI\~>,?<HU?<=NAPJ@kn3XHy/?9X?<?NA ?9X?<>NAX?<HV?<NAXNu?<NNT<<b@2I<?<;b22I <b&H@<g2I<g< b 2I <wc <?<NNTyrytd:QaNB?< NA\/ xV0<Jg Q`!<?< NA\?</<?<1NAa a@` yn*|x0<d29X49Z2]p2]pQNu09X @fa&X3X09Z @@faX3ZNu*|x`*|z2<d4f49tyv:XQNu~P 4* $ . S P.. SCRSAVERACC ; QSCRSAVERDOC ; U``N NK mNf]` m"m -So Q m -SBQ(m)MO*mNNt?<NhH?<A?<NAX <B@SfLNu/A R _NNVH0&n$n ><?$QL N^NuNVH&n><?&QLN^NuNVH0A &@?<N nT @gzBG`?0| g& f"Hl?<N\NnHl?<N\`>0|g6 n(f.Hl?<N\Hl?<N\N.Hl?<N\0<f@LN^NuNV/N(B?< N\.A A!/?< N~\Hl:?,jN\9@N.N^NuNu)I*)J&"/0<NB"l*$l&Nu NV9n0.| A" AA-H=|` nR2.AH0Rn nm/,lN.X0,N^NuNVA)HpA)HtA)HxA)H|A)HA)HAp)Hl?< NXT9lj0,jN^NuNV9n9n ?<N0TN^NuNV9n9n 9n 9n9n9n9n9n9n9n9n9n9n 9n")n$9n(9n*?<NT n,0 n00 n40 n80 n<0 n@00,N^NuNV9n)n ?<#NfTN^NuNV9n)n ?<4NHTN^NuNV9n)n ?<NN*TN^NuNV?.NZT nn0<`?.?<>NX9@^g0<`0<N^NuNV?.?<LNXN^NuNV/ A&H`0+ |g/ N*X A"Ҽm?.NT&_N^NuNV/ &n/ NDXJ@g0<`00+ |g /+NXBk ?+ N,TJ@g0<`0<&_N^NuNVH&n0+ |f0<`.0+ |gV0+ |f0<`v0+ |g?<B?+ NhP?/+?+ NP @f0<`@k 0Hѫ`$ k o?<0+D@H/?+ NP'@&Bk0<LN^NuNV nl <`?.?./. ?<BN6 -@ m .`?<?.B?<BN -@?<?.B?<BN -@ nf .Ю -@ `$ nf .Ю -@ `0.g <`b . oHn . /?.?<@N Bg?./. ?<BNv ]|9@^g <` `Bl^ . N^NuNVH0><2.|SA¼0?N8T&@f <` $@5G \/NX ,`L N^NuNVH0><2.\ASA¼A ,`$@ fAd $@)@`)@dBlh&R0+Ge*0+Gf$`0k0+7G)J` \`, `f?NT&@ f <` $@ &@`L N^NuNVH0 .]&@$l`` m n l`$R o l 2+Ёf R0(k R&`& 2*Ёf 0+j$`$)J`L N^NuNV/.?<IN\N^NuNVBn`&0.A.0nf0.A.BPRn nLmN^NuNV?>.=|0A."HPgXHf0(>N^Nu)I*)J&)_"NM"l*$l&/,"Nu)I*)J&)_"NN"l*$l&/,"Nu)I*)J&)_"NA"l*$l&/,"NuNV0./?<HN\-@ .f-| .N^NuNV`4 nH| f?< ?<NX nRH??<NzX0. Sn J@fN^NuNV` nRH??<NLX0. Sn J@fN^NuNV` nRH??<NX0. Sn J@fN^NuNVH0&n $KA\-H nf?./ N4\=n`L nf?./ N`\=n`. nf?./ Np\=n`-KBn?.N&TJ@f`H| f |o@ H-@/./.?.?<@NH 9@^Hg0<`0,^n/./<?.?<@N 9@^ @g0<`tRnR -@`R ned` 6.ƼЃ$@ H-@/./.?.?<@N 9@^Hg0<`0,^nBl^0.L N^NuC"2"2 2"2"2"22"2"2"22"2x9|)|`Nu[0][ScreenSaver! - V.2.0 | Mike Yocum, 1987| ][ Go ] ScreenSaver!CON:AUX:PRT:  (The Original) ScreenSaver! Version 2.0 Copyright Mike Yocum, 1987 (312) 469-4490 CIS 70375, 1255 GEnie Mike.Yocum Early in 1986, I released the original (honest!) ScreenSaver!, a desk accessory that would allow you to "shut down" your CRT if you stepped away for a bit. This is a new version, and it does several this better than 1.0 did. It will "shut down" your screen automatically after about five minutes if there is no keyboard or mouse activity. Also, if you've got monochrome, 2.0 will "shut down" your screen now, too (no more "flipping!"). Keep in mind, however, this takes an extra 32K of memory. After ScreenSaver! activates, either by choosing it from the "Desk" menu or automatically, you can bring it back by hitting any key, either mouse button, or simply by moving the mouse. I know there are other programs (a plethora of them!) that do the same thing. However, I still like having it as a desk accessory, although I'm not sure why. This program is copyrighted, but free. Feel free to give it to whoever you like. If you find any bugs, or would like to see any changes made, please let me know. . S W.. STARSTRKACC t X STARSTRKDOC t [A`p.|rp a3 r3 3 ~# xHy:?<&NN\3 r#2p#aX3 t0<3033# b2 H@# paff`A b0|(f0(y tg `|)f0(y tgV`|Jy |f03#2p4a3 |Hy$?<&NN\3 v`.#AJS Nu`(y x y$ xm3 va3 x`3 G ^&a$ana3 ~aa3 3 ~Nu0<BAJy gNuQQEv6<nJj gj 0<Q`t02*4<a|jj|e0|e(y Zby \b45A4*aB`(09 V409 X5@av5A5Ba5@ QlJy gXNuHM ^*V(m&m 668$m5|5|LNu?<NNT3 A3 Z3 \3 09 ZH3 V29 \I3 XNuAv6<n89 V:9 X00a00a 0a@0QNua y gaJy vg0<BAQQBy va>?<NNT# ?<NNT# < ??@ABCEFGNOV  ?pwpWU33ss77w$2>       J (6  .& ( b66. .R   vp Star-Struck - a new screen saver -------------------------------- Version 1.3 - Copyright Tony Sanson 1989 ------------------------------------------ What is Star-Struck ? --------------------- Star-Struck is a screen saver with a difference. Instead of just blanking your screen after 3 minutes, it smoothly fades it to black, and then fills it with a repeating burst of stars exploding from a central point. Not only that, but the stars are in colour too (assuming you have a colour monitor). Star-Struck will run in any resolution, and is unaffected by switching between low and medium resolution screens. You can also call it up from the desktop, or most GEM programs, as described below. Installing Star-Struck ---------------------- Star-Struck is a desk accessory, so just copy into the root directory of your boot disk. Boot up your ST, and you will find it in the desk accessory menu. Running Star-Struck from the desktop ------------------------------------ Star-Struck can be run at any time from the desktop, or from many GEM programs. Just click on it's name in the desk menu, and then let go of the mouse within 2 seconds (if you don't stop moving the mouse, Star-Struck will detect the mouse movement and bring back your original screen immediately!). The first time you invoke Star-Struck this way, a little welcome message will appear - this will not appear on succeeding times. To return to your original screen, just press any key or move the mouse. Star-Struck will also automatically start to run if you don't touch the mouse or the keyboard for 3 minutes, . Again, pressing any key or moving the mouse will return you to your original screen. Comments, etc. -------------- If you have any comments, bug reports, etc. please let me know via Scary Monster BBS - Fnet Node #1003 - 0734 320297. Tony Sanson 29 September 1989 . S ^.. TIMEDRV3PRG iX _vTIMEDRV NET jX ``0`|H3F0H|?3H0r h3JF'#LdL##vP#dvNuB9\,<~ aH:/f~<`~>a0a,~ a&B>/޼Aa~:a~ a #THy,yPN yT\N 9LcNudL,9Ld~ ,9XaNuRyF y<Ff8ByFRyH y<Hf ByHRyJ yJfByJ 9\fNu 9\f R9\Nu<<~ a<>9Ja~:a,>9Ha ~ aNur/RA| j|:?>a>rRFJ9LfNu2&yBҹN(A kL4+P8+RSD 9LfB,ppPQB,NuB,B,ppppQB,B,fTFNuE High & Medium Time & Drive Display by Lars-Erik sterud - July 1989Hy]?< NA\?<NNT. gR??<-NAXHG??<+NAX?<NNT<f|` |XX#`BHGHy?<&NN\B/<]?<1NA   P     From: koreth%panarthea.ebay@sun.com (Steven Grimm) Newsgroups: comp.binaries.atari.st Subject: v06i045: timedrv3 -- Display time and drive in corner of screen Keywords: arc, uuencode, medium, high Message-ID: <34045@grapevine.uucp> Date: 7 Aug 89 21:54:39 GMT Sender: news@grapevine.uucp Lines: 30 Approved: koreth%panarthea.ebay@sun.com Submitted-by: f-leoe@ifi.uio.no (Lars-Erik 0sterud) Posting-number: Volume 6, Issue 45 Archive-name: timedrv3 Displays the time and current drive and data direction in the upper right corner on medium or mono screen... If you have a internal clock card it will also set the time (no need for AUTOTIME.PRG if you have Micro-Deal clock-card) . S a.. WAITTIMEC }T b+ WAITTIMEPRG }T e$/* This program waits until a certain time is reached. It is good for putting * into a batch file in case you want to execute a program at a certain time * but don't want to wait around until that time. The format is : * * waittime HH:MM:SS * * Where HH = The hour time, MM = Minutes, and SS = Seconds. All three * fields must be included. The program only checks for proper length, not * for proper format. It does, however, ignore extra stuff to the right of * the correct string. (All slots must be filled, so an example of a time * would be : * * waittime 01:04:00 * * Always put in the leading zeros... * * This program was written by : * * Matt Leber * * If you like this program and use it, send $999.95 to : * * P.O. Box Youvegottobekidding * Illbuyanything, WA 98040.... * * In case you haven't figured it out yet, that is a joke, this program * is free. If you have any comments, suggestions, or ideas for other * utilites that you might want programmed (this program was a suggestion, * and I did it to kill a little time) leave me a message on GEnie or * or CompuServe : * * GEnie mailing ID : M.LEBER * Compuserve ID : 73657,3646 * * One last note, this was written and compiled with what I feel is the * best C compiler for the ST, Mark Williams C, Version 2.0. If you are * planning to buy a C compiler soon, I would STRONGLY recommend it! */ #include #include main( argc , argv ) int argc; char *argv[]; { tm_t *gmtime(); /* Declare the function as a pointer to the time * structure */ tm_t *time_in; /* An extra variable for reading in the time */ time_t timenumber; /* This is the actual system time read in */ char timestr[ 9 ]; /* A string for setting up the time in */ if ( argc < 2 || ( argc >= 2 && strlen( argv[ 1 ] ) < 8 )) { Cconws("Usage : waittime HH:MM:SS\n\r"); exit(1); } /* Invalid format, exit the program */ Cconws("Waiting for : "); Cconws(argv[1]); Cconws("\n\n\r"); do { time( &timenumber ); /* Get the system time */ time_in = gmtime(&timenumber); /* Convert it to time structure */ sprintf( timestr , "%02d:%02d:%02d",time_in->tm_hour,time_in->tm_min, time_in->tm_sec); /* Put it in the string */ Cconws( timestr ); /* Put it out */ Cconws("\b\b\b\b\b\b\b\b"); /* Pring back spaces to clean up old * time outputed */ } while ( strncmp( timestr , argv[ 1 ] , 8 ) != 0 ); /* Check to see if time has come */ Cconws( "\n\r"); /* Go down to next line */ } `*o m$m,B"HJgP"&J$YJf"Jg< Af Rf Gf Vf =f Jg#B "&J$YJf"Jf&f2B "EHB2 r ggSJ"g fB*`B" #.I+I/ #//SA?/ / Bg?<JNA Jf.?<?<N>ND?|BWN>NDXON" ?NL?<LNANV nm nm0 n /(N"XO @l/<p ?NA\Op?NLTO/<p ?NA\O n /(p ?NA\O/<p ?NA\OHnNXOHnN 4XO-@ n? n?( n?(/<HnNHnp ?NA\O/<p ?NA\Op? n /(HnN4 J@f/<p ?NA\ON^Nu o"Jf S@Nu"o oB2/ gSAfJgQHHNuNVHn/<NPON^NuNVHn /.NPON^NuNVHn?</.N: Hn HnNPOHnBg nN\ON^NuNVH0-n n(PXH> @%gJGgf/.? n hN\O`p =@p=@p=@H> G-fp=@H>`Bn G0f p0=@H> G*f& nT=Plp=@0.D@=@H>`*Bn G0m G9n0. G@0=@H>` G.fJH> G*f nT=PH>`*Bn G0m G9n0. G@0=@H>` Glf&H> Gdg Gog Gug Gxf0@> `-@*@p=@0 |2<`XHXW PN`J nT=PJnl0.D@=@p-p ??./ N^PO*@`p ? nT?`p`p` n-PXJl .D-@p-p ?/./ N `p ? n// N *@X`p`p` n "(-@-AP/ ?././.?Nf`RBn n-Pf-|X .-@*@JgJnm noS`(Bn nT0` n//.NPO`X ./0.Hї =@lBnJnfLJng0 n0f( n -f/. nRH? n hN\O0.SnJ@g /.?.` nd /. nRH? n hN\O`Jng0.SnJ@g/.?. n hN\O`L0N^NuNVH >. *NB%0<g"0H@H@B@H@ @V>`?Bg _VJg nR` .L N^NuNVH0*n>.IB$p0//. NPO-@g$p0//. NPO @V-n ` n VJg` L0N^NuNV/ *n .*+@+|B-0. D@;@ m l;| +|`+| *_N^NuNV/ *n Sm lBm p` UR0.*_N^NuNV/ *n UR0.*_N^NuNV/ *nRm oBm p` URB@*_N^NuNV/ *nJf0-H@f?<N&TO+@f+| +|`n-H@f2-H?NTOJ@gf+| R+|` -`&+| R+|L-H?NTOHЭ*+@Bm *_N^NuNV/p?B?.NPO. fB@`0H@.N^NuNV/ *n/ NXO/ mNXO*_N^NuNVH >.*n / NXO/ ? mN\OL N^NuNV/ *|lY MeJg/N bXO`*_N^NuNVH *n-H@fp`@/ N XO>-H?NTOJg-H@f /-N>XOB-0L N^NuNVH *nBm -H@ff >o?/--H?NzPOGf$JGm mAf -*+@`+UB@` 09~H fBy~`-pL N^NuNVH *nRm o/ N XOJ@f `f/<N XO -?/--H?NPOD@;@ @f^09~H fBy~`-Bm `F0- Rm m+H URB@>-H@ g G gL Gg 0`Jm f-pL N^NuNVYO n/N ^POC I/ / N PON^NuNV/<Q ./NPO-@/<Q/.NPO%=-@CA$H$$N^NuNVH *|..,.   QmQRBmp/ R/NPO;@ * #o@/<7Ipd//NDPO !%Y/NPO*p//NPO" ЅR* (/<pd//NDPO//NPO;@ pd//<0- H/NDPO/NPO/<Q/<'/NDPO/NPO;@/<'/<Q0-H/NDPO/NPO& ;@ mm"<`r@ ;@ m op `pm mo0<l`0<km mo?- NTOJ@gRmp.*n G f$-H@ g/ p ?NL\O @fp`0Sm l"/ NXOJ@f -S@;@ UR0L N^NuNVH >.*n G G f -H@ g/ p ?N\O @g^Bm -H@fN/ NXOJ@f@p?Hn-H?NzPO @f0` 09~H fBy~`-pL N^NuNVH >.*n G f$-H@ g/ p ?N`\O @fp`?NAXO/NXO`B@N^NuNV/?.pE?NAXO>l0H/NXO`"?.NTO=@m?.?NXO0.N^NuNV/?.?. rF?NA\O>J@f(?.NTO=@m?.?. NXO0. `0H/NXO.N^NuNV?.NTO @Cfp`B@N^NuNV?.?./. pB?NA /NXON^NuNVH ?.NTO @Cf|9H>9HH*@SnmSGldpQB9/<p ?NA\O>l0H`p ?p?p?NM\Op9H>9HH*@0Gp H: Ef~` n R RF E fn 0`$/. 0.H/?.p??NA /NXOL N^NuNVHNv.Jf>/</NPO&YON&/NBPOC I/ / NPO#/</NPOй,Jg n LN^NuNV/. 0.H/?.p@?NA /NXON^NuNVH >.0V@ @bH0@f PN`*pP`&pA`"pC`JGm*ySGmJfp`JgHL N^NuNVH >.JGm*ySGmJfp` Jg0. L N^NuNVH >.0V@ @bHH0@r PN*yHGg Jfp`&R` ?NTO`~C`~A`~P`pL N^NuNVJl .D3~p` .N^NuNVH0*nH@ @fR(|vc$H>4B2AA0@@AB9`Sy~ yn!yrL0N^NuNVp"?NNTO#n yn#r yn!|/<Bgp?NNPO yn g <vN^Nu"o`C"/jD$jDA`|J/j JgRJk`JjDNu"o`C"/$A`JNu"o`C$jD"/A`, g J/j Nu"o`C$"/A` NupJfpN∲cd⒒d҂dFN o"`"/ jD$/jDD$@A`" jDNu o"`"/ _$0"@0HAHBЁH@B@ЉNNVH8..P b d.</NXO*@ Mg`Jf&M ##`& yf QP&m`(yQ L&h)M Q@* Ѝ#(@Q LB)KL8N^NuNVH0~ .\S@,dB`ƙ*y gr .gH g @є .*L(Mc2  d @*`* Ѝ# y X`dJg @Ѝ*@`*mf g#Ry09 @e Sy`X/NXO/.N6XO*@Sy L0N^NuNVp0./N6XON^NuNVH .Y*@Jf4~0GJg 0RG0@H?p?p?NM\O`NL N^NuNV/ *nJg/<H? yN\OR`/<p ? yN\O*_N^NuNV0.@f, n.m 0.HdH@J@f0.HH@J@fp`B@N^NuNV/<Q .%=/NDPOЮ N^NuNVH *n0- @l>0-R@< FnSGF 4HHBBB2-H0HH . o4H…2HdpAB:`zpd//<0H/NDPO/NPO(/<'/<Q0R@H/NDPO/NPO&0-EHЄЃB-@p&2> 0., H  @J$  $"  f  4\.$b 0free_>lmalloc_6vmulxmain_"errno_~_fgetb_R _fgetc_ _fpinit_ _dtefg_ftm_to_jday_Bjday_to_tm_ _stropen_:write_z_stksize__getfhtype_isleapyear_time_sbrk__stderr__a_scanp__cmdname__fp__aliasfh_2jday_to_time_time_to_jday_^ malloc_&fprintf_tKgettime_&exit_L_setfhtype_dup2_Dlldiv~fclose_b llrem_fputb_L_fputc__stdin_environ__boottime_lrdiv_stdout_lrremgmtime_4 vldivsprintf__a_first_llmul<vlrem_dtoa_strncmp_4fflush_ dup__iovector_clock_vputs_vrdivlrmulDvrrem_start_vlmulh_seterrno__fputt_`printf_Zlseek_close_vrmulpstrlen_"_exit_vdivfinit_read__fpseek_lsbrk_isatty__fgetstr__finish_4 _fginit_. S o.. XAUTO DOC }T pHXAUTO PRG ~T uI Xauto ver.1.00 (06/04/87) Xauto is a machine language program which lets you copy files, delete files, or run a (TOS) program. This was originally designed to make it easier to set up programming environment --- I usually copy an ARCed language file which includes the editor, compiler, etc. to Ramdisk, and then unARC the file, and finally delete the file *.ARC (which is no longer needed). The Xauto program makes this process automatic. 1. A:\XAUTO.COM file Xauto requires a command file named A:\XAUTO.COM. This file is a simple text file (which can be created/edited using any text editor) consisting of command lines decribed below. To create your own XAUTO.COM file, use any program-text editor. (The length of the XAUTO.COM file should not exceed 4000 characters (approximately 50 lines)). Each command line should be terminated with RETURN (internally CR/LF). There are three commands available --- These are C(opy), D(elete), and R(un). In the following, a 'filespec' is any legal file specification consisting of the drive name, folder name (pathname) and the filename. Wildcards (* or ?) are allowed for filenames. The following are examples of valid 'filespec': A:\FILE.PRG A:\test\*.prg (all files in the folder 'test' with .prg extender) A:\FILE.??G (? can be any single character) A:\*.* (all files on drive A) Filenames or folder names can be in either upper or lower case, but the drive name (A,B,C, etc.) should always be in upper case. 1) copy files The format is as follows: C source dest where 'source' and 'dest' are 'filespecs' (see above). The destination filename should be *.* (you can specify drive and path). For example, C A:\TEST\*.PRG C:\*.* will copy all files in the folder TEST on drive A to drive C (in the main directory). If you specify a folder name in the destination, and if no such folder exists, the program automatically creates it. 2) Delete files The format is as follows: D file where 'file' is any valid filespec. When you specify a pathname (folder name), the program tries to delete the folder itself (although it is not deleted if there is at least one file remaining in the folder). So a command like D C:\TEST\*.* will first delete every file in the folder TEST, and then deletes the folder TEST itself. 3) Run a program The format is as follows: R file commandline Where 'file' is any valid filespec. The 'commandline' is any TOS command line. For example, R A:\ARC.TTP X C:\TEST.ARC C:\ARC\*.* will run ARC.TTP program, with a command to unARC C:\TEST.ARC and put the extracted files in the folder ARC. NOTE: TWO spaces are required between 'file' and 'commandline'. 2. How to use XAUTO.PRG 1) autorun In order to let XAUTO.PRG run automatically, first save your own XAUTO.COM file on drive A (do not put it in any folder). Then create a folder named AUTO on drive A and put XAUTO.PRG in it. You can put other programs (e.g., a Ramdisk program) in AUTO folder --- files in AUTO folder are executed in alphabetical order. If you want to copy files to Ramdisk, make sure the ramdisk program is executed before XAUTO.PRG. REMARK: There are some programs which do not run if they are put in the AUTO folder. Such programs cannot be executed with R(un) command. 2) from GEM desktop Another way is just to save XAUTO.COM file on drive A, and run XAUTO.PRG from GEM desktop. In this case, virtually any program can be executed with R(un) command. 4. REMARKS 1) The program does not do rigid syntax checking. When you first try your own XAUTO.COM file, write-protect your disk. 2) Errors are ignored by the program. 3) If you press any key before Xauto.prg runs, Xauto prints a message 'Xauto aborted.' and ends. This feature is useful when Xauto is used along with a reset-proof ramdisk. 3) his program isss written in GST-ASM from Antic (I highly recommend this). The source code is available on request. 4) If you have any comment, please leave me an Email at THE KEY SYSTEM BBS (415)352-5528 Makoto Nagata `N\XAUTO.COM H#/<?<;NA\&zJg>*K(M \fB/ ?<9NA\\B/<?<;NA\/:?<;NA\&M`L?NuH##3/<?<NA\*zB3?:?<NAX/<?<;NA\/:?<;NA\3J9gJyg-:|aB9`=:tL?NuH$# z#&J9$f c` 9$g:g ` b`-:L?NuH#z zB@@A3~#g \f#`-:-:=:L?NuH#*z(MJf$g2&L #\f*KRB/:;NA\B/ ?<<<:NA\\(K`L?Nu-:<a# zB-:aB3 # # "-:<a# -:<a# zB-:a3 &# (# ,-:j< a# =:j-:h-:h<a3 Jy f?</:H?<NNAPJf?</<?<=NAP3 =:"-: -: <az3 Jy f?</<?<NAX?:`?<>NAX?<?<NAX?<ONAT`Nu-:*<aF# zB-:a3 # # "-:<a# =:-:-:<a^3 Jy f8?</:?<NNAPJf/:?<ANA\?<ONAT` zB-:a^Nu# -:<a# zrB-:fa3 # # "  g$ :JR# -:>< aV#  z(B=:8-:6-:6<a3 Jy f2# 0# 4/</:/:?<?<KNA.z*zNuxauto aborted. ?<?<NMXJ@g./<8?< NA\?<?<NMXJ@g?<?<NMX`Nu/<?<NA\?<?<NAX/<?<;NA\?</<?<NNAP#* 8?</<?<=NAP3 J@k  8e # 8/< NAX | <# # < -:<a#  z#  Cfa` Rfa` DfaX`Nu*O*m - Э " Ҁ,AЭ" Ҁ.A// ?<?<JNA N|BgNA 68" 4"\$ ZB J.  &`7P&|`Nqz8< 6< ><4<(H*lONN+| ;G pNN Change Boot drive rNz>- ?A ./NNO;G ~=A .v!N~"m . /NXO~"m . G>;G >- G(g`NqN`Nq`Nq`NqNTpNA.-N[0][-N You haveNr-~DGNNNr-NV bytes free | | Select your BOOT drive | ][ drive A | Cancel | drive B ]NrN,A.pN-A.rNz.-~?.-A ./.-NNO ^0>, Gg`&Nq~HNJ><FH-~N`\Nq`PNq>, Gg`Nq`>Nq`2Nq>, Gg` Nq~HNJ><FH-~N` Nq`~NqNN\Nu~N0C0<HЈ",e(E`a T;|#`p a?</NATA`Va 4I0ga,`a"a/-D?<NA\A<+Hpah`ACC ABORTED H`// Bg?<JNAO JfLEA@,A0,Hp!!!.HA 0D"MBQ;@+F +LfSE;ED;D Ca:HNHz+_>HǞkn"a^ևQ"`L` GaLJgH<fZxCiff4)C k2BCHUDk0BAҀQ8. NuHxCSDt =QaL`ap3aj ad a^ aX FBH*&k趙nUDk.k־n"aևQ"` GaJgV<fxCift4)C kJ^f2BCHUDkJ^fx0BAҀQ8. NuHxCSDt -QaL` GJf.4-4/ x$Nr6ASAHDJDfHD0BkR@Q/ pgaC2 AA ?H؁a222"8B2HR2 UAk0B22R@Q2prHASCd2`"Qd&_Nu2 4BSAA M BC p0 !Q&_ GJfb4-4/ H/~$Nz6ESE"kJRaQ( pga@C2 AA?H؁a222FY"."R: UEk"""RaQ(*`0 Ga<f()aB`?aJg0if$Ip0Nua a,<@Jj<a#h$Nuai 0GgDNu H@GA6a G@VGa GUU|vGa `"*(*`A"a ~Jvg mvNJga j`A a `"a JUgAa Nr2a zNuSe<dAa 2AJg (JfS`LIBRARYSTARTUPOPENPEEK/POKEBLOAD/SAVESOUNDLOCATEINKEY$GEMDOSDIMARRAYBLITREDIMCVsMID$==MID$RIGHT$ASCINSTRPALETTEMALLOCMENUSCREENSQRTWINDOWJOYSTICKTIMEDATEMOUSELOG Y8 Runtime error at line in module on #A+HvNuA g<PdJfSfNuRETURN without GOSUBOut of DATAIllegal function callArithmetic overflowOut of memorySubscript out of rangeRedimensioned arrayDivision by zeroType mismatchString formula too complexRESUME without errorLine buffer overflowWrong number of dimensionsFIELD overflowInternal errorBad channel numberFile not foundBad file modeDevice I/O errorDisk fullInput past endBad record numberBad file nameToo many filesDevice unavailableDisk write protectedPath/file access errorPath not foundBREAK pressedFatal bus errorFatal address errorApa+@0Apa+@(Apa+@,NuaHm|9|rPJ-6fr(A|a>ra,rwa&Q"B,#`H Lpav#L (IL)HNu l p`z&_|dVA`d&FLLn0kN0SN0kNp*JgHP0SNL fS`NuzpgH P0SNL f < gR`"NupJgH P0kNL fS``<daTa@pNupDNu`aHz<d̰<ga"Va`-5f -5fNuH?<?<NMXJ@gN/<NMX-5g<g,-5g*<f$/<NMX<g-5g<faM+@LNuJ,"gHra~rfaxLNuHrahrf,"a^LJNu<dA`HL.6H>HHHHd Q"aapNuP"pNuQ"pNur,#pNupDNuB,B,#rarE`pNu|dp,@dAB#A B H`rarYaL8a`/ Jikrarba"W2)a2A az"WJikralrcaf"_2)aA `VXpNu?AA,0-0|gS@gA 00Nu    H @rareaLx*&I/ at&_< gT< gN<g <g< eںgHR/ a|&_`JgSJ,gS,/ rar ara&_`r ar a"p@Nu?,?<NMX<f lf -5frpNu?r aFr ax2< gp< g4R,,g,e lf< d<g<d<dp`0,<f< f ,#dR,#A???<NM\Jlg pNuB,`Rgp9Nu0,??<NMXrJfrpNuSgSgUg|SgpDNu&fvRBg/?<=NAJkb8>N?|NAJfPP0(<(؃Aa6)mV)C)C$)C |||9@p)@@)@NuPH`t9+@8lAgf LNuF5LCKKBg/?<NAXapNu`8,<d$ gA @N.X@(ḛ|dA`d|p<gJf",gaBf atrpNur)ApNuHl(/, ??<?NAO Jk)@gB$Nup>Nua ,$e agp>)@NuA(r0R<gR$pNua",g$S)AS$dBg?/?<BNAO JkavpNuapDNuax?(,$gA($e(٬٬$af8Jg*)l$/ /??<?NA"/O Jk ѬfHpNua$< g4< g2R,,g(,d"B O | ApB,aXNuB,I? OpaTNuJg&//??<@NA$/O "Jkpgp=Nup"Nua  IJ,f6,Sev H x ggRQdAL0`r`Jg, I,< g< gReSf C`Zv`SH @vapAaBLgNu fXp6Nufp6XNuaB$BSt QdBg?/?<BNA"/O f Hl(/,??<?NAO Jkgr)ApNuaB$Bg?/?<BNA"/O Jl |fZ/?<?B?<BNAO "Jk@g(*HEJEgpH@ @ajf(SE`HE  |aVf ,B$A(aDfNu` f(Jj", )A R $,Gax"GA( ,NuXp6Nu?<?B?<BNAO /?<?B?<BNAO "&Bg?/?<BNAff$, `$/`$,"O pNua Tp6Nu< g,< gR,,g,e&,$d 8(R$pNuB,`?r ar a2`p2Nu",pNuPRT:AUX:MID:KBD:LST:H@b0HCAalg (IpLNuLp4Nu8<0DaQNuH@af Hp0a L LJNu lN -f ?+mj+mnNuBm;| Ap 0Q0BmpNBT@g$pMa;@p-6T@;@0<da0-f:pMa;@;|0<da0-fa Cannot open workstation;@;@BX+m^\BmBmp&at;mTpm;@VBm;|Bm;|p'aJBm;|;|pa4Bm;|Bmpa NuQ7a -gBm+@paBBm;|pzaa BmBmpeapa`&pD`p4ONu/ H0@az0/|bCHI o f"+|phaADC1111/HC2"X"\pda|k(<6A"a9@;@&|B,B,#9m "o B2B.Jo g& Ia&a R/ a )H."_HaB"l.;l;|+IpiaRmA+HpiaL 8A0P0000pea;|phaL@ASBSCHHJJ-7fa|p0,lT@C$"V#zV3zTapNu;|;|A+H+H;|A"    A"Nu0,2,l4,6mVA`6420ll@AH";|Bm;|p aXpNup;|;|;@LCBllH" H@+@p apNup fpBm`0j 0,(RBg0,&/aLL a$0,(Bm;|;@papNuLCBBm;|llllH"papNu;|;|;|llH"pgatpNup,@d$ATRBV0lld HpNupNuA$C p2!k0TQC$/ (IBm;|;\pa ;\pa;\pa;\pa;\pa(_pNu;l;|A1111pia;|phaL@ASBSCHJ-7fak^g2k8<d,&B<ރeNuRid~S<Nu.NuJNu<oD&B<ރeNukgvgPk<<d&B꫞kBSbHGއ[kgNu~Nu<oD&.<`DgjD`k gBAkjDNu<Nu~NuBkjDDNufDJjNuHz_Jg0jzDi&SbHGއ[Jj dRNuMC68343 FLOATING POINT FIRMWARE (C) COPYRIGHT 1981 BY MOTOROLA INC.pq/o"/`pp"/a o Nur.Aa o0NurLA p`.A+PC2BYpa*p/`r+A p`r*Ap+P`pz`p{` pr`p2`p)Nq;o+oan>Nup(`p-Nq+o`vr`rN;o`r `r /H@+@+o`2ApapGa `$ApapFa`p,;o +oaA r`ppOa`LpMa`Dp6+oa`6A pa>pla`&Apa.pa`p;o"/HA+AaAr`ph"/`C2QNu>E"`2QNuA@p a+o /H@+@paTrA`A pCapK+o `8re`rdAp`$ri`rHAp`rI`rJAp`r3Apat0a>Nupo`p`pj`p`p"/HA+A`p5` pk`pg`pf;o`pm`A+HA<+HpxaC`0?</NAT+@DHmSe `Bp a >NuC< I /$H@""/HA"C6420aC Q0 a0 a0 a0Nu2` .|N>.NA"/0<NBNuNVJy!fB?<N2T3!N^NuNVJy!gB?<N2TBy!N^NuNVBn`0n#(0Rn n m3#<3 !.#/<!/<#(NlP y#f y#fp`p3#D y#fp`p3$jN^NuNV=n=n 0.n S@=@0. nS@=@.Q?<?9!NhXN^NuNV.!/<#&/<#@/<#>?<BgN>!?9#&?9#@?9#>?</NvP3$hBWBg/<?<?9$hNp 09$jK>09#D$jK??<209#Dd??9?9#?9#@?9#>NL09$jK>09#D$jK??<209#Dd??9$hNP.!/<#&/<#@/<#>?<?9$hNN^NuNVa>N=n =n =n=n.U/Y/]/Q?< ?9$hN`\.Q/NXJ@g>?.?.?.a\>a L.U/Y/]/Q?< ?9$hNJngJnfBWNaN^NuNVN./<#/<#/<$fN 3 .?9$DNTT33$hBy!3#BaN^NuNV`bBn.$B/</<$B/<$B/< /< Bg?</< BgBgBgBgBgBgBgBgBgBgBg?<?<?<1Nn8=@>N.$B/<$B/<$B/<#J?< ?9$hN.gd09 `.09 y$hf(Jnf"> ?9 ?9 ?9 ?<aP` 09 y$hfBWBgBgBg?< ?9$hNp `09 yf y$hg>!N3$h`09 y$hfj>$hN>!?9#&?9#@?9#>09?09#@?BgBgN>$hN>!N3$h`009 y$hf09#@y o09#@3 09y o093 > ?9 ?9 ?9 ?<?9$hNp .!/<#&/<#@/<#>?<?9$hNa>!?9#&?9#@?9#>?<a.PBy#B`T09 y$hf09#@y o09#@3 09y o093 > ?9 ?9 ?9 ?<?9$hNp .!/<#&/<#@/<#>?<?9$hNa6By#B`09 yf6 y$hfaBaa`BWBgBgBg?< ?9$hNp =|`LJy#Bg.!/<#&/<#@/<#>?<?9$hN>!?9#&?9#@?9#>?<?9$hNp .!/<#&/<#@/<#>?<?9$hN`.!/<#&/<#@/<#>?<?9$hN>!?9#&?9#@?9#>?<?9$hNp .!/<#&/<#@/<#>?<?9$hN y#Ba``||b@0@@ PN y gB@`p=@>Nx|yf.g0 y$hg&Jnf >!?9#&?9#@?9#>BgapPBWN`N^NuNV`nhJnm0.HhH@=@0.H=@ nn0n"| 00H`Z nn0|"| 00H`: n-n0n"| 00D@H`0|<"| 00D@HN^NuNV>WZaHN^NuNV>Nx=@0.r `|H H@=@0.@|?=@>?9!NT>?9!NNT.#?< ?9!N*X>?9!NT>?9!N$T>?9!NT>?<?9!N^X=y$l=y$n/</9#F0.?0.HWaHT/NP/NP29$lHЁ-@ .=@/</9#L0.?0.HWaTH/NP/NP/09$nH-@ .=@.?<?9!NX/</</9#F0.?aT/NP/NP/NP/09$lHП-@ .=@/</</9#L0.?aTH/NP/NP/NP/09$nH-@ .=@.?<?9!NX3N^NuNVJngh>?9!NTBW?9!NT=y#>=y#@09#>y#&S@=@09#@y!S@=@.Q?9!NTBW?9!NT>?9!NT09!H>09#&H?09!H?09#@W09#&H?09#>W?9!NPaN^NuNV09#&Hy#>3$l09!Hy#@3$n09#&HS@H##F09!HS@H##L-|#Bn`0.=@/</</9#F?.aLT/NP/NP/NP/09$lHП-@ ."n2T/</</9#L?.aTH/NP/NP/NP/09$nH-@ ."n2TRn n m6N^Nu#NN/9Nu#NM/9Nu#NA/9NuNV# 3 $F3$HBy$L3$P3$RN#!N^NuNV3e$FBy$HBy$L3$RNN^NuNV3 !3 !3! 3! 3 $F3$HBy$L3$P3$RNN^NuNV## .мZ#3d$FBy$H3 $L n 3$RN n 0$R###"#!N^NuNV# 3$F3 $HBy$L3$RN#!N^NuNV# 3$F3 $HBy$L3$RN#!N^NuNV# 3 3$F3$H3$L3$RN#!N^NuNV3 3$FBy$H3$L3$RN09N^NuNV3 3$FBy$H3$L3$RN09N^NuNV3 3$FBy$H3$L3$RN09N^NuNV3 3 3l$FBy$H3$L3$RNN^NuNV3 3$FBy$H3$L3$RN09N^NuNV3 !By!3$F3$HBy$L3$RN09"N^NuNV3 3$FBy$H3$L3$RN09N^NuNV3 3$FBy$H3$L3$RN09N^Nu#$F"<psNBNuNVBBJlDRBJ lD RB0. -@0.2. An=@ .gDN^NuNVH?BCB..,. f# <`hlDRCJlDRCn8fzB`0l :HGH`xe`Jge`|fD# D`# JLN^NuNV3#P0.|Hм-@=|` nH2n#P2RRn nm.$>NB@09#xN^NuNV##P ## ##X ##x #$^ #$p # $>> aF3#x$DpN^NuNV>a*pN^NuNV3#X3 #Z3 #\3#^3#`3#b3#d3#f3#h3#j3#l3#n3 #p3"#r#$$^3(#t3*#v>N n,0#z n00#| n40#~ n80# n<0# n@0#B@09#xN^NuNV3#X3 #Z3 #\3#^3#`3#b3#d3#f>INN^NuNV3#X3 #Z3 #\3#^3#`3#b3#d3#f>JNN^NuNV>MN n0#z n 0#| n0#~ n0#B@09#xN^NuNV3#X# $^>NNN^NuNV3#X# $^>#NN^NuNV3#X3 #Z3 #\3#^3#`>dNN^NuNV3#X3 #Z3 #\3#^3#`>eNN^NuNV3#X>fNN^NuNV3#X>gNN^NuNV3#X3 #Z>hN n 0#z n0#| n0#~ n0#B@09#xN^NuNV3#X3 #Z3 #\3#^3#`3#b>iNN^NuNV3#X>kNN^NuNVH *n(n >0-W?0,WN~T:>0-W?,0,WN~T8>?NbT>>?,NbT<89F0G9@0F9@GoFnB@`pJL0N^NuNV0.n o0.`0. N^NuNV0.n l0.`0. N^Nu @(#)CLOCK.ACC V0.03 Atari Corp. /jwt N %*/37m:x<>?@b\xT CLOCK Clock  >        2>  (                      "             L .:     $ & " " "       ( ( .   zf  $             *