NNNNNNWHp NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNN啪O o! #@%`')+-/1 3@5`7;=AOoGIKOQ U`WY[]_a c@e`ikmoq s@uwy{}@` @ ` @ ` @ ` @ / @ ` ׀ ٠  @` @`!O  !!!#A%a')+-/1!3Ao79;=?A!oIKOQ!SAUaWY[]O o! #@%`')+-/1 3@5`7;=AOoGIKOQ U`WY[]_a c@e`ikmoq s@uwy{}@` @ ` @ ` @ ` @ / @ ` ׀ ٠  @` @`!O  !!!#A%a')+-/1!3Ao79;=?A!oIKOQ!SAUaWY[]DESKFORMAT Ft GEMAUTO Yt PARSET gt BIGSCRN zt COLD_START t G_DEMO FLDt UNLOCK11FLDt >GDOSBOOT t BRE_START t LMONO_EMU t SDESKMG21 t gSUPRBOOT2_3t BLITTER ;t BOOTUP bt MAC_MENU t CAT_ACC 5t SLOWDOWN St MOUSPEED 1t BREAK Pt DCACHE et STARTGEM t CSCROLL t MONVERT FLD$t TOPIER FLD8t \. G t.. G tREFORM LSTHt , REFORM PRGKt REFORM S Nt  HiSoft GenST Assembler 1.21 page 1 20/11/85 0:02 1 ; Reformat redirects O.S. format routines to "fast format". 2 sys_call: macro 3 move.w #\2,-(sp) 4 trap #\1 5 add.l #\3,sp 6 endm 7 8 00000000 206F0004 move.l 4(sp),a0 9 00000004 2C3C00000100 move.l #$100,d6 10 0000000A DCA8000C add.l 12(a0),d6 11 0000000E DCA80014 add.l 20(a0),d6 12 00000012 DCA8001C add.l 28(a0),d6 13 14 00000016 2F3C00000042 move.l #newtrap,-(sp) 15 0000001C 3F3C002E move.w #46,-(sp) 16 00000020M sys_call 1,5,8 17 0000002C 23C00000007C move.l d0,trapsve 18 00000032 4267 clr.w -(sp) 19 00000034 2F06 move.l d6,-(sp) 20 00000036M sys_call 1,$31,8 21 22 00000042 244F newtrap: move.l sp,a2 23 00000044 08170005 btst #5,(sp) 24 00000048 66000006 bne super 25 0000004C 4E6A move.l usp,a2 26 0000004E 5D4A subq #6,a2 27 00000050 0C6A000A0006 super: cmp.w #10,6(a2) ;flopfmt? 28 00000056 6600001C bne normal 29 0000005A 0C6A00090012 cmp.w #9,18(a2) 30 00000060 66000012 bne normal 31 00000064 0C6A00010018 cmp.w #1,24(a2) 32 0000006A 66000008 bne normal 33 0000006E 357C000B0018 move.w #11,24(a2) ;fast interleave. 34 35 00000074 20790000007C normal: move.l trapsve,a0 36 0000007A 4ED0 jmp (a0) 37 38 0000007C 00000000 trapsve: dc.l 0 39 40 end NEWTRAP 00000042 R NORMAL 00000074 R SUPER 00000050 R SYS_CALL M TRAPSVE 0000007C R ` o,<ܨ ܨܨ/<B?<.?<NM#|Bg/?<1NA$OfNj]J j f j f jf5|  y|NH; Reformat redirects O.S. format routines to "fast format". sys_call: macro move.w #\2,-(sp) trap #\1 add.l #\3,sp endm move.l 4(sp),a0 move.l #$100,d6 add.l 12(a0),d6 add.l 20(a0),d6 add.l 28(a0),d6 move.l #newtrap,-(sp) move.w #46,-(sp) sys_call 13,5,8 move.l d0,trapsve clr.w -(sp) move.l d6,-(sp) sys_call 1,$31,8 newtrap: move.l sp,a2 btst #5,(sp) bne super move.l usp,a2 subq #6,a2 super: cmp.w #10,6(a2) ;flopfmt? bne normal cmp.w #9,18(a2) bne normal cmp.w #1,24(a2) bne normal move.w #11,24(a2) ;fast interleave. normal: move.l trapsve,a0 jmp (a0) trapsve: dc.l 0 end . Y t.. Y tSTARTGEMPRG[t README ]t n`A aBgHz?<=NAPJ@jHz&?< NA\?<NAT`K:Hz/<@??<?NA JkrAB(??<>NAXB?< NA\Ot#,*|:<JgXQHy?< NA\`(E**E$/?< NA\OABg/?<1NABgNAp,gNAp PB y,CZ"C:#, h h$h C>"A "gNu#FNu o Pf# , zCfHy?<NA\?<'Hz?<NNAPJ@fjKB@|ߐ<A??<NAXRI:<?JgQ:<? $\gQRBHy?<;NA\ o PPgTgf zlN4XOF8NA  g "gHz` 3.3NuSTARTGEM.INFOops! No vertical blank interrupt vectors left! Error! - Can't work with this TOS-version. Error! - Can't find STARTGEM.INF in root directory of boot disk. Press any key to exit. EOPA(b\ To use the Startgem program you first have to transfer the Startgem program into an Auto folder. This must, obviously, be on the same disk as the program you want to autoboot. Next - use a word pro or text editor to create a file on the same disk and in the root directory - this file need only contain the name of the program that is to autoboot. The file should be called - STARTGEM.INF example contents - A:/1STWORD.PRG The above file would auto run a program called '1STWORD.PRG' Enjoy! Mike Goodman. . g t .. g tPARSWTCHS it PARSWTCHTOSlt Pram=$42f drive=$446 verify=$444 hertz=$ff820a move.l sp,a6 here: screenp lea title(pc),a4 bsr print lea op1(pc),a4 bsr print stat1 move.l #drive,a3 clr.l d2 bsr super move.w (a3),d2 bsr user add.l #65,d2 move.w d2,-(sp) move.w #2,-(sp) trap #1 addq.l #4,sp lea op2(pc),a4 bsr print stat2 move.l #ram,a3 clr.l d2 bsr super move.b (a3),d2 bsr user cmpi #8,d2 beq stat2op1 cmpi #$10,d2 beq stat2op2 bmi stat2op3 bra end2 stat2op1 lea s2op1(pc),a4 bra end2 stat2op2 lea s2op2(pc),a4 bra end2 stat2op3 lea s2op3(pc),a4 end2: bsr print lea op3(pc),a4 bsr print stat3 move.l #verify,a3 clr d2 bsr super move.w (a3),d2 bsr user tst d2 beq stat3op1 bne stat3op2 bra end3 stat3op1 lea s3op1(pc),a4 bra end3 stat3op2 lea s3op2(pc),a4 end3: bsr print lea op4(pc),a4 bsr print stat4 move.w #4,-(sp) trap #14 addq.l #2,sp cmpi #2,d0 beq stat4op3 move.l #hertz,a3 clr d2 bsr super move.b (a3),d2 bsr user andi.b #2,d2 cmpi #2,d2 beq stat4op1 bne stat4op2 bra end4 stat4op1 lea s4op1(pc),a4 bra end4 stat4op2 lea s4op2(pc),a4 bra end4 stat4op3 lea s4op3(pc),a4 bra end4 end4: bsr print lea op5(pc),a4 bsr print lea options(pc),a4 bsr print move.l a6,sp move.w #1,-(sp) trap #1 addq.l #2,sp cmpi.b #48,d0 beq quit cmpi.b #49,d0 beq set1 cmpi.b #50,d0 beq set2 cmpi.b #51,d0 beq set3 cmpi.b #52,d0 beq set4 bne here super clr.l -(sp) move.w #32,-(sp) trap #1 addq #6,sp move.l d0,a4 rts user move.l a4,-(sp) move.w #32,-(sp) trap #1 addq #6,sp rts quit lea goodbye(pc),a4 bsr print bsr input move.w #0,-(sp) trap #1 input move.w #1,-(sp) trap #1 addq.l #2,sp rts print move.l a4,-(sp) move.w #9,-(sp) trap #1 addq.l #6,sp rts set1 lea set1mes(pc),a4 bsr print bsr input SUB.B #65,D0 move.b d0,d3 TST.B D0 bmi here cmpi.b #25,d0 blt do1 sub.b #32,d0 move.b d0,d3 tst.b d0 bmi here cmpi.b #25,d0 bgt here do1 move.l #drive,a3 bsr super move.w d3,(a3) bsr user bra here set2 move.l #ram,a3 lea set2mes(pc),a4 bsr print bsr input cmpi.b #48,d0 beq makehalf cmpi.b #49,d0 beq makeone bra here makehalf bsr super move.b #8,(a3) bsr user bra here makeone bsr super move.b #16,(a3) bsr user bra here set3 move.l #verify,a3 lea set3mes(pc),a4 bsr print bsr input move.b d0,d3 sub.b #48,d3 bsr super move.w d3,(a3) bsr user bra here set4 move.l #hertz,a3 lea set4mes(pc),a4 bsr print bsr input cmpi.b #48,d0 beq set50 cmpi.b #49,d0 beq set60 bra here set50 bsr super ori.b #2,(a3) bsr user bra here set60 bsr super move.b #0,(a3) bsr user bra here title dc.b 27,"d",27,"H",27,"f",13,10,27,"p","PARSWTCH IS A SET OF ROUTINES TO CHANGE ",13,10 dc.b "SYSTEM VARIABLES AND HARDWARE REGISTERS.",13,10 dc.b "BY CHRIS COLLINS FOR GOODMAN PD LIBRARY ",13,10 dc.b "THIS PROGRAM IS IN THE PUBLIC DOMAIN ",13,10 dc.b "-------NOT TO BE SOLD FOR PROFIT------- ",13,10 dc.b "IF YOU HAVE ANY PROBLEMS WRITE TO ME AT:",13,10 dc.b "19 COLIN CRESCENT, WESTON COYNEY, ",13,10 dc.b "STOKE-ON-TRENT, STAFFORDSHIRE. ST3 6NL ",27,"q",13,10,0 op1 dc.b 13,10,27,"p","(1)",27,"q"," (RESET) BOOT DEVICE IS: ",0 op2 dc.b 13,10,13,10,27,"p","(2)",27,"q"," (RESET) MEMORY CONFIG: ",0 op3 dc.b 13,10,13,10,27,"p","(3)",27,"q"," VERIFY FLAG: ",0 op4 dc.b 13,10,13,10,27,"p","(4)",27,"q"," (COLOUR) HERTZ: ",0 op5 dc.b 13,10,13,10,27,"p","(0)",27,"q"," QUIT ",13,10,13,10,0 options dc.b 27,"p","PRESS 1 TO 5, IF YOU WANT TO USE 1+2 ",13,10 dc.b "YOU WILL NEED TO RESET THE ST ",13,10,0 goodbye dc.b 27,"d",27,"H","REMEMBER IF YOU WANT TO USE OPTIONS 1+2 ",13,10 dc.b "YOU WILL NOW HAVE TO RESET. O.K. ",13,10 dc.b "PRESS ANY KEY TO GET OUT. THANKS ",13,10,0 s2op1 dc.b "HALF ",0 s2op2 dc.b "1 MEG ",0 s2op3 dc.b ">1 MEG",0 s3op1 dc.b "OFF ",0 s3op2 dc.b "ON ",0 s4op1 dc.b "50 HERTZ",0 s4op2 dc.b "60 HERTZ",0 s4op3 dc.b "MONO",0 set1mes dc.b 27,"d","PRESS A TO Z FOR BOOT DEVICE :",0 set2mes dc.b 27,"d","PRESS 0 FOR HALF MEG OR 1 FOR 1 MEG :",0 set3mes dc.b 27,"d","PRESS 1 FOR ON AND 0 FOR OFF :",0 set4mes dc.b 27,"d","PRESS 0 FOR 50 HERTZ OR 1 FOR 60 HERTZ :",0 end `4,OIaIa|&|FBa:4aBԼA??<NAXIaR&|/Baa Bg Bgk`I`I`IaIa&|DBBa4aJBg f`I`IaIa?<NNT @g8&| BBa~a Bg f`I`I` I`a~IgavIuan.N?<NAT 0g@ 1g` 2g 3g 4gfB?< NA\O(@Nu/ ?< NA\ONuItaa?<NA?<NATNu/ ?< NA\NuIaa<AJkX m< JkD n<&|Fa6a`,&|/Iaa 0g 1g` aZa``aJaP`&|DIafaX<0a"6a*`&| Ia@a2 0g 1g`aa`aa`~dHf pPARSWTCH IS A SET OF ROUTINES TO CHANGE SYSTEM VARIABLES AND HARDWARE REGISTERS. BY CHRIS COLLINS FOR GOODMAN PD LIBRARY THIS PROGRAM IS IN THE PUBLIC DOMAIN -------NOT TO BE SOLD FOR PROFIT------- IF YOU HAVE ANY PROBLEMS WRITE TO ME AT: 19 COLIN CRESCENT, WESTON COYNEY, STOKE-ON-TRENT, STAFFORDSHIRE. ST3 6NL q p(1)q (RESET) BOOT DEVICE IS: p(2)q (RESET) MEMORY CONFIG: p(3)q VERIFY FLAG: p(4)q (COLOUR) HERTZ: p(0)q QUIT pPRESS 1 TO 5, IF YOU WANT TO USE 1+2 YOU WILL NEED TO RESET THE ST dHREMEMBER IF YOU WANT TO USE OPTIONS 1+2 YOU WILL NOW HAVE TO RESET. O.K. PRESS ANY KEY TO GET OUT. THANKS HALF 1 MEG >1 MEGOFF ON 50 HERTZ60 HERTZMONOdPRESS A TO Z FOR BOOT DEVICE :dPRESS 0 FOR HALF MEG OR 1 FOR 1 MEG :dPRESS 1 FOR ON AND 0 FOR OFF :dPRESS 0 FOR 50 HERTZ OR 1 FOR 60 HERTZ :. z t.. z tBIGSCRN DOC{t BIGSCRN PRGt  BigScrn V1.0 by Julian F. Reschke ------------ Hensenstrasse 142 D-4400 Muenster West Germany Netaddr: ONM07@DMSWWU1A.{BITNET,UUCP} JULIAN@MUTEC.UUCP Published by ST Magazin 11/88 Basicals -------- 'BigScrn' simulates a virtual screen in any resolution. This is done by modifying the (now documented) Line A variables on a negative offset. If you select a horizontal size of 640 pixels BigScrn will scroll by changing the hardware's screen-base register. Otherwise, the visible part of the virtual screen will be copied into the real screen every fourth vertical blank. Problems -------- There are no problems running this program under the new TOS 1.4 from 1988. Problems with the Blitter TOS 1.2 will be bypassed using another 32 KB (safety-) buffer and a new mouse handler. The program will not run under the old TOS 1.0 (first ROM version), because its GEM functions cannot handle screens larger than 32 KB. Usage ----- Copy BigScrn.PRG into your AUTO folder (it _must_ be started before GEM is initialized!). Hold down Control, Shift, Alternate or CapsLock while booting. You'll get a menu then. Pressing space will use the settings for the current session, Return will save the settings for future restarts. ALT-HELP saves the whole screen as a standard VDI bitimage file onto disk. You can even load them into 1st Word plus (up to a certain size) and Timeworks! This program may be copied freely but only together with this documentation ! This program is public domain and may not be used commercially ! `<FHya /<z?<&NN\O?<"NNTO#Q?<0NATO|lPHya BBy ByBBy?fry y09hf09hfyJyf$09|fByy _"yJf.B09 й"@B4969j# 8LgB49|rL|H|L|H|(L|H|PL|H|xL|H|L|H|L|H|L|H|L|H|@L|H|hL|H|L|H|L|H|L|H|L|H|0L|H|XL|H|L|H|L|H|L|H|L|H| L|H|HL|H|pL|H|L|H|L|H|L|H|L|H|8L|H|`L|H|L|H|L|H|L|H|L|H|(L|H|PL|H|xL|H|L|H|L|H|L|H|A@QV y33LNuB49|Pr L|H|L|H|(L|H|PL|H|xL|H|L|H|L|H|L|H|L|H|@L|H|hL|H|L|H|L|H|L|H|L|H|0L|H|XL|H|L|H|L|H|L|H|L|H| L|H|HL|H|pL|H|L|H|L|H|L|H|L|H|8L|H|`L|H|L|H|L|H|L|H|L|H|(L|H|PL|H|xL|H|L|H|L|H|L|H|L|H|@L|H|hL|H|L|H|L|H|L|H|L|H|0L|H|XL|H|L|H|L|H|L|H|L|H| L|H|HL|H|pL|H|L|H|L|H|L|H| L|H| 8L|H| `L|H| L|H| L|H| L|H| L|H| (L|H| PL|H| xL|H| L|H| L|H| L|H| L|H| @L|H| hL|H| L|H| L|H| L|H| L|H| 0L|H| XA Q`\yy0<'yl3yl3 yl3 yl3aHHyQa2?<NATO<+f y`<-f y`<*f y`v</f y`dHya?<NATO< g< fHy ?<;NA?<Hy?<=NAOJm3Bg? </?<BNAO Jm`/9//<?9?<@NAOJm8?9?<>NAXOJm&Hya6HyMa,yyNuHyCa`Hya`,_?< NA\ONH09A[a^09AfaN09HAqa<09A`a,09HAka09HAvaLNuHC24B0BJifLNu@| yg8BB0(2(FJ(f"HEaL yEAaNuFNu?(?(BBJhlt?BBhe69|Cb` |t`thA e69|Cbz`:|ABA` :9AREa("xNG<|e G~<<@*{ .,{ .496C89%I5EE. 2`DJT`drxB@@Po({ H`NL:M:T"GQ\Nu4HB410$N30HB2QNu44N2QNu44HBNHB2QNup0r2Np0H@r2HANԀFĀNՄFāNFĀNՄNճFĀNՄNFĀNձNg8*4SB69 jC:9UEbTg*f 0QNu QNu*HD*f$I00 MQNu$I0000 MQNu*HD*f$I&J(KD0000 MQNuD$I&J(K00000000 MQNuH0694H|b҂|L NuXBRABIGS08F<A|BgHy|?<9B<9,xNHy/<?9?<@NAO f&//?9?<@NAO fQ9?9?<>NAXO1Nud [trying to fix problems with old TOS versions...] Configuration saved... BigScreen installed... \autobigscrn.prgFile \auto\bigscrn.prg not found. Can't write to program file. BigScreen already installed. BigScreen V1.0 17.10.88, 15:50:22 Copyright (c) Julian F. Reschke und Markt&Technik Not enough memory available! BigScreen not installed! : Continue : Save configuration e f(+-/*): 0000*0000 0000*0000 0000*0000 #:\SCREENA.IMG?ttt  @?@O@?   "   :                   "               *2:*  86  .  t..  tCOLDSTRTPRGt `f a# a/<fa(BgNAB?< NA\#Nu$/9?< NA.BNu o/?< NA\0< a0< |??<NAXNuPress RESET button to coldstart .  t..  tG+DEMO ACCt 7G+DEMO PRGt ._(G+DEMO TXTt 9ZOOMTESTPRGt <&`&(N`G+01OSa#,\,35(4#35ab35(4?<NNTO34J@f#4VKf:<ja2 y4f\y @` Vy @Ry X?<NATO<A33,A6vC6E3:G3BfA76:\*.*BzK3,ag@K3af4aZJg><?<ONATOkaDJgQ`A7C3/f <G+NB#4NG+f`#3z&#3_wa 3x` @!|3",Fa "*h,M&MI3z ge`0SM M fQJ( f #4^" AUHg"f` 34`#4bK3aj#3`J34K;z*<ak.oa`A;zB0a kaJygyaa#,f,#6F5a y(6Ff096Ny4f#,,34aa HJ@j#,,By4a` G+4Ng y4N#z#f4Za #44#4434#f4Z#44#44apA4 P g P gBy4 Pg Pf 34`By4aA4 Pg PgJ Pg Pga# ^4ZanaBy4aXa #f4ZJ4rg`BA/F0<a y5(fa ?<Hy3,?<=NAPOJj@C/0<  QA3/C/f<!A/0<a ` y5(g`N34Bg?94/<?<BNA K:za h G+01g a A/`Kza `a t#,,A401|!y4!y4#4Z5aa `@|qa3`.a8By`" y4N"h$$h(4Ns"0<s"<,&34NBNu y4N"h$$h(2,4NsNuaa 0`(a #"4Za a XaF y-4gBy434aA4 P*gN P+g@ P,g P-g P.g P/fPa Jy4g By4A40 1|!y4!y4#f5#,,aX`<A-~294~SA4XgRGQA-~XgRGQ`$#2i4nA5 76!|7&!|2!|2 a ` y5*fJ97&gA7&C70 $IfA-,0H P `A70 C+fa(#24nA5 6v!|6f!|2!|2 a y5*fFJ96fgNAXOJjA1`f`A10<aHy:?<ANA\O`#534#,z,`#,,#"5A401|!y4!y4`f#,,#'~5aNA4!y5*!y5.C'~hi#,,BP1|`#(Nu#3NuG-,I-K,M-\0< $[$4$]$\$4$^QNu0<*a0<+a0<,a0<.a0</a0<`0<C3J fQ/aj _G7I8NK,M-\~  g| ;gv$K  g`B$m0$$]  gSH$L  o`B$n0$$^1RG| mJGf #4#`"34~pNu  nSHJg  oJ `hA00<apNu#,,K4I5(BU;|a6+lSmSm+lTmTm#,,BUa JTj0NAXONuK7ak634Bg?94/<?<BNA K:zaa G+01fpNupNu>946<Aa$Aa|fRCAaAa QNu02||IHhA0Nu34`By4#,,`Jy4fN y4b 4n#4f#4j y4f!| !|0 `!|!|0#,p,a*Jy4f" y4b 4^!y4f!y4jNuB4r/afBy4aa0 y4fJy4faj`2*y4R` y4f#!4Z34aXBy4` y4zN`L;:pPONsBy4 y4N#z#"_"w#,,#!5A41|!y4!y40a34a34a y4zN`L;:Nu#14nA5 6v!|6f!|2!|2' a*J96fg y5*gpNuaA6vC:$Hfg !\fJA6ffpNu(o(n(n((n(n!((n(n((n(n ((n(n((n(n((n(n((n(n )(n(n) (n(n)%(n(n)=(n(n)(n(n*(n(n*(n(n*(n(n*(n(n*(n(n+(n(n+L(n(nq +l(n(n +y(n(n (n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n(n+(n(n(n(n(n R $ & B ^z(     QQ    ") ) )  >  Z  ')T)r ) ))v)$ *  *)  *7 *Q *T # *x   !! *   ++/'+C R G/C:CV r *)?  +  0   +  0  + 06 + R0n + 0 + 0 + 0 + 20N  + !j0" #+ $ 0% &+ ' 0( )+  0++,+ -+.+ /+*'+6 +  +  # .#J#++ +  %, The G+PLUS AccessoryCopyright 1988 CodeHead SoftwareCurrent Assign File ASSIGN.SYS Installation File EditorPolyline StyleSOLIDNORMALInstallationONOFFInformationSaveQuitAuthors: John Eidsvoogand Charles F. JohnsonG+PLUS.PRG and G+PLUS.ACC areCopyright 1988 CodeHead SoftwareAll Rights ReservedAuthors: John Eidsvoogand Charles F. JohnsonRelease Date: August 8, 1988Credit card orders call 800-992-5232CodeHead SoftwareP.O. Box 4336North Hollywood, CA 91607OKor send $34.95 plus $2.00 handling:(CA residents add 6% tax)G+PLUS InstallationStatus: ActiveLoading ASSIGN file:XXXXXXXXXXXXXXXXXXXXXXXXXXExecuting program:FILENAME.EXTG+PLUS Alternate OptionsLoad ASSIGN FileBypass InstallationContinueG+PLUS Installation File EditorGEM ProgramsASSIGN FilesLoadSaveAddDeleteClearExitApplication:FILENAME.EXTERROR!Default Devices InstalledRetryContinueAbort,R545(55,:465(6&q #Z4623 defghk*/N##$*$r$%%J%%&"&j&6nN#$$Z$$%2%z%& &R&&R2j !$'  #&). . .2.H.i.~..Miscellaneous errorNot enough memoryCorrupted driver fileIllegal device ID in ASSIGN filePartial record foundInvalid filename in ASSIGN fileDrive specifier in font filenameFonts/device drivers in use[3][ An application is using| the current fonts and/or| device drivers. Install | file bypassed...|[ OK ][2][ Save current Polyline | Style setting?| ][Save| Cancel ][3][Error:| |Can't find G+PLUS.ACC! | ][Retry| Cancel ][3][ Incompatible version of | the G+PLUS Accessory!| ][Retry| Cancel ][3][ Error! Cannot read | installation file... | ][ Cancel ][3][ This file is too large | for the installation| buffer.| (Limit: 2048 bytes.)| ][ Cancel ][3][ This is not a valid | Installation File!| ][ Cancel ][2][ Clear all installed | programs...| Are you sure?| ][OK| Cancel ][2][ Do you want to write| over the existing file? | ][OK| Cancel ][3][ Error! Cannot create | installation file...| ][ Cancel ][3][ Error while writing | to disk!| ][ Cancel ][3][ Error: Disk full! | ][ Cancel ] Choose an ASSIGN file:Choose anASSIGN file Choose an Installation file:Choose an.INS file Choose a GEM Application:Choose a GEMapplication: Now choose a SYS file:Now choosea SYS file: Save Installation file:SaveInstallationG+PLUS.PRG not InstalledA:\ASSIGN.INSA:\G+PLUS.ACC:\*.SYS:\*.INSG+PLUS: ; G+PLUS Installation File ASSIGN.INS G+PLUS DemoITEM SELECTOR*.ACCNo InstallationStatus: DisabledCurrent ASSIGN file:Click the line to remove or click 'Delete' to cancel.____________________________________________________________     0 (        &    ( 8         ($$      B         Nt".   2 N 0 *6 0                           P00000H0H0004`&``>F+&E"Xdj#)O)# @+la!TJy+JgLBgNACopyright 1988 John Eidsvoog & Charles F. Johnson aka Codehead Software0#0!&Nu4+N+F+J+l+t OfNh]HJy#kNJhg hLf@ y#g 9*Tg.k#*PB*T`/3##*Ta r _ hKfJ g"y GDLFf/NXONޭTruncated record in ASSIGN.SYS #Nޭ4|sfP"A Q0|g|dg h f`fNq"i Qf3Nqj1| Nޭ1| Ns|G+f <NsJ@kNޭ|f" 9+|NsCannot read ASSIGN.SYS |f <NsInvalid device ID in ASSIGN.SYS H?>#*4*AC&"""""3 &03&|fE`L|fE `>|dfE`0|efE `"|wfE `|xfE ,`a`Ny"VJy"Vg0<A&`C*"QNy"VJy"Vm0<A*C&`"QL|NsDrive spec not allowed in ASSIGN.SYS except in PATH= line y#f|g^|gV| gN` *TgJ*Tg y# *TmNh gzJy#fH3###+la y+Jg#%Y+la y# м]#*T`*#$B+la#%Y+laB*T3#09&kg|nS@AH&pJkgr y&3&rf$3&x#&n#&bJhga N`&"9*41k kN3&~ y&1y& Jy&rf y&Jhg` xNuA+JPo P ml|(|m`Invalid device driver NV y&JPf03&r=P/ By+*y`*m g0nf fB@`3&z3&|Jmg> y&0A+Pg(`# &j#&n#&f3+0<`>?.a:TOJ@fB@`,a/  a XO?a0g y&0B@`0<*_J@f By&` y&?aTO3&ga3&x y&JhgB@`0<JhgBA`2<AgBh ` y&0|3&b0(|3&d y& P o Pm P(oA!#&n3*NaJy&rfaA"X09&&y y&1y& J+Bf#+B`+Bf3 \3 3 $N^Nu Default screen drivers loaded.NV y&JPf0?9&aVTOJ@f y&Bh `-y` n-hJg n0"y&2AfJf y&Bh `z3&&vBy+ y&?aDTO3&g2aP3&xg y&3&ralJy&rf an`By&A"X09&&x y&1y& N^NuNot enough memory NV/ 09&gR?9&aZTOJ@gBaa09&|HK*u09&|eg mf/9&j?<INA\OBm*_N^Nu[3][ Sorry, G+PLUS must be| run at bootup time from | within an AUTO folder!| ][ Cancel ]?9&aTOJ@g\a*3J*Tf@J*Pg y# й*P#*T`By# y# мw#*TNuPATH y&BP y&1|Nu ASSIGN file: ?9&aTOJ@gaaNupathH>/JGm|oB@`ZJGf(0HA pJPo P m ||m|n`|OK*upJmfB@`><A&` Q00<L Nu"9*4 A P?( 1y&x y&nN3&~ y*4 P0( 1_ NuH09&|HK*u(9&nC .6<E0fؼ+D+y&f+y&j y&:;y&x09+|;@;y&r+y&b+y&z yd&f ;y&v`;y&L NuNV/ #+NAXO` A"y*#M <LQByaByaF 9Rй*# -@09+ R@HЮ-@#. #-@a.`BaJ@j 3+:`paJ@j 3+:`^ y. !n. 09H"9m. y. !|09+ 29+ЁймN^NuNVBy+By+a`: y*2y 0m y*2y 9nRy+`Ry+a09H"9mN^NuNV/ a**y*09H-| D-| 9o`* nHg nHga"`RRR =g  f`R =g  g -:f> alH|=@` H|=@Jnm noa`>3*TM-|*X` nR  g  g ;fS nBa~*_N^NuNVH~ y*2y`4 H|0Hހo0<`Ry0y*<0m<9o09H"9m0<`b<rg<Rf y. 1|`8<pg<Pf y. 1|`< o< f y. Bh`0<` "y. 2RyLN^NuNVaT09H"9l y*2y 9n0<`/9.  aXOJ@kz=y+6a`&09+6 Hй /aZXOJ@kPRy+6a09H"9l y*2y 9n y. 1n09+6n"y. 3@N^NuNVBn y*2y (:f0<`h` 0n2y*RyRn y*2y  oB y*2y .g. y*2y ;g nm`0n Rn nm y*2y  o y*2y ;f80nSRn0nYRn0nSRna` y*2y .g0<`lRy` 0n2y*RyRn y*2y  o& y*2y ;f`0n Rn n maBN^Nu y*09H`R@ 0 n m` 0;f 3a `3Nu y*"ҹ09Co" Gg&  f ;g  g  fRI`ړ3Nu )+f )Pf )Lf )Uf )Sf ):f^I3a> y*C&EB@|l R@  mfB*33+8`Jg(/.aXO)@"9y&&E&$"4&$?.?<>NAXO`/./.?.?<?NA /./.aPO/.aXOJf-n/././.a -@Jf/.?<INA\O` .-@)@-n?.?<>NAXOn0.no/.a XO)@"9y&&E&$"4&$L0N^Nu o>(6h8h4<|HƍF:(R|HŋERǼEo:EG<h:|HƍF|8(RD|6(RCh:|HÇCøGo>Co6|Go>GCH"9&o#&3&NuNVH<.|0HAT p1|BGK+0-n fJf (RG|m1n 0L N^NuNVH *n(n g+LT)nT ѬDѬHѬLL0N^NuNVH*n09&|(м+-@ n&h̷f0<`0`(K&lTJTgTf fB@`'mTT/ ?<INA\O0<L8N^NuH>/ BFA+Jy+gPg&(RF|mB@`Jhg(RF|mB@`0|LNuNVH09&|HG &s?+?9&aXO|f0*k`(mT/ ?<INA\O*L fJ"g/+"?<INA\OB"BByG+0<Jg3(QL8N^NuHBGG+Jg*k(mT/ ?<INA\O*L fJ"g/+"?<INA\OB"J g /+ ?<INA\O(RG|mL8Nu o?</?<=NAPOJ@k3*#)a&?9*?<>NAXO Nu/9)/<??<?NA f\ y) P`fN <ШШШ Jg6/?<HNA\O#)g" @"y)$y) !iм!@!j Ш !@!jШ!@!j  <Б!@ !i$$!i,,&y)(h*y)&-֭/ /?9*?<?NA f -?<?9*/?<BNA k//<?9*?<?NA J@gL y)&h(h& \gדB@g<f`ד` y)"h (`Q Nu/9)?<INA\OpNu 3+F"<^0<NBNuJy*Ng(By*N#%+la y+Jg #%Y+l`pNu ++++,&,N,v,,,-->-f---E p G+PLUS Version 1.0 q Release Date: August 8, 1988 Copyright 1988 CodeHead Software By John Eidsvoog and Charles F. Johnson  p NOTE: This is a Demo version. q p Only screen output will be allowed. q p 10 minutes of font usage allowed. q K [3][WARNING: This is a demo|version of G+PLUS. In|two minutes, screen output|will become unusable!][Quit Soon|More Info][3][The G+PLUS Demo has ended.|Do not save your file using|the same name. Your data|may be corrupted.][Quit Now!][3][The G+PLUS Demo has ended.|No fonts will be allowed|until you reboot.][OK][3][This is a demo version of|G+PLUS. Only screen output|is allowed.][OK|More Info][3][Order from Logical Choice for| Computers: 1-800-992-5232|or: CodeHead Software| P.O. Box 4336| N. Hollywood, CA 91607][ OK ]path = A:\ 01p screen.sys 02p screen.sys 03p screen.sys 04p screen.sys Default DevicesA:\ASSIGN.SYS   Z D.  @P"(2   R(      ( > $ : .   2    &r |     2(  J$F  * "@          D,     " 0F . 2<  2   D,@ ,r`FFv "0 R 0   G+PLUS Demo Program Copyright 1988 CodeHead Software by John Eidsvoog and Charles F. Johnson G+PLUS is a powerful and complete replacement for GDOS. If you regularly use any programs requiring GDOS you will soon see that there is no noticeable slow- down with G+PLUS. The following files are included: G+DEMO.PRG, G+DEMO.ACC, G+DEMO.TXT, and ZOOMTEST.PRG. Install G+DEMO.PRG in your AUTO folder, and G+DEMO.ACC in the root directory of your boot disk. Once G+DEMO is installed, you may load new ASSIGN files by holding down the 'Alternate' key when you run a program. ASSIGN files may also be automatically loaded by creating an installation file. Then all you have to do is just run your programs, as if nothing were wrong. The ZOOMTEST.PRG is provided so that you can see for yourself the difference in speed between G+PLUS and GDOS. You can speed up screen output even further by enabling 'Solid' mode for polylines. We've added special routines to G+PLUS so that, for the most part, programs which have problems with GDOS will operate fine with G+PLUS. (GDOS does not _cause_ these problems, they are the result of incorrect programming which the ROMs seem to allow and GDOS doesn't). G+PLUS comes complete with an informative operations manual. This document includes step by step instructions for installing G+PLUS and an easy to under- stand explanation of what G+PLUS and GDOS are all about -- information sorely lacking in most GDOS applications. Credit card orders call Logical Choice for Computing at: 800-992-5232 (in CA 818-760-0738) or send $34.95 plus $2.00 shipping and handling (California residents add 6% <$2.10> tax) to: CodeHead Software P.O. Box 4336 N. Hollywood, CA 91607 WARNING: This demo has a time limit; a total of ten minutes of font usage will be allowed. At that time screen output will become unusable, so don't do any serious work while using this demo. Printing will not be allowed at all. `#.| <м//9Bg?<JNA ?<NNTO3ؠ HyN?< NA\O?<NATO| gX|1e|5b|0 S@>Hy?< NA\OB?<?<?<NM\OHz?<&NN\OHz?<&NN\O#aQHz?<&NN\OHz?<&NN\O?<?<?<NM\O 9ΐҀH@3H@EajHy?< NA\OaHy?< NA\Op09րH@3H@Ea$a\p09HEaa@Hy?< NA\O 9Eaa Hy?< NA\O?<NATO` BgNAA 0gJ fJ /?< NA\ONu3a3#3@3@B3D ygD3F3H3dJ3dL ygL3N3P ygP"< <NBNu/ I24<0eR`XLRJQ<0(_Nu#!Nu!Nu#Nu|sfRNޭ@3 4B@'d E How many repetitions? p1q-10 p2q-20 p3q-30 p4q-40 p5q-50 pReturnq-Exit >>EY!! seconds, VDI calls.6.6     ,  .  t>..  tUNLOCK DOCt ?UNLOCK PRGt @[ Unlock is a quick little GEM program mainly for program developers whose programs have crashed with windows open and the screen updating locked. usually when this happens and you try to access the menubar, the machine will freeze up. Unlock is to be run when your program crashes. Your GEM program should be tested from a command shell like Micro C-Shell so you will not be returned to the GEM desktop because trying to run Unlock will require using the GEM windows to find Unlock and thus freeze the machine. Once your program crashes, just run Unlock as a GEM program. For example, in Micro C-Shell you would type say "gem c:\bin\unlock". Unlock will then inform you of the number of windows it closed. Version 1.1 fixes the bug of hanging the system if unlock is run when no GEM programs have crashed. |\/| | |urray Levine CIS # 74435,1015 GENIE id - MURRAY `R :,o#O <Ю ЮЮ//Bg?<JNAO NHBgNA"/0<NBNuNVN./Q/]/Y?< BgNr`BRy>N>N./Q/]/Y?< BgNrJnfJyg BWNX./Q/]/Y?<BgNr>?.?.?.?.?.?.?.?<N09|0H.?<NTN@N^NuNV3 >kNtN^NuNV3 3 >hNt n 0 . n0 0 n0 2 n0 4B@09 ,N^NuNV3 >gNtN^NuNV3 >fNtN^NuNV3 # >4NtN^NuNV3 3 3 3 3 3333>3NtN^NuNV3 $0.|HмR-@=|` nH2n $2RRn nm.N aF3 , pN^NuNV>a*pN^Nu [0][ Unlock v1.1| by Murray Levine| |Windows closed : 0 ][All done](   0         .  tB..  tGDOSBOOTDOCt C(GDOSBOOTPRGt EjGDOSBOOT.PRG By Larry Loe 208 Garfield Biloxi, MS 39531 GDOS.PRG is a program that allows you the option of choosing whether or not you want to boot GDOS. It MUST go in the AUTO folder! Another thing that must be done is that the GDOS.PRG file has to be placed in the AUTO folder AFTER the GDOSBOOT.PRG file. A simple way to do this is to make a new folder (I used AUT), and copy all the files from the AUTO folder into this new folder. Once this has been done, delete all the files from the AUTO folder. Be SURE to copy all the files before you delete them. Once you have deleted the files from the AUTO folder, copy the files from AUT, IN THE ORDER THAT YOU WANT THEM TO EXECUTE, back to the AUTO folder. Be sure to place the GDOSBOOT.PRG file into the AUTO folder before you place the GDOS.PRG. file. When you boot the system, the program will ask you if you want to boot GDOS or not. The default is NO! If you say NO, my program will change the name of GDOS to GDOS.PR. That way it can't boot. A problem with this is that the GDOS program can not be a read-only file and it can't be on a write-protected disk else my program won't work. If you do use this program I would appreciate it if you sent two or three dollars. Thanks a lot, and enjoy your ST. Larry Loe `@Q\` Efv*oM m HPHUBg?<JNA(m)m -:gS)@ -OK1PC#HNZHx?<HNA@)@l/?<HNA)@h&@)@XЬl)@d)@`ARCpr Ѝ"QHNFALNHz2?< NA\pdAxr0XQ)K\NN~JrBjNuHz?<&NN\NCAp$L Qp N9lrBlJpNNpMN9@pdAr 0Q0tr N49lNupealp`NuaNJHz?<&NNBWNANC2A@p222NrҌ0<NB0,rNurA9Ar`v C9Cr`rt9@9A9BNrrҌpsNB0,Nu9@N`rDҌpsNBNuC2 @ e @}bA@p222Nr,Ҍ0<NBNu pa2|a>:><|a4g RGj`a(0GVfA1G<ap??<?<NM\Nu??< NMXNu 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 dNAXtNutNuvN&)@p `H@)@prtN4AHplrtN4B 2pN$pNpapaprapalpalpalpaTpaTpaTBp'a?<NNT@B){L9|0<rtN4papap9@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`"Hg: k&@0+R`g k#&@0+S@H3 Q&f)I`LNuApNN$N$BS@kH2QNupC ұd"X0Pg"RA$D#Nu"X0Nu _0HpN _0HpNp"_0HqNLp"_0HqNLE ұeHHQ0)N>$_$ZR@H`2QNu$Y0gHR@@"D%$X0P2g# R@%NupE $ $X0dP.gRG,D%pr Y2dP.gRG,D!p4Ae4v`VfANuNWHNu, N0* ( FN0 EJfC JDfA E@( BE, BHPHQBg?<VNA F DJjNNuPj0,lf$J,nk l*fp?NDp ND9|nNpA0,l2J,jk 0"fZRAR@ 0"g 0 f` 0 g 0,f9@lTll`BllA"H"g"A4`Q"AA 0! NuS@R@ 0 g 0,f9@lRll`R@ 0 fQj`<,*?Hj\F FfN|`H FfNt`9@^9A`9Ab~`$aJf,H@ Kg Mg Pg Hf~`BSGj>RGFc8>`4A g6 g0 g` gTlfelhgFf2pRGRFa`a,` `?~ap ap a 0NuCpE`bf`FgRGJGgRSGSFFgCpE`Yf`Nua@Jf gH@ fa(@ fza0 b @ Ee0Nu?<?<NMXNur9A(HNDLNu0,^2,`NXzEfpaRppaNAEg0PaľEfa4RE`p a2a*Efp a(N>ldeS@f lbfSl`9Ab9FdNupapqr`p`p`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\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`YepNN N>N N>N N'_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_N>N N'! GDOS BOOT PROGRAM !N>N N'_ BY LARRY LOE _N>N N'! !N>N N'_ 208 GARFIELD _N>N N'! BILOXI,MS 39531 !N>N N'_ _N>N N'! If you use this program, send a !N>N N'_ buck or two! _N>N N'!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!N>NZ AUTO\GDOS.PRC NNf AUTO\GDOS.PRGCNN N!Do you want GDOS installed (Y/N)?_N>N NrThe Default is NO! PnNCNHmpYN "_N>pJBgp/HmpyN "_N>pJBgp$VHfNA N0N&<x*<NfNNZ AUTO\GDOS.PRHPNf AUTO\GDOS.PRG"_NHNN0AN0N&<x*<NfN0Nf AUTO\GDOS.PRGHPNZ AUTO\GDOS.PR"_NHN0N N>NNr&4&4.  tL..  tRESTART PRGt MRE_STARTTXTt NvRESTART TXTt P`b/<*?<&NN\/<?< NA\Bg/<a?<1NA#!<NuBy8"x03##! fNo f 3/<@ yNJyg Sf B xN"x.Y/?!Ns ******************************* * ReSTART by Tom Hudson * * 1988 Antic Publishing * * Version 1.0 installed! * *******************************  2Do Run Run STWRITER.PRGB!B! Inside ReSTART ------ ------- ReSTART is what is known as a terminate-and-stay-resident (TSR) utility. Most programs load from disk, execute, and when they terminate, the memory they occupy is released back to the system for use by other programs. A TSR, on the other hand, executes but leaves a part of itself (or the whole thing) behind in memory. This is how the START Selector, GDOS and a number of other utility packages operate -- they are loaded from disk, a special piece of installation code is executed which "splices" the utility code into the operating system, and the program terminates, leaving the utility code in memory. ReSTART's operating principle is simple. It is spliced into the 68000 trap vector #13, where it waits for requests to get characters from the keyboard. When it sees such a request, it intercepts the character before it is returned to the calling program. If the character is a Control-Alternate-Delete, ReSTART never returns the character to the caller, but instead jumps to the ST's system reset code!ReStart.PRG By Tom Hudson This program lets you reboot the ST from the keyboard. This is especially useful for MEGA ST's, but also other machines. To use: create a folder called AUTO. Copy RESTART.PRG into that folder. If you already have an AUTO folder, then make sure that this program is the LAST one which is copied into the folder (it may conflict with other AUTO programs). To cause a reboot, press in combination: ALTERNATE plus CONTROL plus DELETE This then reboots the ST. This reset is a "cold boot", the ST starts up entirely from the beginning. This is not a normal reset. Any reset-proof RAM disk will be erased; the entire memory is blanked out. Do not use this program together with a reset proof RAM disk. -------------------------------------------------------------------------- Documentation by Andreas Ramos 68000 UG BBS Tlf. Denmark 06202016 "YOUR SECOND MANUAL TO THE ATARI ST" by Andreas Ramos, the popular shareware text, is now available as a published text. If you enjoyed "Your Second Manual, V.4.0," then you'll love version 5.0! Twice as much text, five more chapters, three times as much information, twice as many jokes, and illustrations! Y2M contents: Keyboard: tips & tricks. Changing the layout. F-Key guide. The Mouse. Disks. Drives. TOS. Formatting. Deleting. Copying. Fixing the ST. Harddisks. RAM disks. Monitors. AUTO folders. DESKTOP.INF. ACC'essories. Word Processing: tips & tricks. Printing. Paper. Magazines. Public Domain Programs (PD's). Communications. BBS's. Databases. Games, Midi, Graphics, and Chess. User Groups. And a glossary of ST words and concepts. Plus a chapter for absolute beginners. Hundreds of sources, producers, distributors, addresses, telephone numbers. Free offers, free PD catalog, and 2 free disk bonus. Laser print, professional layout and printing, and quality bound. All this for only 3.95 (plus 50 pence for postage outside of England). Send a certified bank cheque or postal giro transfer to: Glover Publishing, 49 Stoney Street, Nottingham, NG1 1LX, U.K. or contact: Andreas Ramos / Jaegergaardsgade 142.2TH/DK-8000 Aarhus C/Denmark. The Y2M : The Ultimate ST Handbook .  tS..  tMONOEMU DOCt TMONO_EMUPRGt Z,MONO_EMUS t \W* This is the documentation for MONO_EMU.PRG v5.00 Mick West 20th November 1988 The mono emulator lets you use the high resolution mode on the atari ST, using a normal TV or monitor - i.e., you don't have to fork out 150 on an Atari SM125 High-rez mono monitor, if you want to run programs that normally only run in high resoution. The main use of the Mono Emulator is in running the large number of public domain mono-only programs. But there are also some commercial programs such as Signum and PCB Designer that also only run in monochrome. This is the fifth major version of the program. The first was printed in Popular Computing Weekley in Vol 6 Nos 43 & 44. This version has a number of improvements: o It will now run on any TOS, anywhere in the world o It can (must actually) be run from an AUTO folder o It works with SNAPSHOT.ACC and other similar programs o It is twice as fast as versions 1 and 2 o It does not crash if you run it on a mono monitor so you can leave it in the AUTO folder How to use it. -------------- Just copy it ( MONO_EMU.PRG ) into an AUTO folder. Then boot from this disk. It will load automatically and display a short message. There will be a prompt at the bottom of the screen asking you to input a number from 10 to 80. This controls how often the screen is updated and also, how much your program is slowed down by the emulator. An input of 10 gives a rather jerky display, but there is no noticeable decrease in speed. Using 80, is very smooth but the ST runs at about 56% of its normal speed If you just press " Return", you will get the default setting of 40, the ST will run at 75% of its normal speed and the display will be quite smooth enough. After entering the speed, you should be returned to a monochrome desktop with a grey background and little icons. You should now be able to load and run any monochrome program. The mono emulator uses about 34K of memory, so if you have only got 512K of RAM then you may encounter problems with some of the larger programs. This is more likely if you have some desk accessories loaded. You should use the mono emulator from an AUTO folder. If you simply load the program in the normal way, you will get a squashed half-screen version of the desktop. If you now go up to the Options menu, select "Set Preferences" and then click "OK", you will get the normal mono desktop back, but the menus and the dialog boxes will be squashed. Most odd! It does occasionally crash when trying to set up the machine to the right resolutions, it should work the next time it is run. It does not do this very often. Auto Folder Problems -------------------- The ST sometimes gets very confused with it's auto folder. If you find that it crashes for no apparent reason then copy the programs out of the auto folder, delete the folder, create it again and copy the programs back in again, one at a time. The ST will run these programs in the order in which you put them in the folder, not in the order they appear in a directory window. It is probably a good idea to put the Mono Emulator in first, so the machine will be correctly configured when the other AUTO programs are run. History ------- Version 0 - July 1987, Wanting to get a demo of PCB Designer to run I experiment with various methods and after two days I get one to work, thus the MONO EMULATOR is born. I am quite pleased with it and wonder if it could possibly be of much use to anyone. I send it off to PCW with little hope. Version 1 - October 1987, Published in Popular Computing Weekly, uses hundreds of ROM calls and is rather slow. I sell about 150 copies at four pounds each Version 2 - June 1988, The new ROMS start to proliferate, I write version 2 to run on the new ROMS using one ROM call. Very few version twos are sent out. Version 3 - June 1988, I have a flash of insight and make it twice as fast. Version 3 spreads across the world. Robtek start selling a Mono Emulator for 40 pounds, I realise I may have made a minor marketing error. But I have never heard of anyone buying the Robtek version. Version 4 - Sept 1988, I discover that it was defaulting to speed 10 on the new ROMs, I remove this bug and stop it slowing down during disk accesses. Only one copy of version 4 is sent out. Version 5 - November 1988, Having been flooded by letters along the lines of : "Das Monoemulator c'est nicht funkzioneert" from the continent and the USA I sit down and work out how to make it work with any TOS. This, I think, will be the final version. Robtek are bankrupt. Every ST owner in britian has a copy. I have recieved two contributions for shareware one from the USA, the other from Sweden. I sometimes wonder if making it Public Domain was a good idea. How many copies would have sold at a tenner a go? In the depths of depression and strickened with poverty, I am forced to go and work for 'Binary Design'. If you want to write to me with any problems, praise, comments, money (it is shareware you know, and it saved you 150 quid), or anything else then write to: MICK WEST 27, LYNTON DRIVE SHIPLEY. WEST YORKSHIRE, BD18 3DJ ENGLAND Distribute! `> o,<ܨ ܨܨ/?<NNT|f ,?<NAB?< NA\#L/<h?< NA\/<?< NA\h/<h?< NA\0<(J9igL 9igB@9j@0o| n BA9kA0m| nA|Pn3#NT#.#p:#X3(\3`EfCF0<'$QX4 +@N#P?</p3dJydf`#p##2p/9L?< NA\ Bg/?<1NAH`$Of Nj0*|g8|g<|f>5| * g*#P%| ` 9PLNs0<LNsLNH33B33D9@g3w@3F`3@3wFB99&@ yP"yTg K#P $HP$9X2<J9>f29\aPPXy` y`f&#X}}}3`QLNBydNs22NuNqEThe Mono Emulator - Mick West 1988 V5.00. Should be in AUTO Folder Will run with any TOS This is Shareware Send Money and Problems to: Mick West 27 Lynton Drive, Shipley, BD18 3DJ ENGLAND Feel free to give away copies of this But please copy the whole folder Enter speed (10 to 80, Return = 40) GENFMEDTMONOPXENDfINPUTMEDOKXBIOSGETREZINLOOPNINVERTfNOT2000VBLANK2DEFAULTMESSAGEhMONOPOSXNOTHIGH0NOTUSERVBLEXIT4COPYMOVEGENMOVE1NOINVERTvPHYSBASESCANPOKEMONOCOUNH`TMONOLINEH\SSAVESTACHLKXBIOSPOKH,ENORM_XBIH(OSVBLANKPOH8KERASTER_FHdLAGWAIT_RASHnTERSIMPLE_VH>BLANK<  &(  fx ; The Auto Mono Emulator. V5.00 By Mick West. November 20th 1988. ; Routine to make the ST think it is in mono mode. Needs TOS in ROM ; Makes the system think that there is a mono screen, but actually ; be updating a medium real screen from this under Vblank interrupt ; The XBIOS calls; Physbase,Setscreen and Getrez are revectored. ; Put in an Auto Folder ; Works with any TOS in the entire world - hopefully MOVE.L 4(A7),A0 MOVE.L #$8400,D6 ; 32K for the screen ADD.L $C(A0),D6 ; plus the usual space ADD.L $14(A0),D6 ADD.L $1C(A0),D6 MOVE.L D6,-(SP) ; save length of program for later MOVE.W #4,-(SP) TRAP #14 ; Get screen Resolution ADDQ.L #2,SP CMP.W #2,D0 ; If not high then carry on BNE NOTHIGH MOVE.L (SP)+,D6 ; else tidy up the stack MOVE.W #0,-(SP) ; return ok to,GEM TRAP #1 ; Then exit back to desktop NOTHIGH: CLR.L -(SP) MOVE.W #32,-(SP) TRAP #1 ; Enter supervisor mode ADDQ.L #6,SP MOVE.L D0,SAVESTACK ; Save the supervisor stack MOVE.L #MESSAGE,-(SP) ; Address of start of message MOVE.W #9,-(SP) ; Print startup message TRAP #1 ADDQ.L #6,SP INLOOP: MOVE.L #INPUT,-(SP) MOVE.W #9,-(SP) ; Print input message TRAP #1 ADDQ.L #6,SP MOVE.B #3,MESSAGE ; Input length = 3 MOVE.L #MESSAGE,-(SP) MOVE.W #10,-(SP) TRAP #1 ; Input number ADDQ.L #6,SP MOVE.W #40,D0 ; Default = 40 TST.B MESSAGE+1 BEQ DEFAULT ; If len=0 CMP.B #1,MESSAGE+1 ; len of 1 not allowed BEQ INLOOP CLR.W D0 MOVE.B MESSAGE+2,D0 ; first digit SUB.W #48,D0 BLE INLOOP ; Too low CMP.W #9,D0 BGT INLOOP ; Too High (>100) MULU #10,D0 CLR.W D1 MOVE.B MESSAGE+3,D1 ; second digit SUB.W #48,D1 BLT INLOOP ; Too low CMP.W #9,D1 BGT INLOOP ; Too high ADD.W D1,D0 CMP.W #80,D0 BGT INLOOP ; Check less than 80 DEFAULT: MOVE.W D0,SCANPOKE+2 SUB.L A5,A5 MOVE.L $044E(A5),MED ; Set MED MOVE.L $B8,XBIOSPOKE+2 ; Get the old XBIOS address and MOVE.L $70,VBLANKPOKE+2 ; VBLANK and insert into new versions MOVE.L #0,MONOPOS ; Set offset to top of screen SCANPOKE: MOVE.W #40,MONOLINES ; Fourty lines per Vblank is default MOVE.W #0,MONOCOUNT ; Counter is set to zero LEA XEND,A2 ; A2 = pos of generated code LEA GEN,A1 ; A1 = pos of instructions to copy MOVE.W #39,D0 ; Generate the code GENMOVE1: MOVE.L (A1),(A2)+ ; Copys 40 of - MOVE.W (A0)+,(A1)+ DBF D0,GENMOVE1 ; and MOVE.W (A2)+,(A1)+ ADDQ.L #4,A1 MOVE.W (A1),(A2)+ ; Move the RTS MOVE.L A2,D0 ; A2 = start of free memory ADD.L #512,D0 ; Force it to a 512 byte boundry AND.L #$FFFFFE00,D0 MOVE.L D0,$044E(A5) ; And that is the monochrome screen MOVE.L D0,MONO ; Set MONO MOVE.W #$0002,-(SP) ; Hardware and Software to Mono MOVE.L #-1,-(SP) MOVE.L #-1,-(SP) MOVE.W #5,-(SP) TRAP #14 ; Set high resolution ADD.L #12,SP MOVE.L $70,A0 ; Save the old VBLANK MOVE.L #SIMPLE_VBLANK,$70 ; And set up mine MOVE.W #1,RASTER_FLAG ; Set raster flag to 'not occured yet' WAIT_RASTER TST.W RASTER_FLAG ; If still not occured BNE WAIT_RASTER ; then loop until a vbl does occur MOVE.B #1,$FF8260 ; Back to medium hardware after VBL MOVE.L A0,$70 MOVE.L #XBIOS,$B8 ; Set up the new XBIOS vector MOVE.L #VBLANK,$70 ; And the new VBLANK vector MOVE.L SAVESTACK,-(SP) ; Restore the Supervisor stack MOVE.W #32,-(SP) ; And go back to User mode TRAP #1 ADDQ.L #6,SP MOVE.L (SP)+,D0 ; Tidy stack CLR.W -(SP) ; Exit ok for GEM MOVE.L D0,-(SP) ; Length of program + data space MOVE.W #$31,-(SP) ; terminate and stay resident (TSR) TRAP #1 ; Finished this AUTO program ; This is the new XBIOS routine XBIOS: MOVEM.L A1/A2,-(SP) ; Save A1 and A2 MOVE.L SP,A2 ; A2 = the stack ADD.L #8,A2 ; offset over A1 and A2 BTST #5,(A2) ; Test if called from user mode BNE NOTUSER ; Skip if it is MOVE.L USP,A2 ; Otherwise get A2 = User stack SUB.L #6,A2 ; Offset it as if it were the SSP NOTUSER: MOVE.W $6(A2),D0 ; Get XBIOS instruction code CMP.W #2,D0 ; If it is _PHYSBASE BEQ PHYSBASE ; then jump to new PHYSBASE routine CMP.W #4,D0 ; If it is _GETREZ BEQ GETREZ ; then jump to new GETREZ routine CMP.W #5,D0 ; If it is NOT _SETSCREEN BNE NORM_XBIOS ; Then continue with the normal XBIOS MOVE.W #-1,16(A2) ; Else alter rez.W to -1 (No change) MOVE.L 12(A2),D0 ; Get the ploc.L parameter CMP.L #-1,D0 ; If it is -1 BEQ NORM_XBIOS ; then continue with normal XBIOS MOVE.L D0,MONO ; Otherwise, new value goes to MONO MOVE.L #-1,12(A2) ; Set ploc.L to -1 (no change) BRA NORM_XBIOS ; then norm BIOS deals with lloc.L PHYSBASE: MOVE.L MONO,D0 ; Get address of mono screen MOVEM.L (SP)+,A1/A2 ; Tidy stack RTE ; Return mono screen location GETREZ: MOVE.W #2,D0 ; Pretend we are in mono resolution MOVEM.L (SP)+,A1/A2 ; Tidy the stack RTE ; Return code for mono resolution NORM_XBIOS: MOVEM.L (SP)+,A1/A2 ; Tidy the stack up XBIOSPOKE: JMP $0.L ; And jump into the normal XBIOS ; This is the new VBLANK routine VBLANK: MOVEM.L D0-D7/A0-A6,-(SP) ; Save all registers MOVE.W #$333,$FF8242 ; Set up colours, grey for thin lines MOVE.W #$333,$FF8244 ; (1 vert mono pixel = 1 grey med pix) BTST #0,$FF8240 ; Check inverted BEQ INVERT ; Jump if so MOVE.W #$777,$FF8240 ; White background (normal) MOVE.W #$000,$FF8246 ; Black ink BRA NOINVERT INVERT: MOVE.W #$000,$FF8240 ; Black background (inverted) MOVE.W #$777,$FF8246 ; White ink NOINVERT: CLR.L D0 MOVE.B $FF8201,D0 ; Video base high LSL.L #8,D0 ; times 256 MOVE.B $FF8203,D0 ; Plus video base low LSL.L #8,D0 ; All times 256 MOVE.L D0,A3 ; Is the address of the Real screen MOVE.L MONO,A0 ; A0 = virtual mono screen MOVE.L MED,A1 ; A1 = real medium screen CMP.L A1,A3 ; Check if the real screen has moved BEQ MEDOK ; Skip this if not MOVE.L A3,A0 ; Get the new real screen address MOVE.L A0,MONO ; Set MONO From this MOVE.L A1,D0 ; And put the real screen back LSR.L #8,D0 ; to its origional position MOVE.B D0,$FF8203 LSR.L #8,D0 MOVE.B D0,$FF8201 MEDOK: MOVE.L A0,A2 ; A2 = mono start ADD.L #80,A2 ; plus 80, on to next line MOVE.L MONOPOS,D2 ; Get position in the screen RAM ADD.L D2,A0 ; Offset position in mono screen ADD.L D2,A2 ; And the other mono position ADD.L D2,A1 ; Offset pos in real medium screen MOVE.W #20,D1 ; default 20 lines / Vblank TST.B $43E ; Test flock system variable BNE COPYMOVE ; Set speed to 20 if using disk drive MOVE.W MONOLINES,D1 ; Otherwise get preset speed COPYMOVE: BSR XEND ; combine and move two mono lines ADD.L #80,A0 ; both need moving down another line ADD.L #80,A2 ; in the mono screen ADD.L #160,MONOPOS ; move down one medium/two mono lines ADD.W #1,MONOCOUNT ; count medium lines dome CMP.W #200,MONOCOUNT ; Done 200 medium/ 400 mono ? BNE NOT200 ; if not then skip MOVE.L #0,MONOPOS ; otherwise reset ram offset SUB.L #32000,A0 ; MONO position back to top of screen SUB.L #32000,A1 ; and the same for MEDIUM SUB.L #32000,A2 ; and the other MONO position MOVE.W #0,MONOCOUNT ; reset the counter NOT200: DBF D1,COPYMOVE ; loop round MONOLINES times VBLEXIT: MOVEM.L (SP)+,D0-D7/A0-A6 ; Restore all registers VBLANKPOKE: JMP $0.L ; Jump to normal VBLANK routine ; This is a simple Vblank routine that just clears a flag SIMPLE_VBLANK CLR.W RASTER_FLAG ; Indicate a Vertical blank has occured RTE ; The following bits of code are not called but are used to calculate ; a large chunk of code to combine two mono lines into one medium one. GEN: MOVE.W (A0)+,(A1)+ ; Move one Mono line to one Medium MOVE.W (A2)+,(A1)+ ; line on both colour planes times 40 RTS EVEN SAVESTACK: DC.L 0 MONO: DC.L 0 ; Base address of mono screen MED: DC.L 0 ; Base address of medium screen MONOPOS: DC.L 0 ; Offset in both screens in bytes MONOLINES: DC.L 0 ; Pairs of mono lines to do per VBLANK MONOCOUNT: DC.L 0 ; Count of pairs done so far RASTER_FLAG: DC.W 0 ; Flag cleared every raster (tempory) XEND: nop ; Position of calculated code MESSAGE: DC.B 27,'E','The Mono Emulator - Mick West 1988',13,10 DC.B 'V5.00. Should be in AUTO Folder',13,10 DC.B 'Will run with any TOS',13,10,13,10 DC.B 'This is Shareware',13,10 DC.B 'Send Money and Problems to:',13,10 DC.B 'Mick West',13,10 DC.B '27 Lynton Drive,',13,10 DC.B 'Shipley,',13,10 DC.B 'BD18 3DJ',13,10 DC.B 'ENGLAND',13,10,13,10 DC.B 'Feel free to give away copies of this',13,10 DC.B 'But please copy the whole folder',13,10,13,10,0 INPUT: DC.B 13,10 DC.B 'Enter speed (10 to 80, Return = 40) ',0 .  tg..  tDESKMGR2DOC t h6DESKMGR2PRGt v$ DESK MANAGER 2.1 A utility by Charles F. Johnson Revision: 05/11/88 Desk Manager 2.1 is a program that goes in the AUTO folder of your boot disk. It will automatically select the correct DESKTOP.INF file for your desired resolution, and allow you to choose which AUTO programs and desk accessories will load. In addition, if one of your AUTO programs is named GDOS*.PRG (the asterisk means "any characters"), Desk Manager 2.1 will also let you choose the ASSIGN.SYS file which will be used with GDOS. And one of the nicest things about it - even though Desk Manager 2.1 runs from the AUTO folder it still lets you use the mouse to select files! The original version of Desk Manager was published in ST-Log and only allowed the choice of desk accessories. Version 2.1 has many significant improvements over the original. Up to 128 DESKTOP.INF files, AUTO programs, ASSIGN.SYS files, and desk accessories can be displayed and selected from. A "timeout" feature has been added, so that if you don't press a key for 2.5 seconds on any selection screen, Desk Manager 2.1 continues to the next screen. You can abort the program without changing anything at any time, or back up to previous screens after exiting them. Desk Manager 2.1 can display a startup picture during bootup before entering the selection screens, in either Spectrum 512 compressed (color) or DEGAS uncompressed (mono- chrome) format. A "Help" function is also added, to clear up any confusion about how to use Desk Manager 2.1. Desk Manager 2.1 works on either color or monochrome monitors, takes up less than 9K of disk space, and was written entirely in 68000 assembly language. Copyright Information --------------------- Desk Manager 2.1 (DESKMGR2.PRG) and the documentation (DESKMGR2.DOC) are Copyright (c) 1988 Charles F. Johnson. All rights reserved. Desk Manager 2.1 is distributed as SHAREWARE. This means that if you enjoy the program and use it, you are expected to become a registered user by sending a contribution of at least $15.00 to: Charles F. Johnson P.O. Box 1250 Pacific Palisades, CA 90272 Shareware can be a feasible alternative to the normal means of distribution; but it will only work if you do send in your registration fee. I've spent a lot of time working on Desk Manager 2.1, and to be honest I'm looking at it as a sort of experiment, to see if there is indeed enough of a shareware market to make this approach worthwhile. So if you'd like to see further updates to Desk Manager 2.1 and other useful shareware programs, your support will make a difference! Registered users will be informed of any updates, and be the first to receive them when they're ready. Also, if you have suggestions for improving Desk Manager, your opinions will carry more weight if you're registered; I'll work to include any suggestions that seem useful. If you have an account on Delphi, GEnie, or Compuserve, please include your user name or ID number when registering - this is the easiest way for me to get in touch with you. Desk Manager 2.1 may be freely distributed as long as both of the above-mentioned files are included and unaltered. The program may NOT be sold. Preparing to use Desk Manager 2.1 --------------------------------- First, if there is no pre-existing AUTO folder on your boot disk, create one. You can do this from the desktop by opening a window on the drive containing your boot disk, and choosing "New Folder" from the "File" menu. Enter AUTO in the dialog box that appears, and press Return. The AUTO folder will be created. Now, copy DESKMGR2.PRG into the AUTO folder. Do this by double-clicking on the folder name (or icon); this will open the folder. Then click and drag the DESKMGR2.PRG file to the open AUTO window. For best results, DESKMGR2.PRG should be the first program copied into your AUTO folder. Remember that AUTO programs run in the order in which they are written to the folder. If you already have programs in your AUTO folder, you may have to copy them all to another disk, delete them, and copy them back in the order you wish them to run, to ensure that DESKMGR2.PRG runs first. IMPORTANT: Do NOT rename DESKMGR2.PRG! The program writes configuration data to itself to avoid the need for a separate data file, and looks specifically for the filename DESKMGR2.PRG. If you've given it a new name, the configuration option will not work (although the program itself will still run). Now, with the AUTO folder still open, create another new folder inside AUTO called DESKMGR. This folder-inside-a-folder will hold your DESKTOP.INF files and your ASSIGN.SYS files. Arrange your desktop the way you like it for each resolution and save it with the "Save Desktop" function in the "Options" menu. After saving your desktop, rename DESKTOP.INF to LOWDESK.INF, MEDDESK.INF, or HIGHDESK.INF, depending on the resolution. Then copy these .INF files to the DESKMGR folder inside AUTO. To use the startup picture option, copy any Spectrum 512 compressed picture (*.SPC) to the DESKMGR folder and rename it to DESKMGR.SPC. Monochrome users should copy a DEGAS uncompressed picture (*.PI3) to the DESKMGR folder and rename it to DESKMGR.PI3. People with both monitors may have both DESKMGR.SPC and DESKMGR.PI3 in the DESKMGR folder. If you have any ASSIGN.SYS files (used by GDOS), rename them to something more descriptive (e.g. WORDUP.SYS, EASYDRAW.SYS, etc...as long you keep the .SYS extension) and copy these files into the DESKMGR folder as well. You're now ready to go. Running Desk Manager 2.1 ------------------------ The first time you run Desk Manager 2.1, it will ask you "Which drive holds the AUTO programs?" and "Which drive holds the accessories?" You can type any letter from A to P for the AUTO programs, since some current hard disk drivers will let you boot from any drive; but you can only type 'A' or 'C' at the "accessories" prompt. (Floppy disk users will most likely type 'A', hard disk users will probably use 'C'.) Desk Manager 2.1 then asks how many seconds to hold the startup picture. Type a number from 0 to 9 (0 means 'don't show the picture'). Now Desk Manager 2.1 asks if you want to save this configuration. Type 'Y' to save, and this configuration data will be written directly into the DESKMGR2.PRG file itself, so you won't have to answer these questions again. Any other key continues without saving the configuration. The program will now attempt to read LOWDESK.INF, MEDDESK.INF, or HIGHDESK.INF (depending on the current res) from the \AUTO\DESKMGR folder and write it to the main directory of the boot drive as DESKTOP.INF. If Desk Manager is unable to find one of these three default .INF files when it runs, the first selection screen will be for the DESKTOP.INF file. All files in \AUTO\DESKMGR with an extension of .INF will be displayed and you may choose one in the manner described in the next paragraph. When you select an .INF file, it will be immediately read into memory and re-written to the main directory of your boot disk as DESKTOP.INF. Desk Manager will then proceed to the AUTO Program selection screen. In the AUTO selection screen, Desk Manager 2.1 reads the names of all files with an extension of .PR? ('?' means 'any character') in your AUTO folder and displays them in the upper half of the screen. These are all your AUTO programs, which will be automatically executed when you boot your computer if their extension is '.PRG'. When Desk Manager 2.1 is ready to accept input, you'll hear a bell tone and see an arrow pointer resting on the first name in the upper left; you can move this pointer around with the arrow keys or the mouse. Type Return or press the left mouse button to select and de-select files, and type Esc or press the right mouse button to continue to the next screen. If you don't type anything for about 2.5 seconds following the bell, Desk Manager 2.1 will continue to the next screen. (This "timeout" feature is active in all the Desk Manager 2.1 selection screens.) Typing any key will cause the timeout feature to be deactivated for the current screen. If Desk Manager 2.1 finds a file named GDOS*.PRG in your AUTO folder after processing the AUTO programs, you will then see a list of all the ASSIGN.SYS files which you've copied into the \AUTO\DESKMGR folder. Move the pointer among the names and select one by typing Return or pressing the left mouse button. The chosen file will then be read into memory and immediately written out to the main directory of your boot disk as ASSIGN.SYS. If Desk Manager 2.1 does not find a GDOS*.PRG file in the AUTO folder the ASSIGN.SYS selection screen will be bypassed. The last selection screen displays the desk accessories in the main directory of your boot disk. All files with an extension of .AC? will be shown sorted alphabetically, to a maximum of 128. The selection procedure works just as with the other screens, with the keyboard or mouse. Since the desktop allows a maximum of six desk accessories, you may only select six filenames on this screen. If you try to select more than six, you'll hear a bell to alert you that you've reached the limit. While in the ASSIGN.SYS or Desk Accessory selection screens, you may return to the previous screen by typing the Backspace key. If you type Backspace while on the AUTO Programs screen, you will enter the DESKTOP.INF selection screen, even if one of the default .INF files has already been installed. On any screen the Help key will display a brief explanation of how to set up and use Desk Manager 2.1, and the Undo key will immediately quit the program, without changing any filenames on the current screen. Also on any screen, you may type the 'W' key to turn disk write verify on and off. In the AUTO and Desk Accessory selection screens, any programs or accessories that are already active will be shown in inverse. Therefore, to go to the next screen without changing the current setup all you have to do is hit the Esc key (or wait for the timeout). In either of these screens, typing Clr Home will de-select all files and let you start with a clean slate. When you use a color monitor, Desk Manager 2.1 will default to using the medium resolution DESKTOP.INF file, MEDDESK.INF. If you wish to boot into low resolution (using LOWDESK.INF), type 'L' any time before Desk Manager 2.1 runs. If you wish to bypass Desk Manager 2.1 entirely, type Undo any time before the program runs. To reconfigure Desk Manager 2.1 to use different drives for AUTO programs and accessories (like you do the first time it runs) type Help before the program runs. You may notice that the desk accessory filenames are alphabetized, while the AUTO programs are not. There's a reason behind this seeming inconsistency. The order in which desk accessories load is rarely very important; in fact, the GEM desktop seems to have its own way of ordering the accessories, regardless of the order in which they actually load. However, the order of the AUTO program names on the Desk Manager screen is the same as the order in which they will run. Many times, the order of the AUTO programs is important; for example, if you use a reset-proof RAMdisk, you'll probably want it to run before anything else (even Desk Manager) because most such RAMdisks employ a "double-boot" procedure. As a consequence, any programs copied into the AUTO folder before the RAMdisk will run twice. Also, many AUTO programs are picky about the order in which they run, especially if they do any fooling around with system vectors or other tricky stuff. The problem is, there's really no way to tell from the desktop in what order the AUTO programs will run. None of the "View" options will show you which programs were copied into \AUTO first. Desk Manager 2.1 shows the true arrangement of the AUTO folder programs, and can also help you to diagnose incompatibilities between various programs. Caveats ------- My lawyer (if I had one) would probably want me to say that I cannot be responsible for any damages caused by the use or misuse of Desk Manager 2.1. The responsibility for operation of the program is assumed entirely by the user, and no guarantees of any kind are made as to its usefulness for a particular purpose. With that out of the way, let me just say that in two years of use Desk Manager has never caused damage to any disk to my knowledge. One thing to keep in mind is that Desk Manager 2.1 works by renaming AUTO programs and accessories. Be careful not to hit the reset button while the "Renaming..." or "Creating..." messages are on the screen; you could destroy a disk's directory if you do it at the wrong second. (This is not a problem with Desk Manager 2.1; the same is true of hitting reset while writing anything to a disk at any time!) If you already have more than six accessories on your boot disk with extensions of .ACC, it may be a good idea to rename the ones you aren't using with an extension of .ACX before you run Desk Manager 2.1 for the first time. If you have a suggestion for Desk Manager 2.1 or questions about its use, write to the address listed above. The fastest way to reach me, however, is to leave Email on Delphi, Compuserve, or GEnie to: Delphi - CFJ Compuserve - 75066,404 GEnie - C.F.JOHNSON ` F>` DM21XXag#"~H@|ag 03" <aB oOa*//Bg?<JNA Jf ?<NNTO#"f?<?<NNXO?<?<!NNXO?<NNTO3"Jy"f(?</`Kzaa,9  !9  !$!6!V!d!!!!!By"Jy gj y"g#!"jaJfJ3"zK!aHk3"KqZ*< a>aja Hy#?<NN\O?<%NNTOHy#:/9"fHyqZa Hy#:/9"f?<a @ Hz?<&NN\OBga *TOK"a `#!"ja \Jf3"zK!akt3"K"zaK"z aKqZ*<}ara y"f6a &K"a @AqZ"y"f0<""""QHz?<&NN\OK"a ?<*NATO8*||HS@HA"A:<Q0|a -0f%RM, 190|HH|Pa  | 0|| n ?<,NATO8|HHJ@f0< BF`| nBF`| g| <<a l -0f| :0|Ha N:0|Ha > JFf(|`(| |:< QqBA a: y"g8Jy"g$ 9"~|8<LfBy"#!d"j`#!"j` #!"jBy"a @Jg 3"`Aa y"g<LfA `A`AaA aa J@g"Aa y"jazAap``BE*y"ja3"*|Aaa Jy"f a,g#"~3"` a4J@k$a3"a By"Jy"g*Jy"g y"g`By"a Jy"f*|=aJy"ga *`4Jy"gAa09" A#<E}GCꃠHk GQ`DFRFGQef^Te R fBA "o0><TB@<< 2I2Id2Q`2Q2QAΑVHHLxNuHM8PJo(gXJf:?<NNTO-@ HzNBg?<NNPOo+o,-o.Hzd?<&NN\O`o+o,-o.J.f`8Jg4Hzl?<&NN\O?<2QA`CBA A,!Nu!p`A@C`><0QNuJx>f6@|A.JgI@K M"&zG ><BJg<bNNqNqNqNqNqNqNqNqNqNqNqNq0<NqQNqACE """"""""$$$$$$$$QACE """"""""$$$$$$$$ACEI뵠NqNq """"""""$$$$$$$$M"PQ-nFNuBE8<K"?NAXOJ@Nu/?< NA\ONuHy"D?< NN\O*8ڼag#"~3"p`bpA<?<B| |Nu*889 y"f`dڄag | f `bNu?<?<NAXOJNuHz?<&NN\ONuHzB?<&NN\ONuJxDfA e1D` A BxDa 8мfNuqwEqfY2 p DESK MANAGER 2.1 1988 Charles F. Johnson Y2O| ampmY3!JY3>- DESKTOP.INF -Y3!JY3=- AUTO Programs -Y3!JY3>- ASSIGN.SYS -Y3!JY3=- Accessories -Y4!JY45Arrow keys/Mouse: Move pointerY53Return/Left Button: Select filesY6=Clr Home: Clear all selectionsY75Esc/Right Button: Exit/Rename FilesY9,Backspace: Previous Screen / Help: Info / Undo: AbortY4!JY53Creating monochrome low res medium res DESKTOP.INF file. qwEqfY p Desk Manager 2.1 Initialization qY! JY'2Which drive holds the AUTO folder (pAq - pPq)?Y! JY'2Which drive holds the accessories (pAq or pCq)?Y! JY'1Number of seconds to hold startup pic (p0q - p9q)?Y! JY'/Write the new configuration to DESKMGR2.PRG (pYq / pNq)?Y4!JError - is not present! Y1pdY Y4!JY4 JY5?Renaming...Y4 JY5;Creating ASSIGN.SYS...Y4 JY5;Creating DESKTOP.INF...YCCCCCCCC CCCCCCCC YpqY3 JY5;pCan't find DESKMGR2.PRG!qY71(Perhaps you renamed it? Or changed disks?) fY3 JY59Continuing boot process... fY3 JY3.DESKMGR2.PRG should be placed in the \AUTO folderY4.of your bootup disk. Create a folder inside \AUTOY5.named \DESKMGR and place your DESKTOP.INF filesY6.(LOWDESK.INF, MEDDESK.INF, and HIGHDESK.INF) andY7.your ASSIGN.SYS files (*.SYS) in it.fY3 JY3.To display a startup picture in color, place aY4.Spectrum 512 picture in the \DESKMGR folder andY5.rename it to DESKMGR.SPC. In monochrome, place anY6.uncompressed DEGAS picture in \DESKMGR and renameY7.it to DESKMGR.PI3.Y3 JY30Type 'W' to toggle disk write verify on/off.Y40Type Undo pbeforeq Desk Manager loads to bypassY50the program entirely, or Help to re-configure.Y60Do pnotq rename DESKMGR2.PRG, or else you willY70be unable to save your current configuration.Y3 JY34If you use and enjoy Desk Manager,Y44please send $15 (or more) to:Y68Charles F. JohnsonY78P.O. Box 1250Y88Pacific Palisades, CA 90272Y3 JY5=Write Verify: pONqY3 JY5=Write Verify: pOFFq\AUTO\DESKMGR2.PRG*.SYS*.INFY49JNo accessories on drive X...X:\*.AC?X:\AUTO\*.PR?X:\AUTO\X:\ X:\AUTO\GDOS*.PRGX:\AUTO\DESKMGR\X:\ASSIGN.SYSX:\AUTO\DESKMGR\LOWDESK.INFX:\AUTO\DESKMGR\MEDDESK.INFX:\AUTO\DESKMGR\HIGHDESK.INFX:\AUTO\DESKMGR\DESKMGR.SPCX:\AUTO\DESKMGR\DESKMGR.PI3X:\DESKTOP.INF.ACX.ACC.PRX.PRGJan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec   $&2  ,  &  "(            &          &      `b>    4 "      $$     8 xF\.  t..  tREAD_ME 1STt SUPERBT DOCt QSUPERBT PRG$t BSUPERCFGPRG)t GSUPERCFGRSC/t NOTE: The SUPERBT.PRG included is version 2.3 even though the docs say 2.2. The only difference in versions is that 2.3 corrects a bug which caused mono ST's to try to show color welcome pics, thus causing the program to bomb. No new features have been added since 2.2. Manual for SUPER BOOT 2.2 (Revised 10/07/87) Description Super Boot is an "all-in-one" type boot program that does just about everything you could ever want. It allows you to: o Display any welcome screen from any picture in .TNY format, even on systems with both color and mono monitors o Choose which accessories to load in o Choose from any number of DESKTOP.INF files, allowing you to change your resolution, color scheme, etc. on each boot o Choose which AUTO programs to run o Have Write Verify turned off if desired o Set the date if you so choose o Set the time if you so choose o Choose whether or not Super Boot will run by pressing the ALT key o Restrict access to your system by use of a password (mainly useful for hard drive owners) Furthermore, Super Boot works on any Atari ST, from any boot drive, and on both color and monochrome monitors. On color monitors, it will automatically be displayed in 4-color medium resolution. Super Boot can display a maximum of 135 files at once on the screen. Copyright Information SUPERBT.PRG, SUPERCFG.PRG, SUPERCFG.RSC, and SUPERBT.DOC are Copyright (c) 1987 by Gordon W. Moore, ALL RIGHTS RESERVED. Compiled portions of the code are Copyright (c) 1986 by CCD and OSS, Inc. and used with the permission of OSS. These programs are distributed on a SHAREWARE basis and may be distributed freely as long as all 4 files mentioned above are included and unaltered in any way. I have put a great deal of time and effort into Super Boot, so if you are pleased with it and find it to be of use, I ask that you send a modest one-time contribution to the address listed below ($10 suggested) to become a registered user. As a registered user, if you have a special request (within reason) for something to be added to Super Boot for your specific system, I will try my best to create a customized version for you. These programs may not be distributed for a fee (other than the cost of the disk and/or postage). Companies charging so-called "processing fees" or "handling charges" of $8.00 and up for the hard work of other authors in my opinion is despicable. Disclaimer Since it was first released Super Boot has proven to be very reliable and I know of no damage ever caused by it. It does not "hack around" with your boot disk and it uses only standard, built-in GEMDOS calls. However, for legal purposes I must state the following: "I make no warranty with respect to this manual, or the programs it describes, and disclaim any implied or explicit suggestions of usefulness for any particular purpose. Use this program only if you are willing to assume all risks, and damages, if any, arising as a result, even if it is caused by negligence or other fault." Configuring Super Boot SUPERCFG.PRG will allow you to configure Super Boot to suit your own preferences. When you run this program, make sure that SUPERBT.PRG is in the same directory. All of the default menu selections in the configuration menu will be the defaults which were read from SUPERBT.PRG (except for the editable text fields; I haven't figured out a way to change those yet). MENU OPTIONS: Check for Warmboot ON/OFF -- This option tell Superboot whether or not to check to see if the system just powered up or if it was warmbooted (a warmboot is when the computer is rebooted using the reset button or via software). If a warmboot is detected and this option is on: - It will not show the welcome screen again, since you already saw it at power up - It will not ask for the password again since it was entered at power up - It will not ask for the time and date again, unless when it previously asked for time and date the user skipped setting it by just hitting return. If the date was set at power up, it will not need to be set again. The time and date will be retained even if reset is pressed or if the computer is software coldbooted. Super Boot detects a warmboot by checking to see if the date was initially set yet (at powerup it has no date). For systems with a battery clock calendar that sets the time before Super Boot is executed, Super Boot would not be able to recognize a powerup (it would think every execution was a warm boot because the date was already set). If this was the case, the welcome screen and password options would never be executed, so the OFF option should be selected. If you do not have a self-setting clock calendar but would like the system to always show the welcome screen, password, etc. instead of just after the system is powered up, you can also select the OFF option. If you disable the time & date functions, you will also need to select the OFF option. Otherwise the ON option should be chosen. Write Verify ON/OFF -- This option tells Super Boot whether or not to turn off Write Verify. Turning Write Verify off will cut in half the time required for all disk writes (note that it remains off until the computer is powered down). With Write Verify on, everything written to disk is immediately read back in to assure accuracy. Most people who leave write verify off never experience any problem at all, but it's up to you. Keyclick ON/OFF -- This option allows you to turn off the default keyclick sound (which I personally find irritating). If you have the Control Panel desk accessory active, the Control Panel will reset the keyclick option based upon the DESKTOP.INF file after Super Boot terminates. Welcome Screen -- Ever since the new ROM chips came out, I kind of missed the flashy graphics display that used to be shown while TOS loaded in. So, Super Boot now brings that back, only now you can choose any display you want. (Hey, if a Macintosh can show a welcome screen, the ST can too, and twice as well!). Any picture in .TNY format can be displayed. If you are unfamiliar with that format, it is a file created by an excellent program called TINYSTUFF. This compresses pictures from their normal 32K size to sizes anywhere between 42 bytes to 32K, with an average size reduction of 50%. From the menu, select ENABLED if you want a welcome screen, or DISABLED if not. If enabled, also be sure to type in how long (in seconds) you want the picture to be displayed. NOTE: You can tell Super Boot not to set a time limit by entering a Delay Time of 0. In this case, the Welcome Screen is shown until a key is pressed. Date -- If you want, you can have Super Boot set the date for you. If you choose to enable this option, you also need to be sure to type in the current year (Super Boot only makes you set the month and day, not the year). NOTE: Super Boot does not automatically update the year, so when the year rolls over on January 1st, you'll need to run SUPERCFG.PRG again to update the year. Time -- You can also have Super Boot set the time for you. If you choose to enable this option, you also need to be sure and set the format you want for the time. HH:MM means you enter in only the hour and minutes, HH:MM:SS means you enter in the hour, minutes, and seconds. The reason you have the option not to enter the seconds in is simply to save the time of typing it. ALT options -- Since you won't always need Super Boot every time you boot up, you can choose when you want it to run by holding down the ALT key while booting. You have two options that you can set from the configuration menu: (1) Have Super Boot always run, except when the ALT key is held down upon startup (2) Super Boot will only run if you hold down the ALT key at startup. Password -- Allows you to restrict use of your system to only those people who know your password. This menu option allows you to turn password checking on or off, and allows you to specify the password. WARNING!!! Be very careful not to forget your password, it is YOUR responsibility. If you are using a hard drive and forget the password, you have major problems. The password option is only useful on hard drive systems, since if it is used on a floppy one merely has to change the boot disk to get past it. Once you have everything set up the way you want, click on the CONTINUE key to continue the configuration process or click on CANCEL to exit back to the desktop. WELCOME SCREEN FILENAMES: If you enabled the welcome screen option, you will next be asked to enter in the full path and filenames for the picture you wish to use. It is no longer required for the pictures to be in the AUTO directory, they can be in any directory. For those people who own both color and monochrome monitors, be sure to enter in two different filenames, one for each resolution. If you own both monitors but want only one welcome screen displayed when a certain monitor is used (e.g. only show a welcome screen when using the color monitor) then leave the filename blank for the monitor you don't want the picture displayed on. COLOR SELECTION: If you're running the configuration program on a color monitor you will be asked to set the screen colors which will be used in Super Boot. A sample menu screen will be shown, and color values will be displayed at the bottom of the screen. Move the mouse to a number and press the LEFT button to change the number (values range from 0 to 7). Above the numbers are descriptions of what they represent, "R" stands for Red, "G" stands for Green, and "B" stands for Blue. Once all the colors are set the way you like them, press the right mouse button to continue. After all of the above options have been set, a new version of the program named SUPERBT2.PRG will be created with your preferences as default. Run the program FROM THE BOOT DISK to make sure it is working properly, and then you can delete the original SUPERBT.PRG and rename the new version from SUPERBT2.PRG to SUPERBT.PRG. Setting up your Boot Disk SUPER BOOT: Once you have Super Boot set up the way you want it, you need to place it in a folder named AUTO on your boot disk. In order for it to be able to properly choose which programs are automatically run, SUPERBT.PRG must be the first program in the folder. If you don't already have an AUTO folder, create one using the "New Folder" option from the desktop menu and copy SUPERBT.PRG into it. If you do already have an AUTO folder with files in it, the ONLY way to ensure that SUPERBT.PRG is the first program listed in the directory, is to copy everything already in the AUTO folder to another disk, delete everything from the AUTO folder, THEN copy SUPERBT.PRG to the AUTO folder, and then copy the rest of your autoboot programs. Looking at the date of a file does not always accurately tell you its actual order in the directory. AUTOBOOT PROGRAMS: An autoboot program is any program which is placed in the AUTO folder. All autoboot programs will be automatically executed at boot time, and the programs are run according to their order in the directory. NOTE: Only programs with .PRG as an extension will run, files with a .TOS extension won't run. (For .TOS programs, simply rename them to .PRG) Also, only non-GEM programs can be autobooted. As an example of how useful it is to choose which autoboot programs to have active, take GDOS for example. Several programs won't work with it, several programs won't work without it. Super Boot would allow you to choose whether or not you wanted to load GDOS when you boot. ACCESSORIES: All accessories must be copied to the root directory (main directory) of the boot disk. DESKTOP FILES: A great deal of information is stored in those little DESKTOP.INF files. It sets your RS 232 parameters, printer settings, colors (if the Control Panel accessory is installed), sets low or medium resolution for color monitors, automatically opens up directory windows, and more. Super Boot allows you to select from any number of desktop files. To create the desktop files that Super Boot uses, do the following: 1) Set up the desktop the way you want it. Be sure to be in the resolution you want, and to set the control panel, printer settings, etc. 2) Save the desktop by selecting the "Save Desktop" item from the drop down menu at the top of the desktop screen. 3) Rename the DESKTOP.INF file which is created, giving it ".TOP" as the extension. Name it so that it reflects what the settings are. For example, a low resolution desktop could be named LOW_REZ.TOP, medium resolution could be MED_REZ.TOP, special modem settings for Uniterm could be called UNITERM.TOP, etc. All .TOP files should be in the root directory (not the AUTO directory). Using SUPERBT.PRG STARTUP: Depending on the way you configured Super Boot, the first thing checked is the ALT key. Whether or not you should hold it down depends upon the configuration. If Super Boot determines you wish to bypass it (depending on the ALT key) the program will immediately halt (but it does go ahead and set the Write Verify and Keyclick options before halting). The only exception to this is if the password option is enabled. If so, it will first get the password before halting. WELCOME SCREEN: If enabled, the welcome screen will be displayed for the amount of time you specified when using SUPERCFG.PRG. It will not be shown if Super Boot recognizes that the system was warm booted and was not powered up. Super Boot does support color rotation. You can prematurely exit from the Welcome Screen by pressing any key. If for some reason the picture file can't be read, no "file not found" message will be displayed, it will simply go on to the next function. PASSWORD: If enabled, Super Boot will ask for a password. Super Boot will not ask for the password if it recognizes the system was warm booted. A cursor will appear and move as you type each character, but the characters will not be displayed for security reasons. Backspacing is allowed. If the password is entered incorrectly, you will be asked to re-enter it. If it is incorrectly entered 3 times the system will shut down and the computer will have to be reset or rebooted. DATE: If enabled, Super Boot will show the current date and prompt you to enter in a new date. If Super Boot recognizes that the system was warm booted, it will not ask for the date. Pressing RETURN on a blank date will leave the date as it is. You must enter the date as a 4 digit number, 2 digits for the month, 2 for the day. Examples: March 28 would be "0328", December 8 would be "1208". If you enter an invalid date the invalid date will be erased and you will be prompted to enter the date again. NOTE: Super Boot checks only to make sure that the date is within reasonable bounds. It does not, for example, check to see if Feb. 29 is valid, or June 31. Any date between 1 and 31 are accepted as valid. TIME: If enabled, you will next be shown the current time and prompted to enter in a new time. As with the date, pressing RETURN on a blank time will leave the time alone. You must enter in the time as military time. Military time is like ordinary time, except that if the time is PM, you add 12 to the hour (except for midnight and noon, where 12:00 AM = 00:00, and 12:00 PM = 12:00). Examples of conversion to military time: 12:30 PM = 12:30, 4:15 PM = 16:15, 8:00 AM = 08:00, 12:45 AM = 00:45. To enter the time in on Super Boot, you enter either a 4 or 6 digit number (depending on if you set the configuration to ask for seconds). Examples: 4:15:37 PM = "1615" without entering the seconds, or "161537" with entering the seconds. 1:22:03 AM = "0122" or "012203" depending on whether or not seconds are entered. IMPORTANT NOTE ON TIME AND DATE: Since Atari first released TOS on disk along with DESK1.ACC and DESK2.ACC, they have put out 2 new versions of the control panel. The new versions are both named CONTROL.ACC. The old DESK1.ACC does not accept time changes made through Super Boot, so you need to use the newest one. Another side effect of using the old control panel is that it loses the date and time when you switch resolutions, and the new control panels correct that. The first revision of the control panel fixed most of the time problems, except that it reset the seconds to 0. The latest version of CONTROL.ACC corrects the problem with the seconds. FILE SELECTION MODE: If there are no accessory, desktop, or auto programs present, Super Boot will skip the file selection mode and exit, otherwise it will display all available files to choose from (up to a maximum of 135 total files). All active files are displayed in inverse characters, all inactive files are shown as regular text. To select or deselect a file, simply move the ">" cursor with any of the four arrow keys to the filename and press the space bar. Super Boot allows only one desktop file to be selected at a time, and any number of accessory or autoboot files to be selected. However, please note that the ST can currently have a MAXIMUM of 6 accessories active at once, and some files (like CONTROL.ACC and EMULATOR.ACC) count as 2 accessories each. Note that you can also have zero desktop files selected, in which case the current DESKTOP.INF file will remain unchanged. When you have set the files the way you want them, press the ESC key. If you don't want Super Boot to revise any of the files, just hit the UNDO key instead of ESC and the program will immediately terminate. While the message "Revising files....." is displayed, you should never interrupt the disk drive, either by removing the disk or by turning the drive or computer off. How does Super Boot do it? Super Boot works by changing filenames. Inactive accessories and autoboot programs will have an "X" as the last letter of the filename (CONTROL.ACX or GDOS.PRX for example). Since the ST only recognizes .ACC or .PRG files as valid accessories or programs, those files with "X" as the last letter in their name don't load. It does the desktop files by copying from the selected .TOP file to the DESKTOP.INF file. So therefore if you use one desktop file most of the time, once it has been copied to the DESKTOP.INF file you can deselect it the next time you boot so that it won't have to be copied every time Super Boot is executed. ====================================================================== Please send any comments, questions, bug reports, or registration fees to the following address: Gordon W. Moore 1908 Augusta Dr. #9 Lexington, KY 40505 After May 1, 1988 please send all correspondence to my permanent residence: Gordon W. Moore 2300 Beech St. Ashland, KY 41101 For fastest response to a question or comment send Email to one of the following: Compuserve: 73647,2735 GEnie : G.W.MOORE ======================================================================= `@|60 o"h#@#@#@BbBy@N&NV?.?. ?<NMN^ _XN/,HNVA-H?<?. NN^,_ _TN/,HNVA-H?<N0. ?NN^,_ _TNNV?.?<NMN^ _TNNV?.?<NMN^ _TN/,HNVA-H?<ENN^,_Nu/,HNVA*-H?<YNt0. @?N@0.@?N2N^,_ _XN/,HNVA-H?<pN6N^,_Nu/,HNVA-H?<qNN^,_Nu/,HNVA$-H09ErAl ?<bN?. NN^,_ _TN/,HNVA$-H09ErAl ?<cN?. NN^,_ _TN/,HNVA-H?<eNN^,_Nu/,HNVA-H?<fNlN^,_Nu/,HNVA-H?<JNNN^,_NuNV?<NNN^NuNV?./. /.?<NNN^ _ NNV?.?. ?<NNN^ _XNNV/.?<NAN^ _XNNV?./. ?<NNAN^ _\NNV?<ONAN^NuNV/./. ?.?<VNAN^ _ NNV?<NAN^Nu/,HNVAT-Hp=@r.=A` n 0.rC1ARn0.no n r.RArAN^,_ _VNNV?./. ?<NAN^ _TNNV/./. ?.?<?NAN^ _ NNV/./. ?.?<@NAN^ _ NNV?<NNN^NuNV/.?<NNN^ _XNNV?<%NNN^Nu/,HNVA-H V0(H2(A2(IA=@R@2(tCsw1E0.T@RAt10(R@1@2<ȰAm*t1B0(R@1@vCmx1D0(R@1@N^,_Nu/,HNVA-Hp9sx V1@r1A4(vCo WB1B`x1D=C2(Ad2XC=Cr9syxD1Az9syM1E|9sz1Fr=A`H0.S@@2.SAA4.BvAsw0C2.SAABRAx0DC3Rn no0.@ =@rAsw0IR@t0B=A0.T@t0J0.V@v0C=B0.X@=@A=@v=Cx=Dz=E0.rAsw04<BmHr=A6<x0D=C` NN0.T@=@Rn0.no2.RA=A`r0vCfTr=AR@x0D0.T@z0E=D` NNRn0.no2.VA=A4.TB=B`r0xDfR=DR@r0A0.T@z0E=A` NN,0.T@=@Rn0.no2.VA=A`<=Dr0=A` NNRn0.no2.RA=A4.TB=B4.vCmN^,_Nu/,HNVA\-H09ErAfALC-t,Q`AbC-t,Qt=B0.Z@rA0p @V2.v(C_DBd$ZBx0 CRA=A`0.rAHnBgNn=@rAm?.Hx},HysxN-@?.N^=@ NNzp=@`"?.0.@A?0N=@Rn nop//?.NNf-@ @C2<? Qr9sit0B v9sjCB=A?<N@d?<N-@`N;-@2.Ad0.2<Amn4.BA60 =C4.=B8.SD=D`"0.@2.RAAA401Rn0.no2.A4.A1`j4.BA60 =C4.=B8.RD=D`"0.@2.SAAA401Sn0.nl2.A4.A1/N&0.=@2<Am 4<@=Bt=B6.=C` N Rn0.no2.tBfN;2<HЁ-@?<N|@d <8-@?<Nz-@N;".4.H҂o`Z0.rAfN;2<HЁ-@?<N@d <8-@?<N-@N;".4.H҂oN^,_NuMONO:MONOPIC.TNY COLR:COLORPIC.TNY NV?.?. ?<NNN^ _XNNV?<NNN^NuNV?.?<+NAN^ _TNNV?.?<-NAN^ _TN/,HNVA-HA"Cp9sarYAfzN:p9sbr0A t9scBA=@?<?< N$NFHyCFHz?<N5 ?.?<N4Hz?<N5 XHy@?<PHnN8fN7:Xp=@Hnr/HzvBN/f469mC89mFDDBdA2CtW=BHn/Hz0BN/4Bdt.xDfnz.|0F p.@F=Ev.F r.AF=C?Hz?<N24?Hz?<N28DBet=B`z=E0.@dNHnp/HzBN/2Ad$2.4.BB4.Bv bB=A` 29m=A0.N^,_Nu0101) Enter date [MMDD]: (19/,HNVA$-HAfCp9s`rYAft9sdAf v=C`v=CN?<?<NNHyCFHz?<N5 X0.@dHyCFHz?<N5 XHyCFHz?<N5 XHy@?<PHnN8fN7:Xp=@2.Aer=AHnr/HzBN/4Bdt.vCW:.FEEzEW0.@FDdx.|0F r.AF=Dv.F t.BF=C@dp.F BF=@?Hz?<N20?Hz?<N2:E@ep=@0.@d"?.Hz?<N20@ep=@`x=DNz0.@dhHnp/HzBN/2Ad&2.tH6.CC6.x cC=A` 29m=A0.N^,_Nu]: SSEnter military time [HHMM/,HNVA-H . -@ @2H-A .N^,_ _XN/,HNVA-H .-@ @2. 0N^,_ _\NNV/.?< NAN^ _XN/,HNVA-HBN-@r9setYBfHxD?< NN`HxDBg NNz/.N-@r9sgtNBf^BN-@Hx NN-@/.Nh-@".=AtBB=ABNJ-@Hx?. NN/.N0-@N^,_Nu/,HNVAX-HHn BgN&rAoB09rR@=@09rR@3rr=At=B n\TC0.R@=@ n\29rTN<"n\29rT/ ?N3X?<N?<NH@d?<NR-@"<afN?N.$<PW(<HWņE*<KWƆF,<MWACdW6.89rVDD]EAdRC=C谆WC89rXDD]EAd2.A=A"<KW8.zE^BCd D=D$<HW|F^ACdRSD=D2.AW:.EW@CdSD=DEWFWC@dTD=DEWF^C@dSD=D?.?.NRNHyCF?< N3X0.2.AW6.CWĄD8.DWńEBdR@=@49rVBBoU@=@CfS@=@AV°CVEDVEBdS@tH R@=@:.SEHŋHEVE=E??N?<N"NHyCF?<>N3X?<N ."<9 f0t=B6.8.DoSB=B:.EoSB=B<.FoSB=BC=B n T0(@d n 0.Tp1@Nj`V0.49rB^89rDRBB]EAd29rRA=A49rD=B` n 0.T0(@d n 0.Tp1@2.SATAtHRA=ASA RA=A6.SCTCHÇHCVC=CTA??N`Np=@ n 0.T0.HyCFr(?N3X0.R@=@ n 2.Tr(t.BfRn0.no.0.S@rH R@=@4.SBH…HBVB=B n 6.Tv1CN0.T@??.Np=@ n 0.T0.HyCFr(?N3X0.R@=@ n 2.Tr(t.BfN ."<fN^,_ _XN[Auto boots][Auto Boots][ Desktops ][Accesories]/,HNVRA-HN/LnNuHn _0@"_24BAAc1V`t>/LnNuHn _02S@AC2YQ/LnNuHn _02S@AC2YQ/LnNuHn _02S@AC2FAYQ/LnNu _"_/) g g f*JtgJi ka0) k @e??<>3| NAXNu/")x itg$H@//?) ?<@NA LJof _Nu _4` _t6 Bo r aSB`2aNH?o _r ar a/L?oNu _r aN _4` _t"x0HgJJjDxvCoZzp cRЀ`|e W0R"f`6 _4` _t2xJAjDAxvCoZp0 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 o "oA/ N5L o Nu(_"_/ A) g  f$)Jtf&H //?) ?<@NA LJovfNu$ix&i|fa`pRgf#Jx`H")x it#Hxg$H`//?) ?<@NA LJofLNu )f NuHy6` Hy60< LN@REWRITE required prior to WRITE or PUTDisk or directory full _$_"Wp i e)H/ N9L4NH/ N9Lp)` _"WJ9o\f*J)f i e)H/ N9L i d)J)fJg i dB9o\J)fBiNz`z _$_"WptvH/ HyoZaB29oZXL- -fJf^p`4  fJg*`N0eH  bBԂi\(؄iV؄iRԄiNԁRCJ)f  g i e) 0e 9c~Jg&JgDJf 6Höf4N$NHy80<`Hzh0<N@ _$_0"Wt&JRJ)f:H/ HyoZar29oZXL i d J)Po\f RBBe`Be`N Bad digit in number encounteredOverflow during READ of number(_ _/ C (g ( fXJ(fF$($IJtflH / /?( ?<?NA LJo*fJg  f"J` g  Wf NuJg Jh g J(fPNu!|NuH$hx&h|gpR@@gf!JxL`H &ht!KxJh f(aZLEJ@g *f` R@Bh` / /<?( ?<?NA LJlp!K|JfvL`rH@Hsp/Bg?<?NA LRA3 f@ AgUH@Hzp 3 dp` SAH@Hzp/?<?<@NA L` fSA` fSAH@Hzp` f H@Hzp `~ f4SA`(H@Hzp 3 dp/?<?<@NA LQ`* d,;9@;HHzpp/?<?<@NA L AfH@HzFp/?<?<@NA L NuHzR0<`Hz$0< LN@  p Exit q C^AReset required prior to Read or GetAttempt to read past end-of-fileH`?<,NAT24HAI<Ёr jЂLNu&_4"_jtEo~  SB*(y@/,,/  Hyo~UBkQBBg?<KNANHo^ _0"_jp&y@r+t$IS@k,RB  WfSBkBkG$I0(K Vg RQBg`?</Lo^NuHo _0"_e /LoNuHy?N@/B9p&/|p&NuHo _0 @f0"|oop` "_J@jpEp&r4@ BbBS@kQ/LoNuHo _4SBkt82$_rAbd0 @f0"|oop` "_J@jp6ADb6CG0IS@k$eQ/LoNuHo _4k2SAk0"_p6B@bE0)CS@kQ/LoNuHo _2$_r0 @f0"|oop` "_J@jp@kS@kv&J$IRC4(K Vg RQBg`?/LoNuHo _4kF2SAk>0 @f0"|oop` "_J@jpJBg@b6B@oCEp&SBkQ/LoNuString overflow _pJ.g 0( hNVg4 ( hg( hH`0( hNVg ( hg hHfXgr"ODd2Sk "Sj` _"y@e Hy?N@N#q.#q* .f -|?`-|? nNнq*f yq.NStack overruns heap _(N _0/Ho |?3@Jy@fXNX/#q2"|@|a "_a"|@aJy@g yq29BgNA/ ?< NA\Nu09@Nu09@By@Nu _3@NBy@Nu *** *** Copyright 1986, CCD and OSS, Inc. H8 pD, $bv46*(2&2&\6(66\<0p0,,:2: 8 > ,@t22$"6 6B" 4l   H HF j DjD$ D>f                              0    &      "$" ,*< * * , , 0 , "2J ^ (*  vb"L  ( *@ B @ ( 0  `B o"h#D#D#D,Oc.N//Bg?<JNA BbByDޝNF/,HNVtAH-H?<OHnHnHnxHntN5 n0.0"n2.2$n4.4&n 6.6N^,_ _NNV?.?. ?<NMN^ _XN/,HNVA-H?<?. NN^,_ _TN/,HNVA-H?<N0. ?NN^,_ _TN/,HNVA*-H?<YN0. @?N0.@?N|N^,_ _XN/,HNVA-H?<pNN^,_Nu/,HNVA-H?<qNbN^,_Nu/,HNVA-H?<bND?. NN^,_ _TN/,HNVA-H?<cN?. NN^,_ _TNNV?.?. ?<NNN^ _XNNV?<NNN^NuNV?./. ?<NAN^ _TNNV/./. ?.?<?NAN^ _ NNV/./. ?.?<@NAN^ _ N/,HNVA"-HAC p Qp=@r.=A`0.rA0CRn0.nor.RAtAHnBgN=@rAl:N0AO"O.p-Q?<N1$=@NBNh?.Hx}HyKDN#F?.N=@AC2"r=At=Bp=@`0."RAtA0Rn no0.rAKC0AHnt/Hz4/N8J6CdR@3D6.RC=CHn/Hz/N8J0@d0.R@3J6.RC=CHn/Hz/N8J0@d0.R@3L6.RC=C0.R@=@&9FH^:.|FWADd Fg:N0A6O"O8p7Q?<N1$=@NBNhN^,_Nu[3][| Fatal Error! | SUPERBT.PRG is | corrupted. ][ OK ]MONO:COLR:ARMS: [3][| Unable to open | SUPERBT.PRG! ][ ABORT ]SUPERBT.PRG/,HNVAj-Hp =@`,09D2.A@tAI0CKCRn n-op=@`D09J2.AS@tAJ0CKC09LAS@tEJ2Rn n(oAC p Qp=@r.=A`0.rA0CRn0.nor.RAtAHnBgN=@?./9FHyKDN-@"9Fg:N0ABO"ODpCQ?<N1$=@NBNh?.N=@N^,_Nu[3][| Write Error has | occured! | SUPERBT.PRG unmodified ][ ABORT ]SUPERBT2.PRG/,HNVA -Hp=@r=At=Bv=Cx =D`(0.@2.tAI0v0CC3Rn nop=@`0.`*p=@`:p=@`0p=@`&p=@` @b@0;N?.0.@ @A20?0.@ @20?0.@ @20?N)Rn noTN/N3?.NJ?.Nl?<?<NHyGfHz ?<=N;XHyGfHz ?<N;X?<?<N?.NHyGfHz J?< N;X?.N?.N?<?<NJHyGfHz ?<N;X?<?<N(NbHyGfHz?<N;XNf?<?<NHyGfHz?<N;X?<?<N?.Nx?.NFHyGfHzv?< N;X?.NR?.N ?<?<NHyGfHz?<N;X?<?<NHyGfHz?<N;XN?.N$?<(?<NtHyGfHz?<!N;X?<(?<NRHyGfHz?<!N;X?<(?<N0HyGfHz n pv_Cf n p  n px Dgp=@SA=A`N^,_ _XN/,HNVA8-HAbCJATCJp9JrYAf?<HyINN/N3N0/9IN"/9I?<N!3Ir AfNBNh/9I?<HyJN%,/9I?<HyJN%,N?HyJ? _ N^,_ _\N/,HNVtA&-HNBh?<oHnHnHnxHntN5N^,_Nu/,HNVtAn-HNBh0.=@2.=A4.=B6.=C8.=D:.=E<.=F0.=@2. =A?<3HnHnHnxHntN5N^,_ _N/,HNVnAN-HNBh0. rAl=A 0. =@".-Ar?<2HnHnzHnrHnnN50.z=@0.N^,_ _\N/,HNVAv-HNBh/.BgHnHnHnHnN(BgBgBgBgBg?.?.?.?.N/.Bg?<?.?.?.?.N&,/.?. N =@0.N^,_ _\N/,HNVAf-HNBh/.BgHnHnHnHnN(BgBgBgBgBg?.?.?.?.N:/.Bg?<?.?.?.?.N&,N^,_ _\N/,HNVAH-HNBh/. BgHnHnHnHnN(?<BgBgBgBg?.?.?.?.NN^,_ _XN/,HNVtA.-HNBh . -@x?<6HnHnHnxHntN5N^,_ _XN/,HNVAR-HNBhp=@ n0.rtBg" n R@"n0.rR@=@` n 0.N^,_ _PN/,HNVA-HNBh n rf6p. tBlԼ//N=`Hм//N=p=@r. =A`$ n "P0.S@0.rE 2Rn0.no n "Pr. tN^,_ _N/,HNVA8-HNBh n0.-H0(rAW0(v CWĄD0(xDWńEBd$ /A"Op?"QN`0(tBW0(|FWA0(rAWÊC0(vCWĊDEd"h -I0(AW0(CWňEp.:)E\BDd 4)SBB tfp.R@3@/ E&Op?&QN> n0(rAW0(vCWĄDBd"n0.3@ 4. 3BN^,_ _ N/,HNVAN-HNBh n0.-H0(rAW0(vCWĄDBd"h /"n / ND`N^,_ _ N/,HNVtA>-HNBh0.=@2. =A$.-Bx?<(HnHnHnxHntN5N^,_ _PN/,HNVtA6-HNBh0. =@".-Ax?<rHnHnHnxHntN5N^,_ _\N/,HNVtA^-HNBh .-@x2.=A4.=B6.=C8.=D:.=E<. =F?<*HnHnHnxHntN5N^,_ _N/,HNVA"-HNBh n0. 0( =@0.N^,_ _\N/,HNVtAp-HNBh .-@x2.=At=B6.=C8.=D:.=E<.=F0.=@2. tB=A?</HnHnHnxHntN5N^,_ _N/,HNVAN-HNBh/.?.HnHnHnHnN(/.?.?.?.?.?.?.?. N$N^,_ _ N/,HNVA"-HNBh n0. 0(=@0.N^,_ _\N/,HNVA"-HNBh n0.0. 1@N^,_ _PN/,HNVnAV-HNBh .-@r2.=A4.=B6.=C8. =D?<+HnHnzHnrHnnN50.z=@0.N^,_ _ N/,HNVpAL-HNBh/.?. n/"n/ N) n0.-Hp"n0(2$n 0(4N^,_ _N/,HNVtAJ-HNBh0.=@".-Ax?<,HnHnHnxHntN5 n0.0"n 2.2N^,_ _N/,HNV8A<-HNBh0. =@?.Bg?<BgHnHnHnhHnPHn8BgN6N^,_ _XN/,HNVA-HNBh?< ?. NN^,_ _TN/,HNV8AT-HNBh0.=@2.=A4.=B6. =C?<Bg?<BgHnHnHnhHnPHn8BgN6N^,_ _PN/,HNVA"-HNBh?. N7?<?. NN^,_ _TN/,HNVA-HNBh?<?. NN^,_ _TN/,HNV8AB-HNBh0. =@Pr=AR?<BgBg?<HnHnHnhHnPHn8BgN6N^,_ _TN/,HNV8AR-HNBh?.?. N70.=@2. =A?<lBg?<BgHnHnHnhHnPHn8BgN6N^,_ _XN/,HNVA"-HNBh?. N7?<?. NN^,_ _TN/,HNVA.-HNBh0. rA?N8?<h0. rA?NN^,_ _TN/,HNVAl-HNBh?. N70. =@rAo$t=BS@=@ vCox=D@=@ ?<?.N*0.rAo?<?. NN^,_ _TN/,HNV6AD-HNBh0. =@2.=A?<'Bg?<BgHnHnHnhHnPHn8BgN6N^,_ _XN/,HNVA-HNBh?<j?. NN^,_ _TN/,HNV8AB-HNBhp=@P2. =AR?< BgBg?<HnHnHnhHnPHn8BgN6N^,_ _TN/,HNVA-HNBh?<?. N N^,_ _TN/,HNV2A-HNBhHn2Hn4Hn6N8 BgBgNn0.=@P2.=AR4.BS@=@T=AV6.BSC=CX8. DSA=AZ:.=E\<.DSF=F^=E`0.=@b?<BgBg?<HnHnHnhHnPHn8?<N6?.4?.6NN^,_ _PN/,HNV8A`-HNBh0.=@P2.=AR4.BS@=@T6. CSA=AV?< ?< Bg?<HnHnHnhHnPHn8?<N6N^,_ _PN/,HNVAr-HNBhHnHnHnN8&BgN?<NHnHnHnN8 ?.Nx?.?.?.?. N*?.N?.N?.NLN^,_ _PN/,HNVtA6-HNBh0.=@". -Ax?<NHnHnHnxHntN5N^,_ _\N/,HNVA-HNBh?</. NN^,_ _XN/,HNVA-HNBh0. ?BNjN^,_ _TN/,HNVA4-HNBhN7rAf ?</N2N7R@?N7N^,_Nu/,HNVAB-HNBhN7rAo*N7S@?N7N7rAf ?</NN^,_Nu/,HNVA<-HNBhp?/Np=@N7=@` NxRn0.noN^,_Nu/,HNVtA,-HNBhp=@?<kHnHnHnxHntN5N^,_Nu/,HNVtA,-HNBhp=@?<kHnHnHnxHntN5N^,_Nu/,HNVA8-HNBhp.R@rAHnN8B/?. N5=@0.N^,_ _N/,HNVnAV-HNBh?<MHnHnzHnrHnnN5 n0.|0"n2.~2$n4.4&n 6.68.z=D0.N^,_ _N/,HNV,A-HNBh0. rAg =A.`$Hn,Hn,Hn,Hn,NT?N7Bpd=@.0. =@r=A`0.@rA1Rn n op=@?..Bg?< BgHnHnHn`HnHHn0BgN60.=@0.N^,_ _TN/,HNVAX-HN7L=@?.N7B0. =@?<fBg?<BgHnHn n/Hn"n/ BgN6?.N7BN^,_ _ N/,HNV4A-HN7L=@6?. N7B?. HnhHn8?<N\0.hrAg te=B4`t=B4????HnHnHnhHnPHn8?N60. 2.6Ag?N7B` BgN7BN^,_ _TN/,HNV8A2-HNBh?<BgBgBgHnHnHnhHnPHn8BgN6N^,_Nu/,HNVjA-HNBhp=@j?< HnHnzHnrHnnN50.z=@lrAg?<N=@j?.jN7?.jN7B?3| NAXNu/")x itg$H@//?) ?<@NA LJof _Nu _4` _t6 Bo r aSB`2aNH? _r ar a/L?Nu _r aN _4` _t"x0HgJJjDxvC0zp cRЀ`|e W0R"f`6 _4` _t2xJAjDAxvC0p0 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 "oA/ N<^L Nu(_"_/ A) g  f$)Jtf&H //?) ?<@NA LJovfNu$ix&i|fa`pRgf#Jx`H")x it#Hxg$H`//?) ?<@NA LJofLNu )f NuHy=Y` Hy=20< LN5>REWRITE required prior to WRITE or PUTDisk or directory full DNuH? _ gDeDd/L?NuHy?`Hy?N5Vt`t _"_ gR e6G?|$S" geb"*f&"`&A%S"`&J`а|gb<|fP"9?lgH$A#?l`:"9?pg6$A#?p`("9?xg$$A#?x` @ g"9?tg $A#?t"`"ED&R"$b Hy?N5VJgr"Qd2`"SjN _"_ " gDeDdgR m @ e@E?|"fB#@B$`p&A"+ef "'I`Z"#@B$`L$K`ư| f"?x#?x`4|f"?t#?t` |f"?p#?p` "?l#?lNHeap overruns stackPointer NILPointer not in heapH2 _0"_e /L2NuHyAN5V/B9Z/|ZNuH2 _0 @f0"|00p` "_J@jpEZr4@ BbBS@kQ/L2NuH2 _4SBkt82$_rAbd0 @f0"|00p` "_J@jp6ADb6CG0IS@k$eQ/L2NuH2 _4k2SAk0"_p6B@bE0)CS@kQ/L2NuH2 _2$_r0 @f0"|00p` "_J@jp@kS@kv&J$IRC4(K Vg RQBg`?/L2NuH2 _4kF2SAk>0 @f0"|00p` "_J@jpJBg@b6B@oCEZSBkQ/L2NuString overflow _pJ.g 0( hNVg4 ( hg( hH`0( hNVg ( hg hHfXgr"ODd2Sk "Sj` _"yDe HyBN5VN#b#^ .f -|B`-|B nNн^f ybNStack overruns heap09DNu09DByDNu _3DNByDNu[3][][ Abort ]Copyright 1986, CCD and OSS, Inc. ,*  \$    "$$$$$         F       B$&  .                                          F  4*@44b":,>4> @" f,tPd2 * R":d"F:6B.H*60 ,H ,,6 8 ,2 v8 ,6 ,,T  T* ,,  .6   *V0b,4 "T & & (,& J                "$"2J L  "D    * "FV ( *@ B @ (  ::::$::SCopyright NoticeSuper Boot, Super Boot Configurer,and the Documentation file are allCopyright 1987 by Gordon W. MooreAll Rights Reserved.These files are Shareware and maynot be distributed by any person ororganization which charges any feeOKfor their distribution.ght 1986 byCCD and OSS, Inc. Used with the permission of OSS.Portions of the compiled code are CopyriWrite Verify:OffOnDisabledEnabledDate87Current Year: 19__99Boot ONLY when ALT key depressedBoot ALWAYS except when ALT keydepressedSuper Boot Configuration Utility - V 2.2EnabledDisabledWelcome Screen15 Display for: __99secondsTimeDisabledEnabledHH:MMHH:MM:SSFormatKeyclick:OffOnContinueOffOnMYPASSWORDPassword: __________xxxxxxxxxxCancelCheck for Warmboot:OffOnSuper Boot Configuration CompletedA new version of SUPERBT.PRG named"SUPERBT2.PRG" has been createdwith all your preferences built in.Place this new version of theprogram in the AUTO folder of yourboot disk.OKWelcome Screen SelectionFilename for COLOR welcome screen: ________________________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX________________________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXFilename for MONO welcome screen: EXAMPLE: C:\GRAPHICS\TINYPICS\ATAdo not have both monitors, leave thRIPIC.TNYEnter the FULL pathname and filename appropriate filename blank.e for the welcome screens. If youCancelContinue$5s9GHq)r~ ):c3)s  #s?bs#21BW))$))'.!C/8!C !.:%6"Y"|# ! #  "   !  V!  r!  )1bNC    C8   C 6     0( *% dCu  C8       "2 C    #   ! ($'C &  l' #6)R  *+C- ,$)1 <+ 8!1n)c""#  "  '  !N*3 #% (%(M#p ## %  # % %" * %  ~ . < t.. < tBLITMODETXT=t BLITTER ACCBt BLT_AUTOPRGFt BLT_GEM C Jt TREAD ME Mt /* 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 . b t.. b tBOOTUP DOCdt BOOTUP PRGgt KBoot Up Master Document File Boot Up Master Program - Written by: Andrew Pinto With OSS Personal Pascal Ver. 2.05 Last Update 11-21-87 1 - Adds a date and time prompt if no clock is installed. 2 - Adds sound routines as prompts and error checks. 3 - Better error checking in program. 4 - In most cases the "Return Key" will return you to the main menu 5 - Automatic Timing Routine - if no key is hit after eight seconds, program automatically boots GEM With OSS Personal Pascal Ver. 2.00 Last Update 10-25-87 The program is designed to be used with a color monitor and be put in an auto folder on your Boot Disk. If you are using a Hard Drive put the program in the Auto Folder on Drive "C". If you are using a Clock Card or a program to boot your Hard Drive, put those programs in your Auto Folder before Boot Up Master Program. The program is designed to do ten functions. They are: 1 - Change Active Programs in your Auto Folder 2 - Change Active Accessory Files 3 - Change Read Drive (This checks available memory on drive) 4 - Change Screen Resolution 5 - Change Character and Screen Colors 6 - Change Write Verification On & Off 7 - Change Boot Up from either Cold or Warm Boot 8 - Always bring up your computer in medium resolution 9 - Check your computer memory 10 - Check your configuration/520ST/1040ST/MEG+ST The program requires three files besides itself. The first one is "DISKNAME.INF". This file is automatically written to "A" Drive the first time you boot with this program. The only thing you have to make sure is that the write protect is off "A" Drive and there is a small amount of free space on the same drive. The next two files you must create from your "DESKTOP.INF". First, set your screen resolution to Low. Set the desktop and arrange it the way you like it, then save the "DESKTOP.INF" file. Copy "DESKTOP.INF" file to "LOW.INF". Now set your screen resolution to Medium. Set the desktop and arrange it the way you like it, then save the "DESKTOP.INF" file. Now copy "DESKTOP.INF" file to "MED.INF". Setting Up Your "AUTO" Folder to use Boot Up Master Program. If you are using a hard drive, then the "AUTO" Folder needs to be created on "C" Drive else created on "A" Drive. If you are using a file to boot your hard drive, place that file first in the "AUTO" Folder. Then if you are using a clock card with a program to boot it, place that program in the "AUTO" Folder next. Now place the Boot Up Master Program in the "AUTO" Folder and any other program that you may use from time to time can be placed after that program. You can have a maximum of 18 programs which nine of them can be active at one time. This program allows eighteen accessory programs to be on the disk. GEM limits you to six active "ACC" at one time. After completing the above, hit RESET and reboot you computer. You are ready to go. Hope you enjoy it - leave any comments to my name on GENIE. `v8 o"h###Bb3NNoNV?.?. ?<NMN^ _XNNV?<NNN^NuNV?<NNN^NuNV?<NNN^NuNV?< NMN^NuNV?.?<NAN^ _TNNV?<NAN^NuNV?<*NAN^NuNV?./. ?<NAN^ _TNNV/./. ?.?<?NAN^ _ NNV/./. ?.?<@NAN^ _ NNV?./. ?<NNAN^ _\NNV?<ONAN^NuNV/.?<;NAN^ _XNNV/.?<ANAN^ _XNNV?.?. ?<NNN^ _XNNV?.?. ?<NNN^ _XNNV/.?<NAN^ _XNNV?./. /.?<NNN^ _ NNV?.?. ?<NNN^ _XNGET_CHAR ?Hz></,HNVA"-HPN n/NL _ ><N^,_X> _XNNV?./. ?<6NAN^ _\NRE ?Hz></,HNVAZ-HPN Hn?9N><><>< .".$.//N$//N$-B><>< .N^,_X> _TN_AEEI?Hz></,HNVAN-HPN HnBgN=@><r߰Af><><t=B`><><t=B><0.N^,_X> _NA ?Hz></,HNVAf-HPN p=@><><0.r.A]AvA0x DWAv0|0FWAEBd><R@=@`p=@><r.4.Bm><><EvA0 x-Dg><v=C`><><><v=CRB=B><><><0.r.A_AvA0?Hz?<N}6CBd2><><4. Av0Cv0C=BR@=@><`><0.@d><0.D@=@><><0.=@><0.N^,_X> _XNCHAR_CON ?Hz></,HNVA"-HPN ?9?.N><N^,_X> _TNDELAY ?Hz></,HNVA.-HPN p=@` ><Rn n}o><N^,_X>NuBEEP ?Hz></,HNVAD-HPN pHyB?N0X><Nn><pHyB?N0X><N^,_X>NuSOUND_INIT?Hz></,HNVA|-HPN Bgp^@?N=@><rFAA?0<^@?N><Bg?<N32<A3A@83?9?<N3><N^,_X>NuSOUND ?Hz></,HNVA-HPN ?<NvHx?<0ANvnBgNv><?.0.P@@?N`><0.2<A?0.@@?N@><0.H?0.@R@@?N"><?<NvHx?<0ANvnBgNv><N^,_X> _\NSOUND_OFF ?Hz></,HNVA~-HPN Bg0ABgBgN><?<0ABgBgN><?<0ABgBgN><><Bgp^@?NN=@><rA?0<^@?NN><N^,_X>NuERROR_SOUN?Hz></,HNVA-HPN N><0<X3Bg2C??< N.NN><0<3?<2C??< NN><0<3?<2C??<NNtNp><p=@`(><><><?.0ABgBgN><Sn nl><Nx><N^,_X>NuFIND_RESOL?Hz>< /,HNVAR-HPN N#N#N3><rAf/9/9?<N><N^,_X>NuCHECK_MEMO?Hz></,HNVAL-HPN NЀ"<~(Ё#4<H//NT$#><><3N^,_X>NuSHOW_SETUP?Hz></,HNVAx-HPN Bg?<wNn?<BgNd?<?<`NX><?<?<Ns~pHyB?N0?<fN0p?N0HzN?<NRX><HyBHz?<NRp?N0Hz?<NRX><p3?<N?<Np3rHyB?N0Hz?<NRX>< 9"<nv>< HyBHz?<NRp?N0Hzx?<NRHz^?<NRp?N0Hzj?<NRHz4?<NRNNX><!`><!^&<_DBdv><"HyBHz?<NRp?N0Hz?<NRHz?<NRp?N0Hz?<NRHz?<NRNNX><#`r><#><$HyBHz?<NRp?N0Hzr?<NRHzH?<NRp?N0Hzd?<NRHz.?<NRNNX><%N^,_X>Nu MEG+ 1040ST 520ATARIb1Booting - Configured b2DATE_TIME ?Hz><1/,HNVA-HPN ><1><2p3r3t3><3HyHyHyNy><4HnHnHnNy><509r A]vCWĄDBd><6tA=B` ><6tP=B><7Ao @3><88.`n><9><9ApC`z><9APC`^><:><:A,C`>><:A C`"><;><;AC`><;AC`><<><<<=><=A`C`><=A@C`n><>><>AC`N><>><?AC`.SD D b$D8;@N@8Tt><A8.`$><B><Bx=D`H><B8<m=D`8><C><C8<=D`$><C8<H=D`><D><D8<=D`><D8<"=D`><E><E8<=D`><E8< =D`><F><F8< j=D`><F8< =D`><G><G8<D=D`><G8<=D`><H><H8<=D`p><H8<=D``><I><I8<=D`L><I><J8<g=D`8D Db,D8;@N@"6FZj~><L8.`><M><Mx=D`><Mx=D`><N><Nx;=D`><NxZ=D`><O><Oxx=D`><O8<=D`><P><P8<=D`><P8<=D`z><Q><Q8<=D`f><Q8<=D`V><R><R8<0=D`B><R><S8<N=D`.SD D b$D8;@N@,>L^l><U8.:<ĸEW6<ȸCWŒB4≮BWA2<иAW><V:.vC^B@FdRE=E><X0.E4.B=@|HH@=@><Z`><[><[A C p Q`><[A C p Q`><\><\A lC p Q`><\A DC p Q`><]><]A C p Q`~><]A C p Q`b><^><^A C p Q`B><^><_A C p Q`" @b@0;N:Vv><apHyB?N0Hz J?<NRX?<?<Ns~><bp3?< Ndp3><crHyB?N0Hz ?<NRX><d09rAW69AWDBd><eHyBHz ?<"NRp?N0Hz ?<NRX><fp3?< Np3><grHyB?N0Hz f?<NRX><h><h><i?<Nt ><j?<?<Ns~HyBHz ?<NRX?<Nt ><k?<?<Ns~HyBHz ?<NRp?N0Hz ?<NRHz p?<NRX><l?<?<Ns~NHy?<HyNNlXNHy?<mr9 t0B]x9D^ņECd`><n`@><nv9B]ŶD^ƊFEd`><o`><oA /N3><prAo`><q><q><r?<Nt ?< ?<Ns~><sHyBHz:?<NRp?N0Hz?<NRHz"?<NRX><t?< ?<Ns~NNHy?<HyNNlXNHy?<ur9 t0B]x9D^ņECd`><v`@><vv9B]ŶD^ƊFEd`><w`><wA /NF3><xr:Ao`><y?9?BgNy"><z?<BgNs~Nuf><{><{><|?<Nt ?<?<Ns~><}HyBHz?< NRp?N0Hz?<NRHz?<NRX><~?<?<Ns~NHy?<HyNNlXNHy?<r9 t0B]x9D^ņECd`><`>><v9B]ŶD^ƊFEd`><`><A /N=@><r Ao`><><><?<Nt ?< ?<Ns~><HyBHzb?< NRp?N0Hz?<NRHz`?<NRX><?< ?<Ns~NHy?<HyNNlXNHy?<r9 t0B]x9D^ņECd`><`>><v9B]ŶD^ƊFEd`><`><A /N=@><rAo`><><><?<Nt ?< ?<Ns~><HyBHz ?< NRp?N0Hz?<NRHz?<NRp?N0Hz`?<NRHz?<NRX><?< ?<Ns~NHy?<HyNNlXNHy?<p9 r0A]v9C^ĄDBd`><`>><t9A]ĴC^ňEDd`><`><A /N=@><0.rcAo`><`><tWBlvX=C><0.@l=@?.?.?Nx><?<BgNs~Nuf><`v><><`><><t Bm><x A`><A<Blh><HyBHn?<`d><><HyBHn?<><0.r Alh><HyBHn?<`^><><HyBHn?<><><pHyB?N0Hz?<NR?< N0X><p3?< N$p3><rHyB?N0Hz?<NRNNX><N^,_X>Nu, :0 19Enter Year Enter Day Enter Month Enter Minutes ?_ Enter Hour in 24-Hour Form Enter Digits Only ( 0 - 9 ) ----- No Clock Installed ----- b3b2 Error Tuesday Monday Sunday Saturday Friday Thursday Wednesday Dec.Nov.Oct.SeptAug.JulyJuneMay Apr.Mar.Feb.Jan.FIND_COLOR?Hz></,HNVA\-HPN p=@`6><><0.rAf><49=B`L><tBf><69=C`.><vCf><89=D`><89=D><4.`X><><3`><><t3`|><><t03`h><><t33`T><><4<3`>><><4<3`(><><4<"3`><><4< 3`><><4<D3`><><4<'3`><><tp3`><><4<3`><><4<3`><><tw3`|><><4<p3`f><><><4<w3`LB1 BbB4; N (>B BbB4; N ,BVl><??9N><Rn no><N^,_X>NuREAD_DISK_?Hz></,HNVAB-HPN ACp QA/?<PNZR"O2p"QHyNwf><HyBgNH3><NrHlpA3BgN#><`><pC3?<Nݴ#><29tBlVHy N><AC pQAChpQACpQ><p13rF3tD3vA3N,><?<Nt:?<?< Ns~pHyB?N0Hz?<NRHz?<NRp?N0Hz?<NRNNX><BgNt:NtHyBHz?<"NRNNX><NuNu><Hy NHy Hy?<Hy ?9N0NNXHy ?9N0NNX><Hy ?9N0NNXHy ?9N0NNX><Hy ?9N0NNXHy Hy?<Hy Hyh?<Hy NNuf><><`(><Hy NHy Hy?<Hy HyN,NlXHy HyN,NlX><Hy HyN,NlXHy HyN,NlX><Hy HyN,NlXHy ?<PHyNNlX><Hy ?<PHyhNNlXHy ?<PHyNNlX><Hy N><><N^,_X>Nu Rewriting "Diskname.inf" File.b2 Standy By One b1MediumWrite OnWarm Boota:diskname.infINTRO_SOUN?Hz></,HNVA-HPN NL><0<3Bg2C??< NNf><0<3?<2C??< NߪN@><0<,3?<2C??<N߄NN><p=@`(><><><?.0ABgBgNP><Sn nl><N><N^,_X>NuPRINT_SCRE?Hz></,HNVA-HPN ?<?<Ns~pHyB?N0Hz?<NRHz?<$NRNNX><HyBHz?<NRp?N0Hz?<NRHz?<NRp?N0Hzh?<NRHzV?<NRNNX><pHyB?N0Hz*?<NRHz?<%NRNNX><pHyB?N0Hz?<NRNNXHyBHz?< NRHy?<pHyB?N0Hz?<NRNNX><Hyp/Hzr/NzH4Bd><HyBHz?<NRp?N0Hz?<NRHy?<`~><><HyBHzD?<NRp?N0HzJ?<NRHy?<pHyB?N0Hz4?<NRNNXN><09`>< >< p3`>< >< p3`>< >< p3`>< >< p3`>< >< p3`|><><p3`h><><p3`T><><p3`@><><><p3`(@A @b@0;N6J^r><HyBHz?<NRX?<Nt:><pHyB?N0HzF?<NRHzT?<NRp?N0Hz?<NRXBgNt:><pHyB?N0?<AN0NNX><?9N0#2<H//NT"#><09tB^8<HIJ^ECd><HyBHz?<NRp?N0Hz"?<NR?9N0p?N0Hz?<NRHzJ?<NR><p?N0Hz$?<NRHz?<NRp?N0Hz?<NR/9NHz?<NRNNX><`><><HyBHz?<NRp?N0HzP?<NR?9N0p?N0Hz?<NRHzx?<NR><p?N0HzR?<NRHzF?<NRp?N0Hz?<NR/9NHz ?<NRNNX><pHyB?N0?<bN0?<2N0NNX><HyBHz?<NRp?N0Hz?<NR?9NX><pHyB?N0?<fN0NNXpHyB?N0Hz?<NRNNXN>< N^,_X>Nu Available Memory = Dsk/Ram Disk ((K) Space = ) Hard Drive ( Checking Your Drive Space Screen Set To Resolutionc3 Screen Set To Mediuming And Set For b3 Last Update 11/21/87 By Andrew Pintob2 c0Written In OSS Personal Pascalc3 Boot Up Master Program Version 2.05b1COPY_FILE ?Hz><)/,HNVA|-HPN ?<?<*Ns~><*HnBgNT=@><+rAn,><,HyBHz?<!NRXN><-><.`></></><0HnBgN=@><1rAn,><2HyBHz?<!NRXN׀><3><4`><5><5><6><7><7?.HxHnN-@><8rHoP><9?./.HnN><:".g.><;HyBHzr?<!NRX><<=><> .rHn|><??.NB3><@><A?.N,3><B><CN^,_X> _NError unable To write new file Error unable To create new file Error unable To open Source file CHANGE_IT ?Hz><M/,HNVA-HPN p=@29=A`,><N><N"V i0.2|Cw@p1@Rn0.no><O29RA=A`,><P><P"V i0.2|Cw@p1@Rn nxo><QN^,_X>NuCHANGE_AGA?Hz><Y/,HNVA-HPN "V i0.2|Cw@$i0.2|Cw@0*D@2|C1@><Z0.29AnP><[><\R@=@t2=B><]6.8|IwCA800vCW$i8.<|MwD8*CWFEd8><^BgNt:?<Nt ><_AC p Q><``h><`8.:|KwD:0@CW$i:.<|MwE:*|FWADd:><a?<Nt:?<Nt ><bAxC p Q><c`><c2.8|IwA80FW$i8.:|KwD8*FWEAd8><dBgNt:?<Nt ><eA C p Q><f`t><f2.8|IwA80FW$i8.:|KwD8*CWEAd2><g?<Nt:?<Nt ><hAC p Q><ip=@2.RA??.Ns~><j><j0.2|Cw2.4|E AtA0p.@VtB_DCdP><k><l6.8|Iw8|I AHyBx00?N0X0.R@=@><m`n><nACp Q><oBgNt:p2.A=@NHn?<p?<Nt HyBHn?<q><rN^,_X> _TN Active Inactive GET_ANSWER?Hz><u/,HNVA-HPN p=@><v29RA3><w NN><x><x0.@ej><y><z?<Nt Ns><{p  ?<?<3Ns~><|09r Am HyBHz6?<NRX><}`><}HyBHz ?<NRX><~?<?<3Ns~Hy?<Hy NNlX><p9 rQAWvqCWĄDx DWńEBd><t=B`><t9Df><?9>< NN`V><><><A /N3><rAg><?>< NNZ`><49RB3><><`><N^,_X> _XN_ __ NV/./. ?.?<VNAN^ _ NRENAME_IT ?Hz></,HNVA$-HPN p=@2.4|EwCAC2"""r=A><><0.2|Cw2.4|E AtA0p.@g><RA=A`0.V@=@><2.4|Ew4|E @tA0=B><29v1Cf><`f><><4.8|Iw8|I @xC `B><><4.8|Iw8|I @xX `>< BCg BXg><><`><><`f><><4.8|Iw8|I @xG `B><><4.8|Iw8|I @xX `>< BGg BXg><><4.8|IwEC E4$$$><?.HnHnN><N^,_X> _TNRENAME_ALL?Hz></,HNVAt-HPN p=@29=A`D><><><0.2|Cw@A20p@f><?. NN@><Rn0.no><N^,_X> _NFILE_TITLE?Hz></,HNVA|-HPN 09r1Af*><HyBHzv?<NRNNX><`&><><HyBHz0?<NRNNX><?<Nt ><N^,_X>Nu Listing Active Programs Listing Active AccessoriesSHOW_ALL_F?Hz></,HNVA-HPN ?<Nt:p=@?<Nt ?<?<,Ns~><p3?<N?<N><HyBHz?<NRX><?<NǶ?<NǮp3?<Nt ><?<?</Ns~NlBgNt:><><0.29A_vC_DBdZ><><t BlT@??</><Ns~`><T@??<.Ns~><pHyB?N0Hz?<NR?.Np?N0Hz?<NRHz?<NRX><0.2|Cw@A20p@f:><?<Nt:?<Nt ><AC p Q><`$><?<Nt APC p Q><p=@><><0.2|Cw2.4|E AtA0p.@VtB_DCdP><><6.8|Iw8|I AHyBx00?N0X0.R@=@><`nACp Q><BgNt:p2.A=@NHn?<?<Nt HyBHn?<`><?<?<,Ns~pHyB?N0Hz?<NR?<(N0X><Ns><pHyB?N0Hz?<NR?<QN0p?N0Hzd?<NRX><Ns><HyB?<)N0p?N0HzV?<NRHz?< NRX><?<Nt Ns><HyBHz?<NRX?<Nt ><NsHyBHz?<NRX><Ns?<?<,Ns~><pHyB?N0?<bN0?<1N0HzP?<NRX><Ns?<Nt ><HyB?<:N0X?<Nt ><N^,_X>NuChange to Undo or QuitENTER to end, b1 Inactive Active ) b3b2 SHOW_ACTIV?Hz></,HNVA-HPN p=@r=A?<Nt ?<Nt:><09r1Af><t3`><t 3><RB??<,Ns~p3?<N8?<N0><HyBHzJ?<NRX><?<N ?<Np3?<Nt ><09R@??</Ns~NBgNt:><><0.29A_vC_DBd><><4|Ew@A40p@fx><49TB8.D??<4Ns~><pHyB?N0Hzr?<NR?.Np?N0HzN?<NRHz>?<NRX><?<Nt p=@><><0.2|Cw2.4|E AtA0p.@VtB_DCdP><><6.8|Iw8|I AHyBx00?N0X0.R@=@><`n0.R@=@><29t1Bf HyBHz\?<NRX><`><HyBHz6?<NRX><><0.R@=@><`0><N^,_X>Nu.PRG.ACC) b3b2 SET_DRIVE ?Hz>< /,HNVA-HPN p3>< 29t1Bf6v3>< ACxQxCA><`6><v 3><A@C x Q><xGA><A/?<PNZR"O2x"QHyNwfHyNb><09R@??<,Ns~><HyBgNrAl*><HyBHz?<NRNNX><`b><><><><p=@29RA34|EwAEC2"""><><092|Cw2.4|E AtA0p@VtB_DCd><RA=A`><092|Cw2.SA4|E ArA0?p/Hnr/NzH4Bd(496|GwB><vC3 `&><><496|GwBC3 ><NVrA]09vC\ĄDBd><N^,_X>Nuno files match specification!\AUTO\*.PR?\*.AC?CLEAR_LEFT?Hz><%/,HNVA^-HPN p=@`:><&><&><'?.?<Ns~HyBHz,?<#NRX><(Rn no><)N^,_X>Nu CLEAR_RIGH?Hz><//,HNVAf-HPN N0><0p=@`:><1><1><2?.?<*Ns~HyBHz,?<#NRX><3Rn no><4N^,_X>Nu WRTE_CONFI?Hz><9/,HNVAj-HPN ACp QA/?<PNZR"O2p"QHyNwf><:HyBgN3><;rAlHy N><<`><<><=?<?< Ns~?<Nt:><>pHyB?N0Hz?<NRHz?<NRp?N0Hz?<NRNNXBgNt:><?NtHyBHz`?<"NRNNXN><@Hy NHy Hy?<AHy ?9N0NNXHy ?9N0NNX><BHy ?9N0NNXHy ?9N0NNX><CHy ?9N0NNXHy Hy?<DHy Hyh?<EHy N?<?<Ns~Nuf><F><GN^,_X>Nu Rewriting "Diskname.inf" File.b2 Standy By One b1a:diskname.infSCREEN_SIX?Hz><O/,HNVA-HPN N><Pp=@?<Nt ?<?<Ns~?<Nt:><QHyBHz?<NRNNXBgNt:Nt?<Nt ><RHyBHzb?<NRp?N0HzH?<NR?<)N0p?N0Hz$?<NRHz?<NRp?N0Hz?<NRNNX><SHyBHz?<NRp?N0Hz?<NR?<)N0p?N0Hz?<NRHzX?<NRp?N0Hz`?<NRNNX><THyBHz?<NRp?N0HzH?<NR?<)N0p?N0Hz$?<NRHz?<NRp?N0Hz?<NRNNX><UHyBHz|?<NRp?N0Hz?<NR?<)N0p?N0Hz?<NRHz?<NRp?N0?<BN0p?N0Hzj?<NRNNX><VHyBHz?<NRp?N0Hz?<NRHz?<NRp?N0Hzt?<NRX><W><W><X?<Nt ><Y><Y0.r0A]v4C^zQEV><ZFDBd><[?<?<#Ns~HyB?<?N0p?N0?<DN0X><\HyN 9=@><]r`Ao @=@><^t BfvQ=C><_`\><`0.rQAgJt3><a`><b><bAtChpQ`><c><cAHCh pQ`h><d><dAC pQ`F><e><e><fAC pQ` @1 @b@0;Nb><g?< ?<Ns~pHyB?N0HzR?<NRHzz?< NRHy?<hp=@><i`><j><kN><lN^,_X>Nuing And Set For Cold BootWarm BootWrite OffWrite Onc0 Type (Q) To Quit c3 To Change To Cold Boot..... 4 To Change To Warm Boot..... 3 To Change Write Verify Off. 2b2 To Change Write Verify On..b1b3 1 Boot And Write Option Menu SCREEN_FIV?Hz><v/,HNVA -HPN A CpQ><wA C  pQ><xA C0 p Q><yA C@ pQ><zA CPpQ><{A dC` p Q><|A @Cp pQ><}A CpQ><~A CpQ><A C p Q><A C p Q><A C p Q><A hC p Q><A DC p Q><A C p Q><><><p=@N?<Nt:><?<Nt ?<?<,Ns~p3><?<N?<NHyBHz?<NRX><?<N^?<NVp3?<Nt ><?<?</Ns~HyBHz$?<NRNNXBgNt:><?<?</Ns~?<Nt HyB?<1N0p?N0Hz?<NR?<)N0p?N0Hz?<NRHz?<NRNNX><?<?</Ns~?<Nt HyB?<2N0p?N0HzR?<NR?<)N0p?N0Hz.?<NRHz?<NRNNX><?<?</Ns~?<Nt HyB?<3N0p?N0Hz?<NR?<)N0p?N0Hz?<NRHzV?<NRNNX><?< ?</Ns~?<Nt HyB?<4N0p?N0HzZ?<NR?<)N0p?N0Hz6?<NRHz?<NRNNX><?< ?<2Ns~?<Nt HyBHz|?< NRX><?<Nt ?<Nt:HyBHz@?< NRNNXBgNt:><><0.r1A]v4C^zQEV><FDBd><?< ?<9Ns~HyB?<?N0p?N0?<DN0X><HyN& 9=@><r`Ao @=@><t BfvQ=C><`\0.@=@><r!Agt3><v=CN?<Nt:?<Nt ><?<?<,Ns~p3?<N?<N><HyBHz?<NRX?<Nx?<Np><p3?<Nt ?<?</Ns~><HyBHz?<NR?.NHz?<NRNNXBgNt:><?<?<3Ns~pHyB?N0Hz>?<NR?<0N0p?N0Hz?<NR?<)N0p?N0Hz?<NRHz?<NRNNX><p=@`><><><0.V@??<3Ns~?<Nt ><0.r Al><HyB?NX><`><><@7HyB?N0X><pHyB?N0Hz?<NR?<)N0p?N0Hz?<NR0.2|C@AHp?<Rn no><?<?<3Ns~?<Nt:?<Nt HyBHz?<NRNNX><BgNt:?<Nt ><><0.r0A]vAC^><DBd><?<?<<HyN 9=@><r`Ao @=@><t@B^xGD]ECd[@=@><`X><0.r;A^vBC]DBdZ@=@><=@><4.`N><><3`P><><3`>><><3`,><><><3` Bg Bg Bg`><N2><`><><Nn><N^,_X>Nu Choice b1 Whiteb2 Change Color Type (Q)uit Choice ? Character Color Three... Character Color Two..... Character Color One..... Background Color........b1b3 Change Which Color Light YellowLight CyanMedium RedMedium PurpleMedium GreenMedium BlueSilverBrownDark GrayDark PurpleDark RedDark CyanDark GreenDark BlueBlackSCREEN_FOU?Hz></,HNVAR-HPN p3ACr3 ><ACtQA/?<PNZR"O2t"QHnNwf><A"Op?"QNh3 ><ACrQA/?<PNZR"O2r"QHnNwf><09 |r|AfA"Op?"QN3 ><09 @e><N4><><`><?< ?<Ns~?<Nt AVC p Q><A/?<PNZR"O2p"QHnNwfHnN3r3><Hyt/Hzv/NzH8DdAC><HyBHz?<NRp?N0Hz?<NRHy?<A"Op?"QA"Op?"QNϞ><><`><ACxQ><HyBHz?<NRp?N0Hz?<NRHy?<A"Op?"QA"Op?"QN><><><N^,_X>Nu Resolution Screen Set To Resolution c0c3 Screen Set To LowMediumDESKTOP.INFMED.INFLOW.INFSCREEN_THR?Hz></,HNVAD-HPN NTp3><r3?<Nt ?<?< Ns~?<Nt:><HyBHz^?<NRNNXBgNt:Nt?<Nt ><HyBHz?<NRNNXNt?<Nt ><HyBHz?< NRp?N0Hz?<NRHz?<NRp?N0Hz?<NRHzn?< NRp?N0Hzf?<NRHzD?<NRp?N0Hz(?<NRNNX><?<Nt ><><09rAA]vJC^><DBdz><?<?<Ns~HyB?<?N0p?N0?<DN0X><HyNL 93><r`Ao @3><N><`h><09`><><pB3`><><pC3`><><pD3`><><pE3`z><><pF3`f><><pG3`R><><pH3`>><><><pA3`&@B @b@0;NJ^r><?< ?<Ns~pHyB?N0Hzl?<NRHzN?<NR?9N0Hz$?<NRX><N(><N^,_X>Nu) For Next BootSelected Drive (b3c0. (H) Through c0(A)c1 From Select A Drive Letter Drive Menu SCREEN_TWO?Hz></,HNVA^-HPN N><09r1Af><3NrN><`><><t23NRN־><><HyN><09r1Ag^><ACtQA/?<PNZR"O2t"QHyNwfHyN3><><A"Op;"QNԨ><09r1AgV><t\AA/?<PNZR"O2v"QHyNwfHyN63><><N^,_X>Nu\AUTO\MAIN_OPTIO?Hz>< /,HNVA-HPN ?<Nt ?<?< Ns~?<Nt:><HyBHz?<NRNNXBgNt:Nt?<Nt ><HyBHzl?<NRp?N0HzR?<NR?<)N0p?N0Hz.?<NRHz?<NRp?N0Hz?<NRNNX><HyBHz?<NRp?N0Hz?<NR?<)N0p?N0Hz?<NRHz^?<NRp?N0Hzh?<NRNNX><HyBHz"?<NRp?N0HzR?<NR?<)N0p?N0Hz.?<NRHz?<NRp?N0Hz?<NRNNX><HyBHz?<NRp?N0Hz?<NR?<)N0p?N0Hz?<NRHz?<NRp?N0Hzh?<NRNNX><HyBHz?<NRp?N0HzR?<NR?<)N0p?N0Hz.?<NRHzx?<NRp?N0Hz?<NRNNX><HyBHz<HyBHz?<NRp?N0HzR?<NR?<)N0p?N0Hz.?<NRHz4?<NRp?N0Hz?<NRX><N^,_X>Nu To Quit To Gem............... 7 To Change Write Ver. & Boot.. 6 To Change Screen Colors...... 5 To Change Screen Resolution.. 4 To Change Read Drive......... 3 To Change Active Programs.... 2b2 To Change Active Accessories.b1b3 1 Option Menu ANSWER ?Hz></,HNVA -HPN Np3HyHyHyNy?9?9?<Ny"><p3P@=@?<?<Ns~HyB?<?N0X?< NAT2=A><>< >< ?< NAT2=A><!HyHyHyNy><"?<?</Ns~?<Nt:?<Nt ><#p3?< Np3?<Nt ><$HyBHz?<NR0.29A?NHz?<NRX?<Nt ><%p3?< NPp3?<Nt BgNt:><&092.Amt=Bv73N><'0.@d><(><(09r1A]v7C^zQEV><)FDBd><*?<?<Ns~HyB?<?N0p?N0?<DN0XHyNz><+ 93><,r`Ao @3><-t BWx DWņEzEWƆFCd v73><.N></`8><009`V><1><1N`h><2><2N`X><3><3N`H><4><4Nn`8><5><5><6N6`$@1 @b@0;N><7N^,_X>Nu Seconds Till Gem A"#AC!It0B BABBt0B  A 0B B><:p3><;N\><<=N:><>N><?N><@N><A09rAmN6><BNp><Cp3><D><D><ENؖ><Fp13NN><Gp23NN><H><H><IN><J09r1AWv2CWĄDx5DWńEBd`><Kt3BW|4FWAr6AWÊCEd`><LN BgNx#><M29tBgN؜><NHyp/Hzr /NzH4Bd(><O?<NvHxDBgNvBgNv><P><QHyhp/Hzpr /NzH4Bd(><R?<NvHx BNvBgNv><S><TNr?<Nt ><UHy NHyBNNWrite OffCold BootNV?.?. ?<NMN^ _XN/,HNVA-HNp?<?. NN^,_ _TN/,HNVA-HNp?<N0. ?NN^,_ _TN/,HNVA-HNp?<KNN^,_Nu/,HNVA-HNp?<ENN^,_Nu/,HNVA-HNpNN^,_Nu/,HNVA-HNp?<vNJN^,_Nu/,HNVA-HNp?<wN&N^,_Nu/,HNVA-HNp?<MNN^,_Nu/,HNVA-HNp?<LNN^,_Nu/,HNVA0-HNp?<YN0.@?N0. @?NrN^,_ _XN/,HNVA-HNp?<pNvN^,_Nu/,HNVA-HNp?<qNRN^,_Nu/,HNVA-HNp?<bN.?. NN^,_ _TN/,HNVA-HNp?<cN?. NN^,_ _TN/,HNVA-HNp?<ANN^,_Nu/,HNVA-HNp?<BNN^,_Nu/,HNVA-HNp?<CNN^,_Nu/,HNVA-HNp?<DNbN^,_Nu/,HNVA-HNp?<HN>N^,_Nu/,HNVA-HNp?<INN^,_Nu/,HNVA-HNp?<JNN^,_Nu/,HNVA-HNpNN^,_Nu/,HNVA-HNp?<eNN^,_Nu/,HNVA-HNp?<fNN^,_Nu/,HNVA-HNp . -@ @r-A .N^,_ _XN/,HNVA-HNp . -@ @2H-A .N^,_ _XN/,HNVA-HNp . -@ @"-A .N^,_ _XN/,HNVA-HNp .-@ @2. N^,_ _\N/,HNVA-HNp .-@ @2. 0N^,_ _\N/,HNVA-HNp .-@ @". N^,_ _PN(_0J@f(Jyvkf/<p?< NA\3vNa&J@f/<?< NA\#p3vN/<?< NA\Nu/,HNVAZ-HNpp=@r.=A`" n 0.S@0.rC1Rn0.no n r.tN^,_ _VN/,HNVAN-HNpp=@0.rA0tBg"n R@0.r0R@=@` n 0.N^,_ _NNV?.?<+NAN^ _TNNV?<*NAN^NuNV?.?<-NAN^ _TNNV?<,NAN^NuNV/.?<NNN^ _XNNV?<NNN^Nu/,HNVAh-HNp0. @Dr h4.JB4.B=@?N\0.H-@r-@$<-B/N& ".Ɓ-@/NlN^,_ _\N/,HNVAb-HNp0.r h4.JB4. vH…ÀB=@?N0.H-@"<-A/N"$ ".ā-@/NN^,_ _\N/,HNVAD-HNpN=@ n r htB@0"n0.HvC2$n0.xD4N^,_ _ N/,HNVA@-HNpNj=@ nr htB0"n0.Hv?C2$n 0.B@4N^,_ _ NHtar fSfr?/LtNuHtar fSfr?/LtNuHtar fSf`U?/LtNuHtahr fSf`S?/LtNuHtaBr fSf`R?/LtNuHtar fSf`T?/LtNu# _  g "_Jjp` 0Csp" g $_Jjr` 2Esrg\HGte$4SBkQ$SpQ Ct` $SkQ$SrQEtLJfpC$I/9NuH _024SBgQ@4BAAc/LNuHy|0NRange error during set-operationH _0246@SCBgQAn68DCCc 0AgRB`/LNuH _0@CEHS@rIVW.J?/LNuH _0@CEHS@rIVV.J?/LNuH _0@CEHS@2FA_VW.J?/LNuH _0@CEHS@2FAYVW.J?/LNuH _0@274BAAc7V`tO>/LNuH _0@"_24BAAc1V`t>/LNuH _02S@AC2YQ/LNuH _02S@AC2YQ/LNuH _02S@AC2FAYQ/LNuB9`PBy _0g$_jp"_// HNLBtJ@fL)J9f f8| i f(Bi ` f|Ji f 3| `4<gG BQB) @e *:f&Jrt `e QG3| NAXNu/")x itg$H@//?) ?<@NA LJof _Nu _4` _t6 Bo r aSB`2aNH? _r ar a/L?Nu _r aN _4` _t"x0HgJJjDxvC zp cRЀ`|e W0R"f`6 _4` _t2xJAjDAxvC 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 "oA/ NL Nu(_"_/ A) g  f$)Jtf&H //?) ?<@NA LJovfNu$ix&i|fa`pRgf#Jx`H")x it#Hxg$H`//?) ?<@NA LJofLNu )f NuHy` Hy0< LNREWRITE required prior to WRITE or PUTDisk or directory full _$_"Wp i e)H/ N4L4NH/ N4Lp)` _"WJ9 f*J)f i e)H/ N4L i d)J)fJg i dB9 J)fBiNz`z _$_"WptvH/ Hy aB29 XL- -fJf^p`4  fJg*`N0eH  bBԂi\(؄iV؄iRԄiNԁRCJ)f  g i e) 0e 9c~Jg&JgDJf 6Höf4N$NHy0<`Hzh0<N _$_0"Wt&JRJ)f:H/ Hy ar29 XL i d J)P f RBBe`Be`N Bad digit in number encounteredOverflow during READ of number(_ _/ C (g ( fXJ(fF$($IJtflH / /?( ?<?NA LJo*fJg  f"J` g  Wf NuJg Jh g J(fPNu!|NuH$hx&h|gpR@@gf!JxL`H &ht!KxJh f(aZLEJ@g *f` R@Bh` / /<?( ?<?NA LJlp!K|JfvL`rH@Hsp/Bg?<?NA LRA3 f@ AgUH@Hzp 3 dp` SAH@Hzp/?<?<@NA L` fSA` fSAH@Hzp` f H@Hzp `~ f4SA`(H@Hzp 3 dp/?<?<@NA LQ`* d,9@HHzpp/?<?<@NA L AfH@HzFp/?<?<@NA L NuHzR0<`Hz$0< LN  p Exit q C^AReset required prior to Read or GetAttempt to read past end-of-file NuH" _ ged/L"NuHy:`HyFNt`t _"_ gR e6G$S" geb"*f&"`&A%S"`&J`а|gb<|fP"9gH$A#`:"9g6$A#`("9g$$A#` @ g"9g $A#"`"E&R"$b Hy&NJgr"Qd2`"SjN _"_ " gedgR m @ e@E"fB#@B$`p&A"+ef "'I`Z"#@B$`L$K`ư| f"#`4|f"#` |f"#` "#NHeap overruns stackPointer NILPointer not in heapH _0"_e /LNuHyN/B98/|8NuH _0 @f0"|p` "_J@jpE8r4@ BbBS@kQ/LNuH _4SBkt82$_rAbd0 @f0"|p` "_J@jp6ADb6CG0IS@k$eQ/LNuH _4k2SAk0"_p6B@bE0)CS@kQ/LNuH _2$_r0 @f0"|p` "_J@jp@kS@kv&J$IRC4(K Vg RQBg`?/LNuH _4kF2SAk>0 @f0"|p` "_J@jpJBg@b6B@oCE8SBkQ/LNuString overflow~,GxvGI8/??<NM(PRDQNuHy~?< NA\xvI8/??<NMPRDQBgNAHy'`HyH`Hyb?< NA\Hyz?< NA\ o`>Hy`Hy?< NA\Hy?< NA\ oa.Hyz?< NA\ o /Hy?< NA\ _p "f/Hy?NA\ _`^"nH .gHy`JkHy`Hy?NA\L/ .fjXt AH ??<NAXLQ/Hy?< NA\t&<'HǏf CgJfr `t20/??<NAX$HG fHy?< NA\ _a6 gz .f >. n` n,n/Hy?< NA\ _`/?<$?<NAX _tv"0 :e^H ??<NAXLYCQNu.6l *** Bus error *** Address error - attempt to reference address *** Attempt to divide by zero *** Value out of range *** Integer overflow *** Error in Called by PROCEDURE FUNCTION MAIN PROGRAM at source line at PC function or procedure compiled w/o DEBUG _pJ.g 0( hNVg4 ( hg( hH`0( hNVg ( hg hHfXgr"ODd2Sk "Sj` _"ye HyNN#X#T .f -|`-| nNнTf yXNStack overruns heapH?\ _z gBjDRE"g8jDRE$6HBJBg8HAJAf,HBJBf$ւi EdD.` $HB8`B/L?\Nu0NvDNH\|` H\| _z f0NjDRE"g`jDREdJgR(`DfxJg<`DxSDbb JgHA8`"tcRЀ`xeWJg(MdD.`B/L\Nu _(N _0/Ho |3JyfXNX/#|"|xa "_a"|aJyg y|9BgNA/ ?< NA\Nu09Nu09ByNu _3NByNu *** *** Copyright 1986, CCD and OSS, Inc.h & NHV>< < d@(& D82      .    t  @         ,& &    ,&      ,&0    ,&0     ,&X`          l(ZR                       $&          4      "           x(Bt8 FxP4< r n p 42D8l.   6 *|HL*d p    4   .PD4&            ,  8D( 8< &&.(z$r,r                                   > J""&@  R ,                 > R       .  &  6      , ,     H           * :     F                               F   4       2 (: "T    D,2$$ $$$$D$$00$$$$$$$ $$66400* (p|vZH      "$" ,*< * * , , 0 , " BBb42J ^ (*  vbj  "D    * "FV ( *@ B @ (  ` 9` 9>g~`f>`f 9>gZ`<>`Ng>` 9`> 9 9`n08&y|F@@<=>`Fg"> 9 9menuFrom: franco@iuvax.cs.indiana.edu Newsgroups: comp.sys.atari.st Subject: Menu control for the ST Message-ID: <36500025@iuvax> Date: 3 Jan 88 22:25:00 GMT Date-Received: 4 Jan 88 02:23:51 GMT Organization: Indiana University CSCI, Bloomington Lines: 90 Nf-ID: #N:iuvax:36500025:000:4846 Nf-From: iuvax.cs.indiana.edu!franco Jan 3 17:25:00 1988 Here is a program that solves the problem of unwanted menu dropping when the mouse is accidentally moved to the menu bar. Put the program in the AUTO folder. After booting you should notice that you cannot move the mouse above the menu bar with any button released or with any button pressed starting from any point below the menu bar. However, if you move the mouse to the bottom of the menu bar with the left button released and then apply upward movement to the mouse while pressing the left button you will move the mouse into the menu bar (and drop a menu if one is right under the mouse position). From there two modes of operation are possible: for Atari mode release the left button - this gives menu control exactly as packaged by Atari. In Atari mode you can move the mouse all over the screen dropping menus all over the place until you click on a menu item (in which case the item is selected) or click off the menu (in which case the menu pops up with no action taken). For Mac mode keep the left button pressed then move the mouse down the menu of your choice until you find the desired item to selected - then release the button to select that item. If you release the button while the mouse is off the dropped menu then no action will be taken and the dropped menu will pop back up. The problems: Atari mode: I do not know of any Mac mode: Can be fooled in the following two ways: 1. Bring the mouse right up to the bottom of the menu bar. With the slightest upward movement possible, press the left button - when you see the menu bar drop, stop all mouse movement. Then, while continuing to hold down the left button, move the mouse sharply down. The result: the menu will pop back up and the first item will be selected. 2. Move the mouse to the menu bar with upward-movement-while-pressing but not over a menu position. When the mouse is moved over a menu the menu will not drop. To work in Mac mode (as I always do) and not let the problems above affect you, a) give a little extra upward movement while pressing the left button (actually it is hard to avoid doing this), and b) if a menu fails to drop, either use Atari mode or release then press the button for Mac mode. I will be grateful to the person that posts a program which solves these problems. Acknowledgement: This program is based on previous work by David Small and Brent McKim. John Franco Bloomington, IN franco@iuvax.cs.indiana.edu The code below was tested only using a monochrome monitor. However, I see no reason why it should not work using a color monitor. The code below was UUENCODED using the encoder that currently resides on our VAX. . 6 t.. 6 tCAT ACC 7t < CAT PRG ;t  CAT DOCAt  ` (.|N.NA"/0<NBNu`ALAH1|"< R <NBNu"< jpsNBNu####Nud mz{    !#*+,.23 456ILMNZdefghiknpry}3# 3Nl0<N(33M3333N33#0<XN3##0<8N09f f0` y(fa ` y)fa`3` yg83 # 0<N: yg ygD`J g.33# 0<N# `3 `3 3 333# 0<N`3/<?<&NN\Nu y0g M P?<NAT@A:?</?<GNAO fS\*.CAT f# P# 0<N yg.M &\g .:fRK f# #  M K  .g f | Ja30<Nt?</< P?<=NAO3 o/< /<?9 ?<?NAO o #?9 ?<>NAXob30<N0<a8# 0<N3 yg@ 30/<?<&NN\NuD@@30<N0<aNu0<K M Q3# 0<NjNu#!Nu f!NuC0/ fNi g yN#/| yNH`A g.g4$gfL yN# B`3`3`# M K -|+|=|0<R@ f;@;|@=@3#0<N\30<NL0<ND 9 # 9 #30<N0<a@33 ##0<`N30<NNu# 3 9"9####0<NNu  Catfr 01234567[3][The Application ________|isnt installed!... ][Abort ] Read A:\*.* `Copyright (c) 8/1987 Julian F. Reschke Z        L      $   <  ` `ALA NAXoh0<al3 p0<N#F0<@NNu*N g -\f`0<a*3 p# 0<N`D@@3 p0<N0<aNu# ^M :K R-|+|=|0<R@ f;@;|@=@3 p#0<N83 p0<N(0<N 9 J# 9 N#3 p0<N0<a@3 p3 r# t# x0<`N3 p0<NNu# :3 p 9"9# r# v# z# ~0<NjNu[1][Shortcut-Editor V1.1|(c) Julian F. Reschke 8/1987| |Makes *.CAT files for CAT.ACC ][Go on!|Quit ][3][I cant load the RSC Data!| Sorry, Sam! ][ Bye! ][2][Save CAT data? ][Yo|No! ]Read A:\*.* Schreibe `Please select a menu option... Press the command key or Shift + A to quit...Press the cursor-up key, please... Press the cursor-down key, please... < R p p < p p pp R<L        "*   0<  Documentation to the CAT.ACC and CAT.PRG. The CAT lets you get rid of the mouse. By using CAT.ACC and CAT.PRG, you can set up any GEM program (those which have menu options) to allow keyboard commands. You can then press a keyboard combination to carry out a menu option, instead of using the mouse to pull down a menu and select an option. This is faster for experienced ST users. To use the CAT: Place CAT.ACC and CAT.PRG on a disk, but not in a folder. Place on the disk your GEM program, but not in a folder! Press RESET. In this documentation, we will use PUBLIC_PAINTER.PRG (PUB_PAINT.PRG) as an example. The following applies to any GEM program. If you are in doubt, try anyway: it won't hurt anything. Start CAT.PRG by double clicking on it. It asks you to select the .RSC file for the program; in this case, it is PUB_PAINT.RSC. You are then asked to press the up and down arrows. Your program's menus then appears on screen. Select an option, for example, SAVE FILE. Click on it. Now, make your keyboard combination commands. Press the CONTROL key once and then press the "S" key once. This "Control + S" will then be your command to save a file: just pressing the control + S keys will save a file. You can then select a second option and create a second command. Continue doing this for all the options which you want to have on the keyboard. When you are finished, press SHIFT + S; this lets you exit. You are then asked whether you want to save the commands. Click "YO!"; the CAT will then create a CAT file for it (PUBPAINT.CAT). You can then continue to load a second program and make a CAT command file for it, or you can quit. Now, start up the Public Painter program. In the upper left corner, under the ATARI symbol, select the CAT option. A selector window lets you pick out PUB_PAINT.CAT. Click OKAY. You can now use the keyboard commands instead of the menus. ------------------------------------------------------------------ Further notes to the CAT. You can certainly use both the keyboard and the mouse. CAT lets you use both. When creating a CAT file, first look at all of the options. On a piece of paper, write down the options which you may want. This avoids possible conflict. The CAT doesn't allow you to change your choices. If you make a wrong or poor choice, you must quit, delete the CAT file, and start all over again. You can use any combination of keys for a command. SAVE FILE can be just plain "S" or "Control + S" or Alternate + S or CONTROL + Alternate + S or "G" or whatever. Keep it simple! Use a key which reminds you of the command: S for SAVE, O for OPEN, etc. Neither the CAT.PRG nor the program may be in a folder when you make a CAT file. Afterwards, however, you can place these into folders. ------------------------------------------------------------------- CAT.ACC is by Julian Reschke. Copyright 1987. It is not clear from this whether this is a freeware, shareware, or a public domain program. Since it is not clear, let us treat the program as FREEWARE: anyone may copy it but no commercial distribution is permitted. The author holds all rights to the program. This documentation is Copyright Andreas Ramos 1989. It may only be distributed along with the CAT.ACC and CAT.PRG. All rights reserved. -------------------------------------------------------------------- Documentation by Andreas Ramos January 25th, 1989. Andreas Ramos Denmarks ST Disk Library 68000 UG + STOP UG Jaegergaards Gade 142 8000 Aarhus C / Denmark, Scandinavia Tlf: (0)620-1117 BBS: (0)620-2016 ------------------------------------------------------------------ "YOUR SECOND MANUAL TO THE ATARI ST" by Andreas Ramos, the popular shareware text, is now available as a published text. If you enjoyed "Your Second Manual, V.4.0," then you'll love version 5.0! Twice as much text, five more chapters, three times as much information, twice as many jokes, and illustrations! Y2M contents: Keyboard: tips & tricks. Changing the layout. F-Key guide. The Mouse. Disks. Drives. TOS. Formatting. Deleting. Copying. Fixing the ST. Harddisks. RAM disks. Monitors. AUTO folders. DESKTOP.INF. ACC'essories. Word Processing: tips & tricks. Printing. Paper. Magazines. Public Domain Programs (PD's). Communications. BBS's. Databases. Games, Midi, Graphics, and Chess. User Groups. And a glossary of ST words and concepts. Plus a chapter for absolute beginners. Hundreds of sources, producers, distributors, addresses, telephone numbers. Free offers, free PD catalog, and 2 free disk bonus. Laser print, professional layout and printing, and quality bound. All this for only 3.95 (plus 50 pence for postage outside of England). Send a certified bank cheque or postal giro transfer to: Glover Publishing, 49 Stoney Street, Nottingham, NG1 1LX, U.K. or contact: Andreas Ramos / Jaegergaardsgade 142.2TH / DK-8000 Aarhus C / Denmark. The Y2M : The Ultimate ST Handbook ------------------------------------------------------------------ . T t .. T tSLOWDOWNTOS Ut `YHz?< NA\Hz?< NAHz?< NA\AB@(g nS@B6<0 0m 9nAԁ Q lJBgASBg0Hz?<&NN\XBg/<?<1NAAx A!NuHz!F%`!Jx>f?:HJ_f/A<0 _\/:,Nuj/A$0" _]\F%/ASP _`cbE Slowdown by Power Supply cbJ w<<<<<<<<<<<<<<<<<<<<<<<<<<<< Safe at /any/ speed... >>>>>>>>>>>>>>>>>>>>>>>>>>>> Enter n, where the system will run at 1/n speed: >Kl. 1 t.. 1 tMOUSDOUBDOC3t  MOUSDOUBPRG7t *MOUSQUADPRG:t NMOUSTRIPPRG=t FMOUSPEEDNETBt  ***** ***** ***** Mouse Doubler ***** ***** ***** version 2.0 September 30, 1988 Copyright 1988 Kyle Cordes SHAREWARE! Mouse Doubler makes all mouse movements go twice as far (or 3 or 4 times), so your mouse only needs half of the space and your hand 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 can be moved easily around the screen in all resolutions, as opposed to the normal state of requiring more movement in higher resolutions. MD now has an added control - If you hold down the left Shift key, the doubling effect is turned off, so you can make precise adjustments of the pointer's position. If MD starts to get in the way (i.e. in drawing programs, where it makes blocky lines), it can be turned on and off. To turn MD off, hold Control and Alternate and press the left mouse button. To turn it on, hold Control and Alternate and press the right mouse button. Note that Control-Alt-Right button also centers the pointer as will be explained in a moment. The on/off feature allows MD to be used when the application you are running requires that you press the Control, Alternate, and Shift keys for its own purposes while using the mouse. After a while of using the shift-key feature, the positions of the mouse on the table and the pointer on the screen can become out of sync. The result of this is that the mouse will be near one edge of its area while the pointer is near the opposite edge of the screen. When this happens, just move the mouse to the center of its desk area then press Control-Alt-Right mouse button. This will center the pointer. Voila! MD 2.0 can be used at several different scaling factors - 2x, 3x, and 4x. for 2x scaling, use MOUSDOUB.PRG. For 3x use MOUSTRIP.PRG and for 4x use MOUSQUAD.PRG. As of version 2.0, Mouse Doubler is Shareware. If you use Mouse Doubler often, please send me a few dollars ($5 suggested) to help pay for my efforts (and all this computer equipment!). If you think $5 is too much, just send whatever you deem appropriate. Thanks! Kyle Cordes 3815 Greengrass Dr. Florissant, MO 63033 GEnie: K.CORDES You may upload (in fact, _please_ upload) Mouse Doubler to any service or put in any club libraries as long as this document file is included unchanged. `/<\?< 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 `/<h?< NA\NV/<?<.?<NMP#Bg/<?<1NA/ y#!| _Nu?<"NN#T/<:?<&NN\?<NMT (,#Nu/ g of0#/|`Nh Pf#!| yNHD"y?<*|NTg:g2ga3`lg3JygNfF((((9` g$((9` g ((L"/9NuC_N:C_N:C_N:C_N:C_N:C_N:CbN:9`gCbN:CeN:CeN:9`JgCeN:CeN:Nu/A\ii*yN _Nu ** Mouse Doubler 2.0 ** Movement Quadrupler! By Kyle Cordes $$ Shareware 093088 $$ Read MOUSDOUB.DOC.  6Z `/<`?< NA\NV/<?<.?<NMP#Bg/<?<1NA/ y#!| _Nu?<"NN#T/<:?<&NN\?<NMT (,#Nu/ g of0#/|`Nh Pf#!| yNHD"y?<*|NTg:g2ga|3`dg3JygFf>9` g,((((9` g(L"/9NuCWN2CWN2CWN2CWN2CWN2CWN2CZN29`gCZN2C]N2C]N29`JgC]N2C]N2Nu/ATii*yN _Nu ** Mouse Doubler 2.0 ** Movement Tripler! By Kyle Cordes $$ Shareware 093088 $$ Read MOUSDOUB.DOC.  6R From idec!stc!ukc!mcvax!uunet!ncrlnk!ncrcae!hubcap!gatech!ukma!tut.cis.ohio-state.edu!ucbvax!decwrl!labrea!agate!saturn!ssyx.ucsc.edu!koreth Sat Mar 18 15:19:03 GMT 1989 Article 307 of comp.binaries.atari.st: Path: prlhp1!idec!stc!ukc!mcvax!uunet!ncrlnk!ncrcae!hubcap!gatech!ukma!tut.cis.ohio-state.edu!ucbvax!decwrl!labrea!agate!saturn!ssyx.ucsc.edu!koreth >From: koreth@ssyx.ucsc.edu (Steven Grimm) Newsgroups: comp.binaries.atari.st Subject: v04i026: mouspeed -- Mouse accelerator Keywords: arc, uuencode, medium, high Message-ID: <6559@saturn.ucsc.edu> Date: 2 Mar 89 22:18:56 GMT Sender: usenet@saturn.ucsc.edu Lines: 101 Approved: koreth@ssyx.ucsc.edu Submitted-by: lean@sbcs.sunysb.edu (Lean L. Loh) Posting-number: Volume 4, Issue 26 Archive-name: mouspeed This is a collection of 3 very small programs, each of which speeds up the movement of the mouse. Hence, the net effect is that your mousie-hand needs to move less. The author claims that it works on both high and medium res (runs in low res, but has no effect), though i've only used it on a monochrome. The only program that i know which conflicts with it is the clipboard.prg program (don't know whose fault). Anyway, i find the program indispensible. And the nice thing about it is that you can disable/enable it anytime once it has been run. Docs are included. By the way, the programs are shareware. Support the author (not me). Enjoy. There are 3 programs 'cos one is a doubler (speed), one's a tripler, and one is a quadrupler !! . Q t.. Q tBREAK PRGSt BREAK MANVt F BREAK TXTYt ` opB0g Am Zn efPf` dfQf` if,/Hz)?< NA\?<NAT#ZHzl?< NA\ _` cfTrf #Z` g4 g. 0mZ am@ FnJ 9o Am>_0遂`#Z`D zf Pg`4 g, g$ -gHz?< NA\?<?<LNA?<?<NNX#V/?< NA\B^HzX?<F?<NMP o <Ш ШШBg/?<1NA?< NA\ :AAA!?<NAHz @/:NuHJ9fg^ zl0(hgPp"x`,JgF"i$Qp0(":J"Phg,XhfpfJ9ggB`1h/|LLNs?] .$"DD 4pJ NAME break - stop current program on receipt of interrupt character SYNTAX break [-e|-d|-z] [-i|-c] DESCRIPTION After installing break, any program can be interrupted. This is achieved by 'extending' the existing keyboard interrupt routine: after executing the old code the break character check is done. The various flags have the following meaning: e(nable) : the current break character will end the program. the code returned is -32, what seems to be the standard value for programs interrupted by ^C in GEMDOS. d(isable): no actions are done; this restores the old behaviour z(ero) : the current break character will be discarded (made 0) in the input buffer; this can be used to disable ^C. i(nput) : the break character is prompted for. Combinations with shift, control and alternate keys are also allowed. Useful for specifying the break character interactively. c(ode) : specifies the break character as a hexadecimal code. The hex code must follow the 'c' flag immediately. Useful for specifying the break character from a script. Of the flags e,d and z only one should be used; e is the default. Also, of the flags i and c only one should be used; control-delete is the default. This is done on purpose; you can always change it to ^C if you want to (or whatever key you like). The break program can be reused indefinitely, because a next invocation is not made memory resident; it only modifies parameters in the first invocation (the resident one). The program can be placed into the \AUTO folder to be installed automatically, or activated 'by hand'. If placed in the \AUTO folder, it should of course have a .PRG extension (break.prg); as \AUTO folder programs don't get arguments, the break will be enabled and the break character is control-delete in this case. BUGS/SHORTCOMINGS A nice extension would be the possibility to catch the interrupt from a user program; this could be achieved by using a new trap. As this implies restoring the old interrupt catch routine when the program exits, and maybe also core dumps could be added to the action of an (other) interrupt character, such a more general signal mechanism is not added (yet). Gives me time to think of a nice implementation 8-). JOKE Gimme a break, huh?! From idec!stc!ukc!mcvax!uunet!lll-winken!lll-tis!helios.ee.lbl.gov!pasteur!agate!saturn!ssyx!koreth Tue Aug 30 09:49:40 BST 1988 Article 134 of comp.binaries.atari.st: Path: prlhp1!idec!stc!ukc!mcvax!uunet!lll-winken!lll-tis!helios.ee.lbl.gov!pasteur!agate!saturn!ssyx!koreth >From: koreth@ssyx.ucsc.edu (Steven Grimm) Newsgroups: comp.binaries.atari.st Subject: v02i047: break -- Exit programs with a keypress Keywords: uuencode Message-ID: <4607@saturn.ucsc.edu> Date: 24 Aug 88 22:39:35 GMT Sender: usenet@saturn.ucsc.edu Lines: 91 Approved: koreth@ssyx.ucsc.edu Submitted-by: uunet!mcvax!philmds!leo (Leo de Wit) Posting-number: Volume 2, Issue 47 Archive-name: break The following program, when placed in the AUTO folder or started by hand, lets you interrupt any program (except the desktop). This posting consists of a manual page and a uuencoded program. The corresponding source is sent to the moderator of comp.sources.atari.st. For correspondence conceirning this program (bugs, questions etc.) try L. J. M. de Wit Nachtegaallaan 7 5731XP Mierlo Holland e-mail: ..!mcvax!philmds!leo (or perhaps ..!hp4nl!philmds!leo) . e t.. e tDCACHE DOCgt Q/DCACHA ACClt ,"DCACHE TXTqt 5DCACHE TTPtt 8+ Documentation DCACHE by Atze Dijkstra DCACHE Notice: This software is shareware and may only be copied with all the files mentioned below together. Files may not be changed. Users of this package who like it and judge it to be worth the value of fl. 25.-- (or equivalent, or more) and also like to see updates of the package, are kindly requested to send this amount of money to the author. Comments with respect to failures and possible enhancements can also be sent to the author and are most welcome. Disclaimer: "I make no warranty with respect to this manual, or the program it describes, and disclaim any implied/explicit suggestions of usefulness for any particular purpose. Use this program only if you are willing to assume all risks, and damages, if any, arising as a result, even if it is caused by negligence or other fault." DCACHE is a disk cache and as such keeps copies of transferred disk blocks in memory. Generally speaking, a cache can be a good and more flexible alternative for ramdisks. DCACHE is probably one of many disk caches available but can be configured in several ways. It's behaviour can also be influenced after the cache has been installed. In these respects it differs from other caches. When you are reading this, you should have the following files: DCACHE.TTP : disk cache DCACHA.ACC : disk cache manipulation accesory DCACHE.DOC : this file DCACHE executes commands when it is invoked. These commands may either be specified as arguments on a command line from a shell, or, if not specified in this way, they will be read DCACHE V1.0f - 1 - 19 June 1988 from the file DCACHE.INF or \AUTO\DCACHE.INF. If DCACHE.TTP is renamed to DCACHE.PRG and put in the \AUTO folder the cache it will automatically be started and configured using the DCACHE.INF file. If DCACHE does not make a cache it will exit like a normal program, otherwise it will stay resident and consume some memory for the cache. After the caches have been created several commands may be applied to them. Commands which influence options do not have effect on the existence of the cache, but commands like 'remove' and 'quit' are irreversible. DCACHE.TTP accepts commands which follow the following syntax: /* SEQ: sequence, repetition. OPT: optional */ :: LIST :: SEQ :: space, tab, newline :: '=' :: SEQ OPT :: letter in the range 'a'..'p' :: SEQ OPT :: OPT :: integer Commands have two parts: a sequence of single letter commands and a set of drives to which these commands apply. However, if the is empty the commands will apply to all drives. The following commands are implemented: c: Create cache of Kb. Only allowed during initialization. m: Only requests for contiguous blocks smaller than are cached. Default is half the size of the cache. Smaller values prohibit the removal of small, more often used, pieces of cached disk (by large, contiguous blocks). w, W: Disable resp. enable writethrough of write requests to disk. Default is W. If W is invoked all entries are flushed. b: Kb. are reserved to optimize flushes to disk. This buffer is used for all caches and is not used for the specified driveset only. See also remarks on writethrough. Only allowed during initialization. f: Flush contents of unwritten cache entries. DCACHE V1.0f - 2 - 19 June 1988 i: Invalidate, i.e. first flush, then remove all entries from the administration. r: Remove cache, i.e. first invalidate and then remove caching. If no cache is left, the caching routine will be removed from the system. All these actions are irreversible. q: Quit cache, i.e. remove all caches, regardless of which driveset is specified. Memory used for the cache is not returned to the system (due to the (non)structure of Atari ST's memory management). s, S: Stop resp. continue cache usage, first invalidate, then mark as out of use until continuation. Default is S. Some examples: a=c100: Create cache of 100Kb on drive a. ac=c100w: Create a cache of 100Kb for both a and c. Written entries are not immediately written through. a=c20 c=c200: Create seperate caches for a and c. =i: Invalidate caches for all drives. All the abovementioned commands, except 'c' and 'b' can also be executed from the desktop if the deskaccessory DCACHA.ACC is installed. Though the accessory provides the same set of commands, it is more convenient to use if one is using the desktop only. It also offers the possibility to get some information about the cache: is the drive mounted, cached and if so, what are the sizes (in Kb) and what are the number of cached and unflushed entries (in sectors). If it fails to access the installed cache handler for information the accessory will come with a message concerning the fact that the cache is not installed. Commands will be executed if selected and a set of drives has been specified and the OK button is selected. One is advised to invalidate a drive before putting another disk in it. See also the remarks on writethrough for the risks involved in using non-writethroug mode. IMPLEMENTATION DCACHE V1.0f - 3 - 19 June 1988 In order to be able to cache, the vector which is used by the BIOS routine Rwabs (read/write sector from/to a disk) is replaced by DCACHE with a caching read/write routine, the old routine is used for requests which cannot be satisfied by the cache itself. Other packages might also do this (e.g. the shell I normally work with), so be aware of the possible interactions with other stuff running on your machine. Drives 'a' and 'b' can also be accessed via some other 'Extended BIOS' routines and circumvent the cache in this way. GEMDOS doesn't seem to use these routines, other packages (Disk copiers ?) may. Changes to the settings of the cache are accomplished by calling Rwabs with some parameters for a non-existing drive. This command acts as some kind of an escape mechanism or UNIX IOctrl call. The entries will be removed in a LRU order, searching takes place by hashing, so is reasonably fast. DCACHE has been tested on an Atari 1040ST with hard disk, I don't know if it will work on Mega ST's. TO WRITETHROUGH OR NOT TO WRITETHROUGH The possibility to delay writes can have some funny aspects. If you remove your floppy while unwritten entries are still in the cache, this can give you a corrupted disk. The nice thing however, is that copying and deletion to/from floppy can sometimes go fast. The catch in this case lies in the fact that if a file is copied to a disk configured for non-writethrough and deleted afterwards, still has entries in the cache which correspond to data once written to the disk. This facility is therefore the most useful if lots of copies en deletes take place and the sectors are re-used before flushed to disk. Flushed and unflushed entries are kept in seperate queues and entries which are dirty are only flushed when the queue containing unflushed entries is full. If this is the case, all unflushed entries are written to disk, just as if a flush command has been given. This writing can be speeded up a little by allocating a buffer with the 'b' command at initialization, which will be used to put consecutive unflushed sectors in and write them with one write command to disk. In any case: know the risks involved when you have turned off writethrough !! DCACHE V1.0f - 4 - 19 June 1988 SPEED I ran several small tests on my harddisk (SH204), cache installed in writethrough mode, size 300Kb and achieved a speedup of approx. 1.5 with the startup of my shell and 1st wordplus compared to a situation without a cache at all. On a floppy drive only system speed up was far more and I think DCACHE to be a good alternative for a ramdisk. REMARKS & KNOWN BUGS If DCACHE is executed from the desktop, the desktop will convert all characters to uppercase, which will then be misinterpreted by DCACHE. DCACHE will only read the first 128 bytes from the file DCACHE.INF. Comments are not implemented. Non writethrough is not really supported. The cache should be reset-resistant and/or should flush now and then some unflushed entries. It is not taken into account whether a drive is mounted or not. If a floppy is write protected a possible mediachange is detected. This will cause the cache to try to find out if another floppy has been put in by reading from the floppy. This costs extra time, so if you want to have full profit, use your floppies without write protection. Disk changing while still having unwritten cacheentries should give some error messages or prompts. For reasons yet unclear the 'info' menu entry from the desktop reads from disk into a buffer with address 0 (yes, it's true !). A check on this situation is build in but ..? . DCACHE was written with Mark Williams C. AUTHOR Atze Dijkstra private: Pr. Irenelaan 37 3832 CA Leusden-Z The Netherlands DCACHE V1.0f - 5 - 19 June 1988 work: Dept. of Computer Science State University of Utrecht P.O. Box 80.089 3508 TB Utrecht. UUCP: .. mcvax!ruuinf!atze DCACHE V1.0f - 6 - 19 June 1988 `L .|"NBgNANV/<# BgBgN dPO |/ / / / /9# NX"| |#!!!!N^NuNV/. ?.BgN dPO |/ / / / n /NX/<#?<N"\OJng |/ / p?Bg n /Nj/<#?<N"\O?. n /N\O=@Jnm nHl"n 0. @h 0.N^NuNV0B?<?.?. Hn?. p?NM-@Jg^/<Hn0N`POp?p ?Hn0NpXO0@Hh0/.N /<Hn0NJPOHn0p?N4\ON^NuNVJng0.  @h `0.  @h N^NuNV0.  @0( @N^NuNVBn0.H @ Pg&Bg0.H @?/.NPORn`N^NuNVBnBnBBnp$?/.N\OJ@g=|`J0.H @ Pg40.H @?/.N\OJ@g p4.hnRn` n h$/NXOH=@Bn0.H @ PgX0.H @0 @0( @g&?.?.0.H @?N\O-@JfRn` .N^NuNVRy# n J(gRy#BN^NuNVBy#By#Jng*?909 @#//<TN N^NuNV09 @#J(gp`B@=@ n h\09@Ap49hy#?p ?/.NPO?.p ?/.NPO09 @#B@(?p?/.NPO09 @#B@(?p?/.NPO?.NtTOBgp ? n h/Jng*09 @#0( H@B@H@/`BN Bgp ? n h/Jng*09 @#0(H@B@H@/`BN Bgp ? n h/p09#/N Bgp ? n h/p09#/N N^NuNV0. @@ @ bH0@L PN/.NXO |#/ / p?p?/.Nj`Rp`P0. @gp`09R@ @n09R@3`0. @gB@`09S@m09S@`pN^NuNV m op`B@N^NuNV/<#/<#/<#/<#/<#/<#Bg?<'HnBgBgBgBgBgBgBgBgBgBgBgBgBgp0?N V<=@0.@g0. @(f0.y#fp ?NMTO3#N?<p?Bg/<#Bgp?NM##/9#N XOJ@g/<p?N4\O`*p@/9# NXO |#/ / p?p?p?p?BgNB@.?/<# p!?BgNX =@?./9# Nt\OS@ @bH0@t PN`p@`B.` |#/ / p?p?p?p?p?N nf/9# NHXO/9# NXO`FN^NuNVN /<?9#NF\O3#N:NBN^NuNV/#&##&# y# 9#?(BgП-@~ y#hd0H@B@H@ @ 9#ѐRG` y# 9#?(BgП-@~ y#hdN0 @"P# 0 @"h#!I0 @"h#!IRG` y# 9#?(BgП-@~ y#hd0 @"P# RG` y# 9#?(BgП-@~ y#hdV2" A 9#"P 2" A 9#"h!I0" @"h#!IRG` y# 9#?(BgП-@~ y#hdr0 @=h ng. ng& ng ng0 @ 9#Ѩ ng ngBg0Ю/N\ORG`.N^NuNVJnf$0. H$y#?*Bg"_# n N^NuNVBn/.NpXOS@=@0.nl:0nH=@0n2n0n0.RnSn`N^NuNV-n JngJl nRp- .D-@`-n-np0.//.NPO=@ nR n n 0.@0`0.@7HHp0.//.NPO-@Jf nB/.N XO . N^NuNVB ng: n-h nB@nf/./. nNPO-@Jf-n` .N^NuNVB?. n / n P/(/. /.N -@Jf.?. n /( n h/(/. /.N -@ .N^NuNV3#&0.@ H-@p=@ nl$ nRH2.H A#&0Rn`/9#N@XO09#lN^NuNV##&###.###L###l###z####"###p ?N lTO3#l#pN^NuNVp?N lTOpN^NuNV3#L3 #N3 #P3#R3#T3#V3#X3#Z3#\3#^3#`3#b3 #d3"#f#$#z3(#h3*#jp?N lTO n,0#n n00#p n40#r n80#t n<0#v n@0#x09#lN^NuNV3#L# #zp4?N lTON^NuNV##zp6?N lTO n 0#n n0#p n0#r n0#t09#lN^NuNV3#L3 #N3 #P3#R3#T3#V3#X3#Z3#\p3?N lTON^NuNV##z3 #Lp2?N lTON^NuNV3#L# #zpN?N lTON^NuNV3#L# #zp#?N lTON^NuNV##z3 #L3#N3#P3#R3#T3#Vp*?N lTON^NuNV##z3 #Lpr?N lTON^NuNVH *nz~H< @ g F fR` F-fz` F+fRH< @0m F9n2A00 A>`JEf0D@>0L N^Nu"o o JfSfNu"o o fNu o"Jf S@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"/0<NBNu%&'()*+,-./01234! "  [1][Error ][OK][1][Disk Cache not installed][OK] Disk Cachezz$r5vDCACHE manipulator, V1.0f 880619, (c) Atze Dijkstra.StoppedWrite through00000Cache size: _____9999900000Request size: _____99999CachedMountedInfo aboutA:00000# Cached: _____9999900000# Not flushed: _____99999CommandsCANCELOKInvalidateRemoveQuitStop usageContinue usageWrite throughDon't write through0000Max request: ____9999FlushALLou   P^_ty@8$4!   Y a      @< @>   #!'& #" *16A B!`"^$4 &% & A' B ( C) D* E+ F, G- H". I/ J 0 K1 L2 M3 N4 O#! P"z     h  t . (.$       * 6.&    "J($@4.          ~Z 0@ 4z rMenuID_#CmdObjs_event_BpRb_#CurDrive_ctrl_cn_strcpy_`main_form_do_errno_graf_mouse_"__USTACK__pRh_#StrangeDAdm_ objc_draw_jform_alert_4ItoA_ atoi_form_dial_crys_if_l global_.#rsrc_obfix_CountUFSecs_#GetCmdMaxRec_Loc_rsrc_load_:GetSecCounts_tnowhere_#menu_register_Fperform_Hlldivreverse_ llremSetSettings_MaxRec_"appl_init_ control_&#int_in_L#lrdivint_out_l#crystal_@lrremDrObjs_vldivappl_exit_@ pDAdm_#vlremEntriesForAllFrT evnt_multi_V DoACmd_selected_deselect_DrvMap_#pRec_dialogue_Xctrl_cnts_vrdivHandle_tvrrem_start_gl_apid_#addr_in_z#strcat_Jaddr_out_#RsrcData_&pCmdTree_ #form_center_XSetSelected_CountSecs_#Loc_rsrc_gaddr_d strlen_p__ESTACK__"vdivRec_CountProc_TEntriesForAllHsh From idec!stc!ukc!mcvax!uunet!lll-winken!lll-tis!helios.ee.lbl.gov!pasteur!ucbvax!agate!saturn!ssyx!koreth Mon Jul 11 10:25:10 BST 1988 Article 109 of comp.binaries.atari.st: Path: prlhp1!idec!stc!ukc!mcvax!uunet!lll-winken!lll-tis!helios.ee.lbl.gov!pasteur!ucbvax!agate!saturn!ssyx!koreth >From: koreth@ssyx.ucsc.edu (Steven Grimm) Newsgroups: comp.binaries.atari.st Subject: v02i023: dcache -- configurable disk cache Keywords: arc, uuencode Message-ID: <4040@saturn.ucsc.edu> Date: 6 Jul 88 14:52:45 GMT Sender: usenet@saturn.ucsc.edu Lines: 465 Approved: koreth@ssyx.ucsc.edu Submitted-by: uunet!mcvax!ruuinf!atze (Atze Dijkstra) Posting-number: Volume 2, Issue 23 Archive-name: dcache [I haven't had time to test this, but it's been sitting in the queue for a while. Caveat emptor. -sg] here is my contribution to the PD: (yet) another cache which I wrote between the discussions about turbodos and some days ago. I think it offers some nice possibilities to be manipulated which cannot be found in other caches known to me. E.g. it is possible to turn on/off writethrough and usage of the cache for different drives seperately. Also the cache can easily be configured via a configuration file. Manipulating the cache is done by either using a desk accessory or by invoking the cache again with the appropriate arguments (if one is working from some shell). The software is public domain, in the documentation I only asked for a small amount of money to be sent to me on a voluntary basis. The rest of the file is arc'ed and uue'd and includes documentation. The cache works fine with me (well ofcourse , I wrote it myself). Greetings, ** Atze Dijkstra **\n\ ** Vakgroep Informatica, RUU **\n\ ** Postbus 80.089 **\n\ ** 3508 TB Utrecht **\n\ ** Padualaan 14 **\n\ ** 3584 CH Utrecht **\n\ ** The Netherlands **\n\ ** tel. +31-30-531935/531454 **\n\ ** EMail: UUCP : .. mcvax!ruuinf!atze **' `l*o m$m,B"HJgP"&J$YJf"Jg< Af Rf Gf Vf =f Jg#jB "&J$YJf"Jf&f2B "EHB2 r ggSJ"g fB*`B" ^#^.I+I/ #&//SA?Jf.?<?<N>NF?|BWN>NFXON ?N?<LNANVJnfB@`D nbp`80.@gp=@0.nb0.H@J@gTn`N^NuNV?.NTOJ@fRn`0.N^NuNV .SR-@J9bg 9XSR#ZB9b-yZ .ѹZ .N^NuNV .N^NuNV/<p&?NN\O/<2/9 NPO=@Jnfp`B@N^NuNV# /<bp&?NN\O 9 N^NuNV n h!n "n n !i n!n  n !nN^NuNV n h"n!i n h"n!iN^NuNVH0 n0. R@H@>0H@B@H@Ю (@*T gJ0.mb0.mfBA0. Ac  ` n 0.mfBA0. Af p` n B@L0N^NuNV/. N~XO/. Jng n h` n P/(NFPON^NuNV n -h n B(Bg/. /.ND .N^NuNVH0 n >(*y*(mg le(l`/. N~XO/. /,NFPOBL0N^NuNVB-y. n-P 9* y*!@ y*!@?. n/( n h/(/./<N-@Jg-y .=@ y*-h n*gJfJgBn-n n=hJgh nHh/.NPORn n h*g@ n"h n0(R@ie(0.nd/./.N~PO-@` nB@??.?./.` nB@? n?(p? nHh nB@(?N -@/./.N~PO-@`Jg/./<dN|PO .N^NuNVBHn n ?( n B@?/.N J@g n  n B( n"P n .N^NuNV n-P"n n P hf&?./.N\O"n n P hfB`x"n Q-h/./.NPO0. n n1nHn ?.?./.N "n n!Q n ?././.ND .N^NuNVBn n0.hd0.H@B@H@ @B Rn`N^NuNV . n!@ n!@ .N^NuNV/< . (/NPO=@-n 0.\@H?NhTO n1@ n0(HH@B@H@Ю n n/NXO n!@ n/(NXO-@/.NXO . e> n nB( nB /. n P/(NFPO .-@` n N^NuNV0. n@N^NuNV?./.N\ON^NuNV?.?. /.N6PO-@?. n//<N* .N^NuNVBn nl0. @JgB@`Rn`pN^NuNV?.Bg/.NNPO-@ nB( np@NJ@gBBn nl*0.-@g n/( NXORn` y BN^NuNV"n0. i d0. ` n0( n1@BN^NuNVJ.f$p0. #./9.NXO#BN^NuNVBJn g?.?. /.NNPO-@Jn gp`B@ n@BN^NuNV/<0. R@ @lp`0. R@H/NzPO-@JngP/.NXO n!@ nJ fpg`| n .Ш / n/( /.N" 0. y n1n nBBg n0( H?/.N >PO np@ nB( np@BN^NuNVBnp@BJngz0.@gf0. @JfR0.-@B@.??. /.N PO-@g .`(J.g n-P` n B.Rn`BN^NuNVBnBJn gX0. @gD0. @Jg0?.?.0./ nNPO-@Jg0.` Rn `B@N^NuNV0.S@ @bH0@ PN`p??. /<"N RPO-|6`t-|`j-|"Bn `\-| >`R?. ?. N XO`V-|N`6-| l`,p=@ -| `Bn ` <`$-|=| ?. ?. /.N RPOHN^NuNVB nf?.?.?.N \O-@`0.@f:0.@-@g" nJ(f n0(ne  l ?.?.?./. ?.N `?.p ?NMXOJ@g:?.BgBg/<BgN -@Jg?.Bg/.NNPO`> n-PJnf>JngjHn?.?./.N J@gL n-P nB@(?/./.ND nHh/. NPOSnRn `Jng"?.?.?./. ?.N -@JfJngHn?.?./.N J@g( n-P nB@(?/./.ND ` Bg?.?././.N-@Jg/. nHhNPOSnRn `f nJ(g(?.?.?./. ?.N -@B.`0.@JfJngHn?.?./.N J@g$ n-PB@.?/./.ND `&B@.??.?././.N-@Jg$/. nHhNPOJ.g nnSnRn `T .N^NuNVBn nl0. @BRn`N^NuNVtp?NTOBy NJ@gp`p3 #v/<2NXOBgNTO09 @gN` 9//9BgpJ?NA HnvHn~/. ?.N,J@gpp?NTO@t/<N0XO/.vNXO/.vNXOH-@zJzg/.z/<N|POBy `B@.t?NTO`t09 @gdJy o\/< N"XO# p?NTO@t/<NXOB@.t?NTOBg 9ZX/p1?NAPON^Nu yC " y C " Nu y P2 # Nu# y ?<NMT y /9Nu o"o g 0<QNup QNu NuNVJ9 g?.?9p?NM\ON^NuNV nJg nRH?NTO`N^NuNVp ?NTOp ?NTON^NuNVp?p ?Hn0.H/N$ /N0XON^NuNVBgp?Hn/.N$ /N0XON^NuNVp?p ?Hn/.N$ /N0XON^NuNV/.N0XO?. NxTON^NuNV/.N0XO/. NXON^NuNV/.N0XO/. NXON^NuNV?. /.N\ONXN^NuNV/. /.NPONXN^NuNV/. /.N>PONXN^NuNV/.N0XONXN^NuNVB@9 @0. B@.N^NuNVB@9 N^NuNV nZn nAm 0.@ `0.N^NuNVBn"nR QP .0m" .9n.HA00. A=@` nSN^NuNV n Jg n H0.Afp`R `B@N^NuNV09 @g"?<?.?. Hn?. N H`?<?.?. Hn?. p?NM-@ .N^NuNV/ Bn0.H @Jg n PH0.H @HAfl0.H @09 PgR0.H"@ n 00.H @JPg$0.H&@/.N,XO n0p` Rn`VB@&_N^NuNVBnBn n =f=| nJgr n =gh nH?NTO@a=@ n am n pnp4.hn`&/< N0XO nH?NTONXR` nRJg nJgHnHnHnN J@gH?.?.?.N\O-@JgP?./<0N\O/./<BN|PO .`0/<IN0XO nH?NTONXR`hBN^NuNV n g n g n g n fp`B@N^NuNVJ9g nnBg/<p=?NAPO-@JlBg/<p=?NAPO-@JlB@`B0.=@/./<?.p??NA -@?.p>?NAXO0. nBBy p`p3 B9J9g n Jg$ n H?NTOJ@gRy ` n JgV ./09 Hї  n n Jg$ n H?NTOJ@fRy ` n Jg@09 Ry 0@B`*09 nl09 Ry H"@ n pN^NuNVBn/.NXOS@=@0.nl:0nH=@0n2n0n0.RnSn`N^NuNV-n JngJl nRp- .D-@`-n-np0.//.N:PO=@ nR n n 0.@0`0.@7HHp0.//.NPO-@Jf nB/.NXO . N^NuNVB ng: n-h nB@nf/./. nNPO-@Jf-n` .N^NuNVB?. n / n P/(/. /.N-@Jf.?. n /( n h/(/. /.N-@ .N^Nu"o ofJfHHNu o"Jf S@NuNVN?.NTON^NuNVN^NuNV?.pL?NAXON^NuNV/?.pE?NAXO>l0H/NXO`"?.NTO=@m?.?NXO0.N^NuNV/?.?. rF?NA\O>J@f(?.NTO=@m?.?. NXO0. `0H/NXO.N^NuNVH >.0V@ @bH0@ PN`*pP`&pA`"pC`JGm*yjSGmJfp`JgHL N^NuNVH >.JGm*yjSGmJfp` Jg0. L N^NuNVH >.0V@ @bHH0@ PN*yjHGg Jfp`&R` j?NTO`~C`~A`~P`pL N^NuNVJl .D3$p` .N^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@ЉN   : l z (  z z z N ^ z d D|DCACHE V1.0f 880619, (c) Atze DijkstraRwabs error during flush: Commands: Result: DCACHE Installedv\auto\dcache.inffrWwiqcm s SbInvalid drive: Error in command , res Command unkown or not allowed: nCCAP????????????????????????L"2  j. "&," &@:P2Z2,* 6>D,(>&J8.VfF  *&B,2*4.* :<&$ N   "      B , $      L  \20 FZ   (@4D D0(2> 0& B 0\jl PrSL_IsBlank_pWBuf_vmulExecSetWBuf_l main_Version_2errno_$sWBuf_.EntryDel_~DirtyBuf_HshHeadInit_CAdmInit_ PrSIL_^DAdmInit_AllReadyInstalleExecStop_ BootMalloc__stksize_^ItoA_$EntryAddR_FCharInStr_t_getfhtype_PrIlx_PrTrace_InstallSwap_bArgExecCmd_ExecRemove__cmdname_InstallVec_"EntriesFlushAll__aliasfh_*PrIl_AllEntriesInvaliHshInit_IsPrime_ArgNext_,exit__setfhtype_dup2_Flldivreverse_llremSysRwabs_ HshFindRef_State_ environ_&lrdivPrSIlx_RetAdr_UpPrime_hCRwabs_ lrremEntrySortAdd_ArgInt_,PrC_MaxMem_ZExecForAll_R vldivExecInvalidate_Nllmulrvlrem4Cmds_EntriesForAllFrTEntryReEnter_DExecFlush_6InstallTmp_ Lower_BlCopy_dup_PrSIl_>PrTracing_hdv_rw__iovector_jPrI_xvrdivvrrem:lrmulz_start_ArgGetCmd_PrL_XPrSIlxL_|vlmul_seterrno_bTrace_ HshEntriesInit_"_cpy16_EntryInvalidate_PrS_0PrSIlL_DAdm_BootFree_GetHdvCont_vrmulGetA6_ ExecSetMax_> strlen_out_ArgExecStr__exit__cpyeven_strcmp_ExecCreate_ vdivNInstallArgRes_ _cpy1_ExecSetWT_"EntriesNextFlush~InfFile_pESort_*PrSI_ExecForMe_ EntriesForAllHsh*TotalSec_ HshEntryNew__finish_AsmRwabs_.  tC..  tSTARTGEMTXTt DaSTARTGEMPRGt ESTARTGEMINFt G STARTGEMS t HFrom idec!stc!ukc!mcvax!unido!tub!tmpmbx!netmbx!fischer Fri Jul 22 08:11:36 BST 1988 Article 3388 of comp.sys.atari.st: Path: prlhp1!idec!stc!ukc!mcvax!unido!tub!tmpmbx!netmbx!fischer >From: fischer@netmbx.UUCP (Axel Fischer) Newsgroups: comp.sys.atari.st Subject: Re: Corrupted STARTGEM uuencoded binary Message-ID: <2111@netmbx.UUCP> Date: 17 Jul 88 06:49:58 GMT References: <4201@csvax.liv.ac.uk> Reply-To: fischer@netmbx.UUCP (Axel Fischer) Organization: netmbx Public Access Unix, Berlin Lines: 111 Posted: Sun Jul 17 07:49:58 1988 In article <4201@csvax.liv.ac.uk> sqrkl@csvax.liv.ac.uk writes: >The STARTGEM uuencoded file that was posted up recently is definitely >screwed up ! There are several missing lines and a couple of other lines >that are shorter than they should be - any chance of a repost ? No problem, here it comes : `A aBgHz?<=NAPJ@jHz?< NA\?<NAT`K:Hz/<@??<?NA JkpAB(??<>NAXB?< NA\Ot!,*|:<JgXQHy`?< NA\`(E**E|$/?< NA\OA"Bg/?<1NABgNAp,g$AN PB x,C:"C!,# Nu o Pf!, zCfHy?<NA\?<'Hz?<NNAPJ@fjKB@|ߐ<A??<NAXRI:<?JgQ:<? $\gQRBHyr?<;NA\ o PPgTgf zvN4XOF8NA g "g"Hz`P#:33NuSTARTGEM.INFError! - Cant find STARTGEM.INF... To use STARTGEM.PRG, first create a text file called STARTGEM.INF in the main directory of your boot disk, consisting of the filename of the program you wish to auto-run. The first three characters of this filename MUST consist of the drive name (A, B, etc.), a colon, and a backslash. Examples: A:\1STWORD.PRG C:\UTILITY\ARC\ARC.TTP Press any key to exit. Oops! No vertical blank interrupt vectors left! Error! - Cant work with this TOS-version. Press any key to exit. EOPA&b&b^d:\msh.prg / / STARTGEM.S 6-MAR-1987 by GHOST-Soft / / Modified 13-MAR-87 by STeve Reed to load startup name from startgem.inf / / This program is used to start GEM programs from within the AUTO folder. / / The code is probably highly nonportable, as it heavily depends on the / internal organisation of code in TOS/GEM. / As this program works with ROM- as well as all disk-based versions / of German TOS, I'm pretty sure that this program works with foreign / versions of TOS, too. / All addresses given in square brackets apply to the German ROM-TOS. / / Assemble with Mark Williams assembler: / as -o startgem.o startgem.s / gemfix startgem.o startgem.prg / strip startgem.prg / linef= 0x2c vbllist1= 0x4d2 gemdos= 1 xbios= 14 .shri start: lea basepage(pc),a0 move.l 4(a7),(a0) / get basepage address move.w $2,-(a7) / let's read the start.inf for pea datafile(pc) / starting application move.w $0x3d,-(a7) trap $gemdos / open file addq.w $8,a7 move d0,handle bpl fileok / file exist? lea nothing(pc),a0 / no?, then copy "nothing" into filename lea filename(pc),a1 cpnothing: move.b (a0)+,(a1)+ bne cpnothing bra pmsg fileok: pea filename(pc) move.l $0x100,-(a7) move.w handle,-(a7) move.w $0x3f,-(a7) trap $gemdos / read name adda.w $12,a7 move d0,namelen move.w handle,-(a7) move.w $0x3e,-(a7) trap $gemdos / close file addq.w $4,a7 pmsg: pea msg(pc) move.w $0x9,-(a7) / print line trap $gemdos addq.w $6,a7 lea filename(pc),a1 nfcr: cmpi.b $0x0d,(a1) / find return beq fcr addq.l $1,a1 subq.l $1,namelen / just in case these no return bpl nfcr fcr: move.b $0x00,(a1) / put zero in moveq $70,d2 / wait 1 second = 71 vblanks 1: move.w $0x25,-(a7) / wait for vertical blank trap $xbios addq.w $2,a7 dbra d2,1b clr.l -(a7) move.w $0x20,-(a7) / enter super mode trap $gemdos addq.w $6,a7 / keep old super sp in d0 moveq $-1,d2 move.l d2,linef / set line-f emulator trap lea vblank(pc),a2 move.l a2,vbllist1 / set vblank vector #1 {0..7} move.l d0,-(a7) move.w $0x20,-(a7) / exit super mode trap $gemdos addq.w $6,a7 lea basepage(pc),a0 / compute number of bytes to keep suba.l basepage(pc),a0 clr.w -(a7) / 0 = no error move.l a0,-(a7) move.w $0x31,-(a7) / terminate and stay resident trap $gemdos / this call never returns vblank: moveq $-1,d0 cmp.l linef,d0 beq.s 1f clr.l vbllist1 / clear vblank vector #1 movea.l linef,a0 lea old_lf(pc),a1 move.l a0,(a1) / save old line-f vector (usually in low RAM) lea new_lf(pc),a1 move.l a1,linef / install new one / find the address of the buffer that GEM uses for the / name of the program that it is going to execute movea.l 0x16(a0),a0 / get start of line-f table from instruction / [a0 = fee8bc] move.l $0xfee8bc,a0 movea.l 0x7c8(a0),a0 / get address of routine 'f7c8' from table / [a0 = fd8fc4] movea.l 0xa(a0),a2 / get address from instruction / [a2 = 73e4] move.l $0x73e4,a5 adda.w 0x10(a0),a2 / add offset 0x1f56 from instruction / [a2 = 933a] lea 0x1f56,a0 lea pointer(pc),a1 move.l a2,(a1) / save buffer address 1: rts new_lf: movea.l 2(a7),a0 / get addr. of instr. that caused exception cmpi.w $0xf08c,(a0) / 'f08c' is the line-f instr. we're looking for bne.w exit move.l old_lf(pc),linef / restore old line-f vector movea.l pointer(pc),a0 lea filename(pc),a1 1: move.b (a1)+,(a0)+ / copy filename into GEM buffer space bne.s 1b pea dta move.w $0x1a,-(a7) / set DTA trap $gemdos addq.l $6,a7 move.w $0x27,-(a7) / don't look at volumes and directories pea filename(pc) move.w $0x4e,-(a7) / search first trap $gemdos addq.l $8,a7 tst d0 / status != 0 indicates error bne.s exit movea.l 2(a7),a0 / get addr. of instr. that caused exception / [a0 = fed188] 2: cmpi.w $0xf4b8,(a0) / look for line-f instruction 'f4b8' beq.s doload addq.l $2,a0 cmpa.l $0xfefffe,a0 / test for ROM end beq.s exit cmpa.l $0x078000,a0 / test for RAM end (on 512K machine) bne.s 2b / {RAM-TOS usually loads much lower} exit: movea.l old_lf(pc),a0 / resume execution of regular line-f handler jmp (a0) doload: / [a0 = fe1de2] move.w (a7)+,d2 / pop status word addq.w $4,a7 / destroy addr. of instr. 'f08c' move.w d2,sr / restore status register adda.w $56,a7 / destroy parameters of instr. 'f08c' jmp (a0) / jump to instruction 'f4b8' .prvd dta: .blkb 44 old_lf: .blkl 1 pointer: .blkl 1 handle: .blkl 1 namelen: .blkl 1 datafile: .ascii "startgem.inf" .even nothing: .ascii "Nothing\n\r" .byte 0,0 .even msg: .ascii "Autostart of " filename: .blkb 255 .even basepage: .ascii "EOPA" / magic number indicates End Of Patch Area .  tM..  tSCROLL SRC t N?SCROLL PRGt ^From idec!stc!ukc!mcvax!uunet!wyse!vsi1!ames!mailrus!uwmcsd1!ig!agate!saturn!ssyx!koreth Tue Aug 30 09:51:56 BST 1988 Article 65 of comp.sources.atari.st: Path: prlhp1!idec!stc!ukc!mcvax!uunet!wyse!vsi1!ames!mailrus!uwmcsd1!ig!agate!saturn!ssyx!koreth >From: koreth@ssyx.ucsc.edu (Steven Grimm) Newsgroups: comp.sources.atari.st Subject: v01i070: scroll -- fast screen scroller Keywords: GST-assembler Message-ID: <4494@saturn.ucsc.edu> Date: 12 Aug 88 16:01:56 GMT Sender: usenet@saturn.ucsc.edu Lines: 443 Approved: koreth@ssyx.ucsc.edu Submitted-by: uunet!mcvax!philmds!leo (Leo de Wit) Posting-number: Volume 1, Issue 70 Archive-name: scroll The following program, when placed in the AUTO folder, speeds up scrolling (BIOS output only). Difference is most noticeable with relative few chars per line; speeds up full screen editors, 'more' utilities, etc. For all resolutions; not for GEM, only for TOS. The corresponding binary is sent to the moderator of comp.binaries.atari.st. The program was assembled and linked with the assembler and linker from the GST-C compiler. For correspondence conceirning this program (bugs, questions etc.) try L. J. M. de Wit Nachtegaallaan 7 5731XP Mierlo Holland e-mail: ..!mcvax!philmds!leo ------------------------ s t a r t h e r e --------------------------------- ****************************************************************************** * * * scroll.asm version 1.0 of 23 July 1988 (C) L.J.M. de Wit 1988 * * * * This software may be used and distributed freely if not used commercially * * and the originator (me) is mentioned. * * * ****************************************************************************** * * NAME * scroll - fast text scrolling * * SYNTAX * scroll.prg * * DESCRIPTION * Scroll provides for fast scrolling; this is achieved by using a 64K * buffer for screen memory and changing the physical screen location therein. * The actual changes take place at the receipt of certain escape codes or * characters that would make the entire display scroll. * * Scroll should be in the AUTO folder as SCROLL.PRG so that it is * installed memory resident when the system is loaded. * * DECISIONS * The extra storage needed grabs a 33K from your free mem, unless * the memory cannot be reserved adjacent to the original screen memory, * in which case 65K is needed. * The console output vector at 4a8 is used to trap the escape codes. * Also the bios vector had to be changed (a pity); * this is only needed to be able to load from AUTO folders: * the con_state vector is reinitiated when the resolution changes * The program must reside in the current drive's AUTO folder to be able * to find itself. module scroll section s.ccode * character codes lf equ 10 vt equ 11 ff equ 12 cr equ 13 esc equ 27 * scrinfo offsets maxcol equ 0 maxrow equ 2 bprow equ 4 scrad equ 10 col equ 16 row equ 18 flag equ 38 * system variables v_bas_ad equ $44e con_state equ $4a8 * GEMDOS & (X)BIOS stuff gemdos equ 1 bios equ 13 xbios equ 14 ptermres equ $31 supexec equ 38 setexc equ 5 setscreen equ 5 physbase equ 2 setblock equ $4a pexec equ $4b * divers bpaglen equ $100 textlen equ 12 datalen equ 20 bsslen equ 28 linea0 equ $a000 scrinit move.l 4(sp),a3 * basepage start move.l #bpaglen,d3 * base page length add.l textlen(a3),d3 * + text length add.l datalen(a3),d3 * + data length add.l bsslen(a3),d3 * + bss length add.l #256,d3 * + rounding length move.w #physbase,-(sp) trap #xbios addq.l #2,sp move.l d0,a4 * Start physical screen memory dc.w linea0 suba.w #44,a0 lea.l scrinfo(pc),a1 move.l a0,(a1) * start screen info to scrinfo move.l a0,a2 * and also a2 move.w maxrow(a2),d1 addq.l #1,d1 mulu.w bprow(a2),d1 * screen size into d1 lea.l 8(sp),a0 cmpa.l a4,a0 bne.s scrinstall * last location not start of phys. screen mem. tst.b 128(a3) bne.s scrinstall * Prog. had argument: called the second time add.l d1,d3 * add a screen size sub.l d3,a0 * this will be taken off current prog area move.l a0,sp suba.l a3,a0 move.l a0,-(sp) move.l a3,-(sp) move.w #0,-(sp) move.w #setblock,-(sp) trap #gemdos * Leaving just enough for next load of myself lea.l 12(sp),sp pea nullstr pea argstr pea progname move.w #0,-(sp) move.w #pexec,-(sp) trap #gemdos * load & exec myself with a nonzero arglist lea.l 12(sp),sp clr.w -(sp) trap #gemdos * finished scrinstall lea.l 8(sp),a0 cmpa.l a4,a0 bne.s notattop * current mem not adjacent to phys. screen mem. attop suba.l a3,a0 move.l a0,d3 * d3 : just all we've got lea.l topbase(pc),a0 move.l a4,(a0) * current phys screen mem becomes top base sub.l d1,a4 lea.l botbase(pc),a0 * and botbase a screen 'lower' move.l a4,(a0) bra.s endcalc notattop move.l a3,d0 add.l d3,d0 clr.b d0 * Adjust for 256 byte boundary lea.l botbase(pc),a0 move.l d0,(a0) * address lowest screen add.l d1,d0 * a screen 'higher' lea.l topbase(pc),a0 move.l d0,(a0) * address highest screen add.l d1,d3 * add a screen's length to mem needed add.l d1,d3 * and another one endcalc pea setvect(pc) move.w #supexec,-(sp) trap #xbios * set new console output vector addq.l #6,sp pea newbios(pc) move.w #$2d,-(sp) move.w #setexc,-(sp) trap #bios * Set new BIOS vector addq.l #8,sp lea.l oldbios(pc),a0 move.l d0,(a0) * Save old one move.l topbase(pc),d0 move.w #-1,-(sp) move.l d0,-(sp) move.l d0,-(sp) move.w #setscreen,-(sp) trap #xbios * make highest screen current lea.l 12(sp),sp clr.w -(sp) * return value: 0 for success move.l d3,-(sp) * # bytes to keep move.w #ptermres,-(sp) * keep process trap #gemdos * stops here... * New bios routine; only sets con_state to point to newconsole if not already * saving the old value. newbios lea.l newconsole(pc),a0 cmpa.l con_state,a0 beq.s newsame bsr setvect * Set con_state if it was not newconsole newsame movea.l oldbios(pc),a0 jmp (a0) * This is the routine that con_state will always point to, except * when printing characters from within the routine itself. newconsole move.l cvsav(pc),con_state * restore original vector move.w d1,-(sp) * save character to be printed on the stack movea.l scrinfo(pc),a1 lea.l hadesc(pc),a0 tst.b (a0) beq.s noesc * If previous char was not escape; else ... sf.b (a0) * Reset escape flag tst.w row(a1) bne.s no_0row * If cursor not on row 0 cmp.w #'I',d1 bne.s not_i * If not ESC I bsr scr_down * else scroll down move.w #esc,d1 bsr charout * and print the ESC move.w #'I',d1 bsr charout * and the I bra newdone not_i cmp.w #'L',d1 bne.s not_l * If not ESC L bsr scr_down * else scroll down move.w #esc,d1 bsr charout * and print the ESC move.w #'H',d1 bsr charout * and a H (cursor home) bra.s newdone not_l cmp.w #'M',d1 bne.s no_0row * If not ESC M move.w #cr,d1 bsr charout * else print CR move.w #lf,d1 bsr charout * and LF bsr.s scr_up * and scroll up bra.s newdone no_0row move.w #esc,d1 * In all other 'escape cases' bsr charout * print the ESC move.w (sp),d1 bsr charout * and the current character bra.s newdone noesc cmp.w #esc,d1 * Is current char an ESC? bne.s nonesc lea.l hadesc(pc),a0 st (a0) * Mark the flag for 'had escape' bra.s newdone nonesc move.w maxrow(a1),d0 cmp.w row(a1),d0 bne.s newrest * If not yet at bottom row of display cmp.w #lf,d1 beq.s newup * But else: If you had a LF cmp.w #vt,d1 beq.s newup * or a VT cmp.w #ff,d1 beq.s newup * or a FF cmp.w #' ',d1 blt.s newrest * or: a printing character move.w maxcol(a1),d0 cmp.w col(a1),d0 bne.s newrest * and cursor at last column btst #3,flag(a1) beq.s newrest * and auto wrap mode; then: newup bsr.s scr_up * scroll up newrest move.w (sp),d1 * Print the character saved bsr charout newdone addq.l #2,sp * Clean up stack bsr setvect * Reset con_state to point to me again rts * Scroll up routine * Depending on current base position the new screen location is only reset * or there is an area copy as well. scr_up movea.l scrinfo(pc),a1 move.w bprow(a1),d0 movea.l v_bas_ad,a0 cmpa.l topbase(pc),a0 bge.s up_istop adda.w d0,a0 * If not at top address, simply add a row's move.l a0,-(sp) * size to the current address bsr newscreen * and make that the current addq.l #4,sp bra.s up_end up_istop move.w maxrow(a1),d1 mulu.w d0,d1 move.l botbase(pc),a2 move.l a2,-(sp) * Save copy of botbase on stack adda.w d0,a0 move.l a2,a1 suba.l a0,a1 * Difference into a1 move.l a1,-(sp) * Save it. move.w d1,-(sp) * # bytes to be copied: all but one row move.l a2,-(sp) * destination: botbase move.l a0,-(sp) * source: current address + one row size bsr moevmem * copy it lea.l 10(sp),sp move.l (sp)+,d0 * Difference into d0 movea.l scrinfo(pc),a1 add.l d0,scrad(a1) * Make up for the moevmem for cursor scrad bsr newscreen * Make botbase start of new screen addq.l #4,sp up_end movea.l scrinfo(pc),a1 sub.w #1,row(a1) * Decrement row # move.w maxrow(a1),d0 mulu.w bprow(a1),d0 move.l v_bas_ad,a0 adda.w d0,a0 move.l a0,-(sp) bsr.s clearline * Clear last row of display addq.l #4,sp rts scr_down movea.l scrinfo(pc),a1 move.w bprow(a1),d0 movea.l v_bas_ad,a0 cmpa.l botbase(pc),a0 ble.s do_istop * If current screen already at top suba.w d0,a0 * Else simply subtract a row's move.l a0,-(sp) * size from the current address bsr.s newscreen * and make that the current addq.l #4,sp bra.s do_end do_istop move.w maxrow(a1),d1 mulu.w d0,d1 move.l topbase(pc),a2 move.l a2,-(sp) * Save copy of topbase on stack adda.w d0,a2 move.l a2,a1 suba.l a0,a1 * Difference into a1 move.l a1,-(sp) * Save it. move.w d1,-(sp) * # bytes to be copied: all but one row move.l a2,-(sp) * destination: topbase + one row size move.l a0,-(sp) * source: current address bsr.s moevmem * copy it lea.l 10(sp),sp move.l (sp)+,d0 * Difference into d0 movea.l scrinfo(pc),a1 add.l d0,scrad(a1) * Make up for the moevmem for cursor scrad bsr.s newscreen * Make botbase start of new screen addq.l #4,sp do_end movea.l scrinfo(pc),a1 add.w #1,row(a1) * Increment row # move.l v_bas_ad,-(sp) bsr.s clearline * Clear top row of display addq.l #4,sp rts clearline movea.l scrinfo(pc),a0 moveq.l #0,d0 move.w bprow(a0),d0 * # : bytes per row asr.w #4,d0 * / 16 doing 4 longs at a time subq.l #1,d0 move.l 4(sp),a0 * Memory start address of row moveq.l #0,d1 * Filler clrnxt move.l d1,(a0)+ move.l d1,(a0)+ move.l d1,(a0)+ move.l d1,(a0)+ dbra d0,clrnxt rts setvect lea.l cvsav(pc),a0 move.l con_state,(a0) * Save current con_state value lea.l newconsole(pc),a0 move.l a0,con_state * and make it newconsole for now rts newscreen move.l 4(sp),d0 * New start address of display move.l d0,v_bas_ad * into logical screen pointer swap d0 move.b d0,$ffff8201 * and also swap d0 lsr.w #8,d0 move.b d0,$ffff8203 * into physical screen pointer rts charout and.w #$ff,d1 * For printing move.l con_state,a0 * from within newconsole jmp (a0) moevmem move.l 4(sp),a0 * Source address move.l 8(sp),a1 * Destination address move.w 12(sp),d0 * # lea.l (a0,d0.w),a2 * End of source area cmpa.l a1,a0 bge.s first cmpa.l a2,a1 blt.s second first lsr.w #4,d0 * /16, copying 4 longs at a time sub.w #1,d0 f_next move.l (a0)+,(a1)+ move.l (a0)+,(a1)+ move.l (a0)+,(a1)+ move.l (a0)+,(a1)+ dbra d0,f_next * Copy source to destination, forwards rts second lea.l (a1,d0.w),a1 * End address of dest area lsr.w #4,d0 * /16, copying 4 longs at a time sub.w #1,d0 s_next move.l -(a2),-(a1) move.l -(a2),-(a1) move.l -(a2),-(a1) move.l -(a2),-(a1) dbra d0,s_next * Copy source to destination, backwards rts section s.data oldbios dc.l 0 * Old bios vector cvsav dc.l 0 * For saving con_state vector scrinfo dc.l 0 * (Copy of) screen info pointer botbase dc.l 0 * Ptr to lowest screen used topbase dc.l 0 * Ptr to highest screen used nullstr dc.l 0 argstr dc.b 6,'second' progname dc.b '\AUTO\SCROLL.PRG',0 hadesc dc.b 0 * Boolean: Was previous char an escape? end l1m?n2o?p3`p&o&<֫ ֫֫?<NNT(@,C"$H2*RAf>J+f8ց.H// ?<?<JNAO HzHzHz?<?<KNAO BgNAAf&A A ` ЃBA ЁA ցցHz?<&NN\Hz4?<-?<NMPAh :r?