NNNNNNp NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNAO`  @`#@%`')+-/3@59;=?A C@E`GIKMQ S@U`WY]_c@e`gimoq sowy{} @` / @ ` @ ` @ @ ` ǀ ɠ @ ` ׀ ٠ @` @`!O   !Aa!!O%a')+-/1!35a79=CAEaGIKMOQ!SAUWY[O`  @`#@%`')+-/3@59;=?A C@E`GIKMQ S@U`WY]_c@e`gimoq sowy{} @` / @ ` @ ` @ @ ` ǀ ɠ @ ` ׀ ٠ @` @`!O   !Aa!!O%a')+-/1!35a79=CAEaGIKMOQ!SAUWY[CODER Vt DISKMAN MANet !KEYSHOT nt 1MINIDOS vt 7M_T_DISK t NRAMFREE t [SCHNAPP t aUPLOAD t kWPTOOLS t tWRDCOUNT t X_UTILITIESt MAD ACCt MIKRAM4 ACCt "FONTTRIXACC;t FONTS Nt YMODMBAT H NOTEPAD ACCnH (\-M_HELP12ACCOH 4CLIPBOARD Ct ;READ ME n3W] DESKTOP INFH ^. V t.. V tCODER ACCWt .,CODER C [t h.CODER DOCbt `*O"N>NAN A*z////3*ZNO29*ZHHy'/3*\NP3*^aHy*jN X9*k (f9*oHH29*^Hfa`NVvH ~ G l "H=RG`=|3*\*XHnxHy*XHnN2O Hy*fHy*dHy*bHy*`Hy&NO09*`H29*bH49*dH69*fH////x/////NO$09*`H29*bHt//////t//t/NO$09*`H29*bH49*dH69*fH////x////x/NO$p//NPa09*`H29*bH49*dH69*fH////x////x/NO$09*`H29*bH49*dH69*fH////x////x/NO$09*`H29*bHt//////t//t/NO$09*XH/NXLN^NuH09*`H29*bH49*dH69*fH////x/BHy&NO09#|H/Hy&NP3*hH g g& f09*h @&1| ``09'^g/9$aX##x/9#xaJX09*h @&1| 09*`H@29*bHt/t@///t/BHy&NO` y#|g3#|By'v3't09*`H29*bHt//<//t/BHy&NO`vJy#|gVp3'v3't29*`H49*bHv//<//v/BHy&3#|NO09*hH @# ##x y*hf@LNuNV n ~grR/Bp/NPO `N^NuNV#**| nJgh*B(Hy*/N^P *oHy( p/NHP~*`$ 9* y*|R*|V n*` y*|~A* N^Nu#$%#$%#$%#$%#%&(#$&@#$&X#$&p#$&#$&#$&#$&#$&#$'#$'#$'0#$'H#$'`#%'x#$'#$'#%'#$'#$'#$%NuNVp n-@-@-@ -f r-A-A` n +fp-@ . nHHR A)Tg, .r N nRHH0Ё-@`JgD n .N^NuC(<#" O0/@11g"HS@4TBB$0 g/`?S@j?(NA.y"NuC(#" O0/@11g"HS@4TBB$0 g/`?S@j?(NM.y"NuC)#" O0/@11g"HS@4TBB$0 g/`?S@j?(NN.y"NuHx(Jg0jD$JfB`"jD&HBHBBBւHAH@B@ЃJjDLNuAv!o "o1Q8!oBh.1| 21|d,N^AvCD!ICD!I "o282< "o CX/ ED2Q$_HNuAv1o8Bh.Bh21|e,N^HNuAv1o8Bh.Bh21|,N^HNuAv1o D1o8Bh.1|21|w,N^0(DHNuAv1o D1o8Bh.1|21|x,N^HNuAv!o 1o D1o81|.1|21|,N^AvCD!IHNuABh1|Bh1| NhA0(0HNuA!o 01o 21o01|1|1|1| NhA0(0HNuA!o 01o 21o01|1|1|1| NhA0(0HNuA1o0Bh1|Bh1| NhA0(0HNuA1o21o 0!o01|1|1|1|NhA0(0HNuA1o 0!o01|1|1|1|NhA0(0HNuABh1|Bh1|NhA0(0HNuABh1|Bh1|NhA0(0HNuA1o41o 21o01|1|Bh1|NhA"o22"o24"o26"o280(0HNuA1o81o61o41o 21o01|1|Bh1|NhA"o22"o24"o 26"o$280(0HNuA!o0Bh1|1|1|NhA0(0HNuA1o 21o01|1|Bh1|NhA0(0HNuA1oFN1oBL!o<01o:J1o6H1o2F1o.D1o*B1o&@1o">1o<1o:1o81o61o41o 21o01|1|1|1|NhA"oH22"oL24"oP26"oT28"oX2:"o\2<0(0HNuA1o 21o01|1|Bh1|NhA0(0HNuA1o 0!o01|1|1|1|NhA0(0HNuA1o21o 0!o01|1|1|1|NhA0(0HNuA1o21o 0!o01|1|1|1| NhA0(0HNuA1o21o 0!o01|1|1|1|!NhA0(0HNuA!o 41o 0!o01|1|1|1|"NhA0(0HNuA!o01o01|1|1|1|#NhA0(0HNuA1o21o 0!o01|1|1|1|(NhA0(0HNuA1o 0!o01|1|1|1|)NhA0(0HNuA1o:1o81o61o41o21o 0!o01|1|1|1|*NhA0(0HNuA1o61o41o21o 0!o01|1|1|1|+NhA0(0HNuA1o 0!o01|1|1|1|,NhA"o 22"o240(0HNuA1o21o 0!o01|1|1|1|-NhA0(0HNuA1o61o41o21o 0!o01|1|1|1|.NhA"o220(0HNuA1o&>1o"<1o:1o81o61o41o21o 0!o01|1|1|1|/NhA0(0HNuA1o 0!o01|1|1|1|2NhA0(0HNuA1o&@1o">1o<1o:1o81o61o41o 21o01| 1|1|1|3NhA0(0HNuA!o01o01|1|1|1|4NhA0(0HNuA1o01|1|Bh1|5NhA0(0HNuA!o0Bh1|1|1|6NhA"o22"o 24"o26"o280(0HNuA1o61o41o 21o01|1|Bh1|FNhA"o22"o240(0HNuA1o">1o<1o:1o81o61o41o 21o01|1|Bh1|GNhA"o$22"o(240(0HNuA1o:1o81o61o41o 21o01|1|Bh1|HNhA0(0HNuA1o">1o<1o:1o81o61o41o 21o01|1|Bh1|INhA0(0HNuA1o">1o<1o:1o81o61o41o 21o01|1|Bh1|JNhA0(0HNuA1o61o41o 2!o01|1|1|1|KNhA0(0HNuA1o41o21o 0!o01|1|1|1|LNhA0(0HNuABh1|Bh1|MNhA"o22"o24"o 26"o280(0HNuA!o01o01|1|1|1|NNhA0(0HNuABh1|Bh1|ONhA"o22"o24"o 26"o280(0HNu"0<sNBNu"0<NBNu1.01~~~M~P~~4~x~x~G~E~0~4~~~~~~~~~""""""""""### ########M~#tPrint CoderPresets:ElitePicaCondensedItalicNLQDraftDouble strikeEmphasisedContinuous feedSheet feedOptions:Other027064 -> Codes: ___ ___ ___ ___ ___ ___999999999999999999Sendby Jon Ellis, Scisys SoftwareMods to 16th March 1987Cancel#~##############$$1$D$I$g$8?88DDTD888@8?8 "& x @@X@0@(@P@0X`   `0  Xp  X  X  X@X8 @@(( % @@ Print Coder[3][Character codes must be|less than 256][ Ok ] ((((( H ((((( H    8         $     " " 0    X@@@@N*<  "" *00 0*..:."(>(*0000*0*H<*0<T*T*"".4L@LL66.*F/********************************************************** ** ** ** Print Coder ** ** =========== ** ** by Jon Ellis ** ** ** ** Program to allow codes to be sent to the printer from ** ** within other programs - especially 1ST Word. Several ** ** normal codes are supplied as presets and a variable ** ** code facility is also available. The program is ** ** designed to sit as a desk accessory. ** **-------------------------------------------------------** ** Filename: CODER.C version 1.0 mods to 16/03/87 ** **********************************************************/ #include #include #include /* ** Define some manifest constants */ #define SEND 16 #define CANCEL 20 #define OTHER 14 #define LINE 14 #define USERDEF 15 #define OFF 0 #define PRINTER 0 /* ** Define the code table for the preset printer ** codes. */ static unsigned char *code_table[] = { "~","~","~","\033M~","\033P~", "\017~","\0334~","\033x\001~", "\033x\000~","\033G~","\033E~", "\033\0310~","\033\0314~", "~","~","~","~","~","~", "~","~" }; /* ** Define the global variables. */ static short int handle, ap_id; static short int phys_handle, menu_id; static short int x, y, w, h, exit_obj; static unsigned char *codes = "\033M~"; static short int edit = OFF; static BYTE msgbuf[16]; /* ** Define the object tree for the dialogue box. */ BYTE *tree_strs[] = { "Print Coder", "Presets:", "Elite", "Pica", "Condensed", "Italic", "NLQ", "Draft", "Double strike", "Emphasised", "Continuous feed", "Sheet feed", "Options:", "Other", "027064\0 ", "-> Codes: ___ ___ ___ ___ ___ ___", "999999999999999999", "Send", "by Jon Ellis, Scisys Software", "Mods to 16th March 1987", "Cancel" }; WORD scisys[] = { 0x0, 0x0, 0x0, 0x3800, 0x1, 0xC000,0x3FFF,0xFFFF, 0xC000,0x3800,0x1, 0xC000, 0x3800,0x0, 0x8000,0x1000, 0x0, 0x8000,0x1000,0x0, 0x8000,0x11FE,0x1, 0xC000, 0x13FF,0x0, 0x8400,0x1307, 0x0, 0x400, 0x1307,0x0, 0xC400,0x1300,0x1, 0x4400, 0x1300,0x2, 0x8400,0x1300, 0x5, 0x400, 0x11FC,0xFF02, 0x8400,0x11FF,0xFF81,0x4400, 0x1003,0x8380,0xA400,0x1003, 0x8380,0x5400,0x1003,0x8000, 0xA400,0x1383,0x8001,0x4400, 0x1383,0x8002,0x8400,0x13FE, 0xFF05,0x400, 0x11FE,0xFF82, 0x8400,0x1000,0x181, 0x8400, 0x1000,0x180, 0x400, 0x1000, 0x180, 0x8400,0x3801,0xC181, 0xC400,0x3801,0xC180,0x9F00, 0x3801,0xFF80,0x8E00,0x800, 0xFF00,0x8400,0x400, 0x1, 0x0, 0x200, 0x2, 0x0, 0x100, 0x4, 0x0, 0x80, 0x8, 0x0, 0x40, 0x10, 0x0, 0x38, 0x3A0, 0x0, 0x3F, 0xFFC0,0x0, 0x38, 0x380, 0x0 }; TEDINFO tree_teds[] = { {0,0,0,3,6,2,0x1111,0,2,0,12}, {0,0,0,3,6,0,0x1180,0,-1,19,34} }; BITBLK logo = {0L, 6, 38, 0, 0, 1}; OBJECT tree_objs[] = { {-1, 1, 20, G_BOX, NONE, OUTLINED, 0x21100L,0,0,432,288}, {2, -1, -1, G_FBOXTEXT, NONE, NORMAL, 0x0L,160,16,120,32}, {3, -1, -1, G_STRING, NONE, NORMAL, 0x3L,8,64,64,16}, {4, -1, -1, G_BUTTON, 0x15, SELECTED, 0x4L,88,64,48,16}, {5, -1, -1, G_BUTTON, 0x15, NORMAL, 0x5L,144,64,40,16}, {6, -1, -1, G_BUTTON, 0x15, NORMAL, 0x6L,192,64,80,16}, {7, -1, -1, G_BUTTON, 0x15, NORMAL, 0x7L,280,64,48,16}, {8, -1, -1, G_BUTTON, 0x15, NORMAL, 0x8L,88,96,32,16}, {9, -1, -1, G_BUTTON, 0x15, NORMAL, 0x9L,128,96,48,16}, {10, -1, -1, G_BUTTON, 0x15, NORMAL, 0xAL,88,128,112,16}, {11, -1, -1, G_BUTTON, 0x15, NORMAL, 0xBL,208,128,88,16}, {12, -1, -1, G_BUTTON, 0x15, NORMAL, 0xCL,88,160,128,16}, {13, -1, -1, G_BUTTON, 0x15, NORMAL, 0xDL,224,160,88,16}, {14, -1, -1, G_STRING, NONE, NORMAL, 0xEL,8,192,64,16}, {15, -1, -1, G_BUTTON, 0x15, NORMAL, 0xFL,88,192,56,16}, {16, -1, -1, G_FTEXT, NONE, DISABLED, 0x1L,152,192,264,16}, {17, -1, -1, G_BUTTON, 0x7, SHADOWED, 0x13L,320,224,64,16}, {18, -1, -1, G_STRING, NONE, DISABLED, 0x14L,8,240,240,16}, {19, -1, -1, G_IMAGE, NONE, NORMAL, 0x0L,248,240,40,40}, {20, -1, -1, G_STRING, NONE, DISABLED, 0x15L,32,256,184,16}, {0, -1, -1, G_BUTTON, 0x25, SHADOWED, 0x16L,320,256,64,16} }; /* ** The program starts here with application ** initialisation... */ main() { void tree_init(), startup(); static short int dum; ap_id = appl_init(); phys_handle = graf_handle(&dum,&dum,&dum,&dum); menu_id = menu_register(ap_id," Print Coder"); tree_init(); while (TRUE) { evnt_mesag(msgbuf); if (msgbuf[1] == AC_OPEN && msgbuf[5] == menu_id) startup(); } } /* ** The function to start the application going once ** the AC_OPEN call to this accessory has been received. ** The virtual workstation is opened before the dialogue ** box is displayed for interaction. When it has been cancelled ** off the screen, the virtual workstation is closed. ** ** Usage: startup(); ** ** void startup(); */ void startup() { void dialogue(); WORD work_in[11], work_out[57]; register short int f; for (f=0; f<10; f++) work_in[f] = 1; work_in[10] = 2; handle = phys_handle; v_opnvwk(work_in,&handle,work_out); form_center(tree_objs,&x,&y,&w,&h); form_dial(0,0,0,0,0,x,y,w,h); form_dial(1,0,0,20,20,x,y,20,20); form_dial(1,x,y,20,20,x,y,w,h); graf_mouse(ARROW,0); dialogue(); form_dial(3,0,0,0,0,x,y,w,h); form_dial(2,x,y,20,20,x,y,w,h); form_dial(2,0,0,20,20,x,y,20,20); v_clsvwk(handle); } /* ** Function to supervise the dialogue. It updates ** the dynamic parts of the object tree and handles the ** redrawing that this requires. It also determines the ** correct code string and will write it to the printer ** if the 'Send' box is used to exit the dialogue. If the ** 'Cancel' box is used then the program is terminated, ** 'Send' causes a restart after writing. The standard ** IO function 'putc()' is not used to write to the printer ** because of the large size overhead. ** This function has no return value. ** ** Usage: dialogue(); ** ** void dialogue(); */ void dialogue() { void print(); unsigned char *scan_line(); objc_draw(tree_objs,0,1,x,y,w,h); do { exit_obj = form_do(tree_objs,edit); switch (exit_obj) { case CANCEL: tree_objs[exit_obj].ob_state = SHADOWED; break; case SEND: if (tree_objs[OTHER].ob_state & SELECTED) codes = scan_line(tree_strs[LINE]); print(codes); tree_objs[exit_obj].ob_state = SHADOWED; objc_draw(tree_objs,0,1,x+320,y+224,64,24); break; case OTHER: if (edit != USERDEF) { edit = USERDEF; tree_objs[USERDEF].ob_state = NORMAL; tree_objs[USERDEF].ob_flags = EDITABLE; objc_draw(tree_objs,0,1,x+152,y+192,264,24); } break; default: if (edit != OFF) { edit = OFF; tree_objs[USERDEF].ob_state = DISABLED; tree_objs[USERDEF].ob_flags = NONE; objc_draw(tree_objs,0,1,x+152,y+192,264,24); } codes = code_table[exit_obj]; break; } } while (exit_obj != CANCEL); } /* ** Function to write a code string terminated by ** '~' to the printer using the BIOS function Bconout(). ** The port used is the Centronics port. The function ** accepts a pointer to the string to be sent and has no ** return value. ** ** Usage: print(string); ** ** unsigned char *string; ** void print(); */ void print(string) unsigned char *string; { while (*string != '~') Bconout(PRINTER,*string++); } /* ** Function to analyse the user defined code string, ** returning a pointer to a character string in the ** correct format for the print() function. It accepts ** a pointer to a string of decimal digits which are ** grouped into threes and converted to characters. The ** output string is ~ terminated. ** ** Usage: codes = scan_line(input); ** ** char *input; ** unsigned char *scan_line(), *codes; */ unsigned char *scan_line(input) char *input; { static unsigned char *output, buffer[8]; static char temp; static int val; output = buffer; while (*input) { temp = *(input+3); *(input+3) = '\0'; stcd_i(input,&val); if (val > 255) { form_alert(1,"[3][Character codes must be|less than 256][ Ok ]"); buffer[0] = '~'; break; } *output++ = (unsigned char) val; input += 3; *input = temp; } *output = '~'; return (buffer); } /* ** Function to initialise the data tree. ** It sets all the pointers of the TEDINFO and ** OBJECT structures to their correct destinations ** in the arrays of strings and/or TEDINFOs. ** ** Usage: tree_init(); ** ** void tree_init(); */ void tree_init() { tree_teds[0].te_ptmplt = (long) tree_strs[0]; tree_teds[1].te_ptext = (long) tree_strs[14]; tree_teds[1].te_ptmplt = (long) tree_strs[15]; tree_teds[1].te_pvalid = (long) tree_strs[16]; tree_objs[1].ob_spec = (long) &tree_teds[0]; tree_objs[2].ob_spec = (long) tree_strs[1]; tree_objs[3].ob_spec = (long) tree_strs[2]; tree_objs[4].ob_spec = (long) tree_strs[3]; tree_objs[5].ob_spec = (long) tree_strs[4]; tree_objs[6].ob_spec = (long) tree_strs[5]; tree_objs[7].ob_spec = (long) tree_strs[6]; tree_objs[8].ob_spec = (long) tree_strs[7]; tree_objs[9].ob_spec = (long) tree_strs[8]; tree_objs[10].ob_spec = (long) tree_strs[9]; tree_objs[11].ob_spec = (long) tree_strs[10]; tree_objs[12].ob_spec = (long) tree_strs[11]; tree_objs[13].ob_spec = (long) tree_strs[12]; tree_objs[14].ob_spec = (long) tree_strs[13]; tree_objs[15].ob_spec = (long) &tree_teds[1]; tree_objs[16].ob_spec = (long) tree_strs[17]; tree_objs[17].ob_spec = (long) tree_strs[18]; tree_objs[18].ob_spec = (long) &logo; tree_objs[19].ob_spec = (long) tree_strs[19]; tree_objs[20].ob_spec = (long) tree_strs[20]; logo.bi_pdata = (long) scisys; } Print Coder Introduction The Print Coder is a Desk Accessory designed to allow alterations to printer status to be made without having to fiddle with DIP switches (which are never that easy to get at !). It is written entirely in Lattice C and the source code is provided. Almost any escape sequence can be sent to the printer from this program - ideal for printing 1ST Word documents in condensed mode etc. Operation On selection from the Desk menu (or the  from 1ST Word), the program displays its dialogue box in the centre of the screen and waits for a selection. There are two ways of supplying codes to the printer - via the preset or option routes: Preset: The escape codes for 10 different functions on an Epson LX80 are stored as presets. These codes may be sent merely by clicking the appropriate button followed by the Send box. A brief flicker indicates that the codes have been sent. The preset buttons code for the following sequences: Elite: M {1B 4D} Pica: P {1B 50} Condensed: {0F} Italic: 4 {1B 34} NLQ: x {1B 78 01} Draft: x {1B 78 00} Double strike: G {1B 47} Emphasised: E {1B 45} Continuous stationery: 0 {1B 19 30} Sheet feeder: 4 {1B 19 34} Option: Selecting the Other box allows access to a free entry line which allows up to six characters to be sent to the printer. The characters to be sent are specified by typing their ASCII codes in decimal using three digits per character - Escape is 27 decimal, 027 must be typed. The default contents of the line are 027 064 which codes for the Reset command for Epson printers. To send the sequence simply click the Send box when the Other box is selected (as it will be when you have just finished entering the codes). Notes The following general notes apply to program operation and modification: i) Although the program was developed for an Epson LX80, most of the preset codes (with the possible exception of the Continuous/Sheet feed presets) should function perfectly on any other Epson or compatible printer. ii) Any code listed in your manual but not supplied as a preset can be sent simply by entering onto the Options line. iii) The state set up by the program will obviously only persist until the next printer reset or until the power is removed from the printer. Although no presets are provided to (for example) turn off condensed mode, these effects can be cancelled simply by turning the printer off and then on again. iv) Customisation of the program to alter preset definitions etc should be fairly simple and, subject to the conditions outlined below, can be done freely. The .BIN file resulting from compilation of the source will have to be linked with ACCSTART.BIN, CLIB.BIN and GEMLIB.BIN to create a .PRG file which should then be renamed from the Desktop to .ACC. The program was written on a 1040 STF with a monochrome monitor - I've no idea whether it will work in colour, please write and tell me if it does. v) All characters from ASCII 0 to ASCII 255 may be sent from the Options line, except the ~ character (126 decimal, 7E hex). This is because it is used as a string terminator in the program rather than the usual C convention of using NUL (0). Several printer commands require 0 to be sent, whereas I can't see much use for sending 126 - if you run into problems then you'll have to alter the program yourself (or pay me to do it !!). Distribution and modification This program may be copied freely and given away to anyone who wants it, in this or any modified form, providing that the following conditions are met: i) No attempt is made to charge for the program or documentation. ii) This file is supplied along with the program file. iii) The Scisys name and logo, as well as 'by Jon Ellis' remain visibly in the dialogue box, and this paragraph remains in the documentation file. If you like this program and would be interested in hearing about any upgrades, or about any other Scisys programs for the ST or Sinclair Spectrum, then please consider sending a small donation (shall we say 2.50, but amounts in excess of this will not be refused !) to me at the address below - cheques to Jon Ellis. Although this software is free, it still took some time to write. Any return on this time will be appreciated, and will provide encouragement to write more shareware. I would also be interested in any comments or suggestions that you have (see, I'm not totally mercenary !!). Jon Ellis Scisys Software 29 Ashridge Drive Bricket Wood St. Albans Hertfordshire AL2 3SR (You could try mailing me at UK.CAM.PHX.JHE10 via JANET, but if the mail gets through to me it will be a minor miracle !) . f t!.. f tDISKMAN ACCgt "5DISKMAN DOCkt 0`$ D.|BfN.NA"/0<NBNuNVH *n(n `fJL0N^NuNVH *n(n `JfS`fJL0N^NuNVH *n(n >.c`0SGJ@n``%0SGJ@nJL0N^NuNVH*n>. <.`0SGJ@nJL N^NuNVJ mB@`p=@gD Jngp0`p =@Jng0.HЎм-@` A-H nBS/./< /< /. NP/N>P/ . м0 _/< /. NP-@ J o мeJng мdS n-Jng&`S0."n мe`2p ".$Լ𒂐=@>RW//.NnP./.NBX0.`N^NuNV.Q/]/Y/U/.N!>?.?.?.BgN!JP>?.?.?.?<?<BgBg?<N!J>?.?.?.?<Bg/.N"Bn`Rn n2.00|(g0.Ю @( fBn>/.N!(X=@0.Ю @h >?.?.?.?<?<BgBg?<N!J>?.?.?.?<N!JP0.`N^NuNV#*# *.#*F#*^.)NJN^NuNV0. @n =@ n2.H0H=@n n2.H0H@n. g 0.@=@n0.`N^NuNV0. @n =@. gP0.@|2n@0.|@=@ n2.H0H|n0.2n`J0.|2n0.@|=@ n2.H0H|n0.2n@N^NuNV nf.,?<N!T=@`.-)?<N!T=@0.`N^NuNV>N|gB@`pR@=@.':NJ| g9'gB@`p=@9'gp`p=@. ?<HNT-@. ?<HNT-@Jg JfHJg.?<INTJg.?<INT.-v?<N!T`@=yGBn`0nB0Rn n m3B.C/<G/<BNPJyGfB@`p=@f 3GJng>GNBW?9GNFT>?9GNT>?9GN T09'N|`Hy'JS@3D0.dy'LS@3D09D|3D3DD3DD0. yD3D3DD3DD09DR@=@09DR@=@09DS@=@.D?<?9GN@X>?9GNFTBW?< /.N\BW?< /.N\BnBn`Bn`>/'P?9'N?9'L?9'J?<?</<':N"RnJnf0.nmTJng(0.R@@n=@.?9GNTRnJnf nmJng>N|gh`\ nf 0<`0<=@=|`&Bn`>//.NXJ@fUn>?./.N0\T nJPfBnJng>N|g`RnJnf0.nmJng(0.R@@n=@.?9GNTRnJnf nPmJnfX>Bg/.N0\>?</.N0\JnfBW?.RW/</.?<N >Bg?</.?<?<N >?<NT>?<?</.?<?<N >?<?</.?<?<N BW?</.N\>?< ?</.?<?<N >/GN3G.-/N XBWBg0.Y@Hr //N .-/NBX.-/N X.-/<-//N N^NuNV.(BNJ|f y(f PH=@ nam nznn 0."y(f"QnAJnm$ nn> Nr4.f.-?<N!T`,``$>RW/?<6N\.-/N X.. /N XBW?</./N ../N XBW?< /./N ..(/N XBW?< /././.N>P/N>P//N 0..A.///N N^NuNV=yGBn`0nB0Rn n m3B.C/<G/<BNPJyGfB@`p=@f 3GJng>N-@09GxHR.?<HNT-@Jg>GN>Gx/./.NnPBW?9Gx/.N\>?9GNT.E/.?9GN^\.?9G09G429EyEސAH??9GN~\BW?9GNT-n` nHRJf-n`S n \g .d .e .ꐮ>/./.RNnP.]/./. N"P. /N XA-H` nHRJf`S n \g мc./.RN X./.N XJng`JgD>GN>Gx/./.NnPBW?9GNT.?<INT>GN3G0.`N^NuNVh.?<HNT-@tPl..3?<N!T`x.G8/<D/<.lN PJ@gXBW/<G8?<=N\=@zl..?<N!T`&.D/N X.G8/N X.//<.N PJ@f>z?<>NT`9G8H.fH9G8H>W?< NTJg(..?<N!T>z?<>NT`l-|G8A-H|` RR| nH"n|HAf nJg n|Jf nJf2 n|Jf(./+?<N!T>z?<>NT`BW/?<=N\=@xmd>x?<>NT./p?<N!T|f&>x?<>NT>z?<>NT`.?<ANTBW/?<?.zB?<BNP-@pBW?.zB?<BNP` .pto .t` .p-@l./.l?.z?<?NPlg./?<N!T`H./.l?.x?<@NPlg./?<N!T` .lpJpnj.?<INT>x?<>NT>z?<>NT.02?<N!TN^NuNV.G8/<D/<0KN PJ@gB.G8?<ANTJf.0e?<N!T`.0}?<N!TN^NuNV~.G8/<D/<0N PJ@g(.D/N X.G8/N X.//<0N PJ@gBW/?<=N\=@mj>?<>NT.0?<N!T|f8.G8?<ANT./<G8Bg?<VNP-@``V`"./<G8Bg?<VNP-@Jf.0?<N!T`.1?<N!TN^NuNV.G8/<D/<1/N PJ@gB.G8?<9NTJf.1I?<N!T`.1g?<N!TN^NuNV.G8/<D/<1N PJ@gB.G8?<:NTJf.1?<N!T`.1?<N!TN^NuNVN .C/<C/<G/<DN"D 3G.1?9GzN"T=@.?9GNT3G.CBg?9GNX3CG43CG6.C?<?9GNX3CF.//Q/]?<BgN#09G4R@HF3Gx>N|fBn`tBn0n"|* p2.0n"|* p2.0. @2n*"00| RnJ@gRn0n*Jf| y(f/?<NT|A _B9G8BW/<D?<GN\>/<D/<2 NnP>N|AHD.2 /<DNBX`.N! n(f0.nf.//Q/]/<&2N!.//Q/]?.?.?.?.?<BgN$H>?.?.?.?<N"P=@Jnm.2?<?.N#X>?.?.?.?.N#,P>N$.`x0.`XN0`fN \`\ND`RN`HN`>N`4N`*.(NJ`U@|b@0@* PN.&2NJ=@| ftBWN$.>N#f>N#`.2)?<N!T`NN^Nu#BjNN/9BjNu#BjNM/9BjNu#BjNA/9BjNuNV3eG|ByG~ByG3GN(N^NuNV# Bv3 G|3 G~ByG3GN(#DBvN^NuNV3 D3 DBn nH|2nB2RRnJ@f3G|3G~Sn3G3GN(N^NuNV3{G|ByG~ByG3GN(N^NuNV#Br#Bz .мZ#B~3dG|ByG~3 G n 3GN( n 0G#BBr#CBz#EB~#DBvN^NuNV#BBr#DBv# Bz . мZ#B~3 B3fG|ByG~3G3GN(#CBz#EB~N^NuNV# Bz . м #B~3&G|ByG~ByG3GN(#CBz#EB~N^NuNV-|B n H"n2R TJ@f#B~3tG|ByG~ .BHS@3G3GN(#EB~N^NuNV# Bv3rG|3G~ByG3GN(#DBvN^NuNV3 B3G|ByG~3G3GN(09CN^NuNV3 B3G|ByG~3G3GN(09CN^NuNV3 B3G|ByG~3G3GN(09CN^NuNV3 B3zG|ByG~3G3GN(N^NuNV3 B3jG|ByG~3G3GN(09CN^Nu#G|Bn"<BnpsNBNuNVBBJlDRBJ lD RB0. -@0.2. An=@ .gDN^NuNVH?BCB..,. f#B <`hlDRCJlDRCn8fzB`0l :HGH`xe`Jge`|fD#B D`#B JLN^NuNV3F0.|Hм$-@=|` nH2nF2RRn nm.GtNB@09G&N^NuNV#FD#FD#GD#G&D#GD#GD#DGt> aF3G&GzpN^NuNV>a*pN^NuNV#G>N 0N^NuNV#G3 G>2N 0N^NuNV3G3 G3 G 3G 3G3G3G3G3G>3N 0N^NuNV3G# G>4N 0N^NuNV#G>6N 0 n 0G( n0G* n0G, n0G.B@09G&N^NuNV#G# G>ZN 0 n0G(B@09G&N^NuNV>MN 0 n0G( n 0G* n0G, n0G.B@09G&N^NuNV3G# G>#N 0N^NuNV#G3 G3G3G 3G 3G3G>*N 0N^NuNV3G3 G3 G 3G 3G>dN 0N^NuNV3G3 G3 G 3G 3G>eN 0N^NuNV3G>fN 0N^NuNV3G>gN 0N^NuNV3G3 G>hN 0 n 0G( n0G* n0G, n0G.B@09G&N^NuNV3G3 G3 G 3G 3G3G>iN 0N^NuNV3G>kN 0N^NuNV3G3 G3 G 3G 3G3G>lN 0 n0G( n0G* n0G, n 0G.B@09G&N^Nu ***  !0x* **(+8+H+"+,( +88 +DH'+Rx`@ !0x+WPH+j@+qX@+xX, H8+@+X@ +:P@%+P@!0x&h0`+:X@%+X@ !0x++ + , , (,? 0,] 8 ,} @ ,@H ,@P ,@X ,`',xl@!0x,, ,0,@',xX@&2':(B()&0:DNXbl_Disk Drive:_aChoose a Disk Manager FunctionFormat DiskDisk Free SpaceCreate FolderDelete FolderCopy FileDelete FileRename FileAbout DiskManExitFormat Which Disk?Disk ADisk BNumber of Sides?SingleDoubleFormatCancelOKCancelDisk Manager allows access to TOSdisk and file management fromwithin any program using the GEMmenu interface.This program is distributed asshareware, which means if youfind it useful, please send $15to: MichtronDiskManager accounting576 South TelegraphPontiac MI 48053Copyright 1986, Daniel MatejkaFineOK[3][This diskette is|write-protected][Try Again|Cancel][3][Can't format this diskette.|Please insert a fresh one][Try Again|Cancel][3][Insufficient free memory|to format a disk][ OK ]This disk has bytesavailable to user[3][No such drive is attached][ OK ]Disk in Drive A:Total ClustersClusters FreeBytes Free[3][Insufficient memory free|to copy a file][Abort Copy]Select file to be copied[3][No such file exists][Abort Copy]Enter copy's name[3][The system gets very|confused when copying|between two disks|in one drive.|Use two (A and B).][Abort Copy][3][The copy's name must|be different from|the original][Abort Copy][2][Copy's name is already used][Copy|Cancel][3][Can't open the new|copy file][Abort Copy][3][Error reading source file][Abort Copy][3][Error writing copy;|disk is probably full][Abort Copy][1][Copy finished][ OK ]Select file to be deleted[1][File deleted][ OK ][1][Can't delete this file][ OK ]Select file to be renamedEnter its new name[2][This name is|already used][Rename|Cancel][1][File renamed][ OK ][1][Can't rename file][ OK ]Enter name for new folder[1][New folder created][ OK ][3][Can't create this folder][ OK ]Select folder to be deleted[1][Folder deleted][ OK ][3][Can't delete this folder|It may contain files][ OK ] Disk Manager@:\*.* DiskManager Functions [3][Please close a window|then call Disk Manager][ OK ]V $,(&R@ 8   ,      D0D*fV$J0&" $ 2" .& &   :     fP        X   ,8  $              $  " *$   4:        $  zf  $                 f8000000 ************************************* Number: 26 Name: DISKMAN.ACC Address: GORDON Approximate # of Bytes: 15120 Number of Accesses: 7 Library: 6 ************************************* Description: A shareware desk acc from MichTron. This program was to good not to publish but we really couldn't charge 29-39 dollars for it. So we are going to try this. This desk acc will let you Copy, rename and delete files, Format a disk, see how much free space is on a disk, and create or delete folders. Try it. If you like it send us a few dollars. If this works we will probably have more like it. . n t1.. n tKEYSHOT ACCot 2#KEYSHOT DOCst 6` >.|4N.NA"/0<NBNu/<?< NA\#D/?< NA\NuHBy:L; |@C?<N>T. ?<N T`V y:f yN>3>RW/<?<GN>\09|A:=|Bn`0n2nRnRn nPl |2nJf0n\Rn yRf.Bn` 0n"| 4nRnRn nm yRfJBn` 0n"| 4nRnRn nm09:Hм12n@.P/<~/<N ,PJyPf By8`8J9~f By8`&=|OSno |2n \fRnBn` |2n2nRn nOl 0.nmBn`0n2n~RnRn n?l |~2nJfBW/<?<NN>\=@m(. ?<N T3|f By8`RBy 9:f9H|3>/<?<6N>\=@ 9r #bl. ?<N TBy8`BW/<?<\3l. ?<N TBy8` yRf@.T/<?9?<@N>P=@l. ?<N TBy8`^.:/<?9?<@N>P=@|l. ?<N TBy8`.P=@| l. ?<N TBy8` yRfD. /<\?9?<@N>P=@|\l. ?<N TBy8`.\/<}?9?<@N>P=@|}l. ?<N TBy8`D>?<>N>T=@l. ?<N TBy8`By8` `|(gp`N^Nu#\NN/9\Nu#\NM/9\Nu#\NA/9\NuNV3X0.|Hм -@=|` nH2nX2RRn nm.NB@09N^NuNV#Xf#2j#`n#r#v# z#f> aF3pN^NuNV>a*pN^NuNV3`3 b3 d3f3h3j3l3n3p3r3t3v3 x3"z#$3(|3*~>NN n,0 n00 n40 n80 n<0 n@0B@09N^NuNV3`# >4NNN^NuNV## >ZNN n0B@09N^NuNV3`# >#NNN^Nu *.NEO*.PIX[1][ COMPUTE!'s Snapshot | Screen image has been saved. | Choose file type: | ][Cancel|NEO|DEGAS][1][NEOchrome can't load files |in this resolution | ][Cancel|Go ahead][1][File exists.|Want to replace it?][Cancel|OK][1][A fatal error has occurred!|Gotta go...][OK][1][Sorry, screen buffer's empty,|so there's nothing to save.|Press Alt-Help to store a|screen, then try again. ][Cancel][1][Sorry, not enough room|on disk for this file.][Cancel] .  Snapshot NEO/DEGAS ( $  *             (                        $    SNAPSHOT.ACC This desk accessory takes a "snapshot" of the present screen and saves it to disk in DEGAS format. A bug persists in mono saves - click the "SET COLORS" button in DEGAS if the colors are reversed. Saves in "SCREENxx.PI#" in the default directory, where "xx" is a sequential number from 0 to 99 and "#" is the proper number for this resolution. Hold down the ALTERNATE key while selecting to remove the mouse pointer from the saved picture. By Russ Wetmore . v t7.. v tMINIDOS ACCwt 8CDMINIDOS RSC|t J `5 N.|DN .NA"/0<NBNuNVByF3F3F3G3G3G3G*3G83GF3 GT#^\N2.;,?9N4T3E.;7N5jJ@f.;C?<N3T`aN^NuNV`&.N3, y(f09yEfa`N^NuNVBBgN4T>N53G>GRW/<4?<GN5\-|G09G|A"nR n:R./<4a)XHѮ./<7Ra)XHѮ nBBWa)a yJ&fBWa+N^NuNVBW/9FN3hX3J&>J&/9Fa-nX09J&`na`|a"`ta!H`la`daH`\a`TaB`Nal`Ha"`Ba ` /.a.X .мT-@ n-P\>/.a-X> a(=|By-|^\BWa>7Pa~>/<8a-X>/<83a-X>/<8Ca-X.80y/a+XRy.83/9,a+X.8C/9H a+X./<8a'4XHѮ`<> /.a-X> /<7a- X./9a&X.7/9a&X>/.a*6X>/.a,X>/<8a,X yf$./<;a&X.8/<;a&X`P yf$./<;a&vX.8/<;a&dX`"./90a*X.8/90a*X>/.a)X./<7a&"XHѮ0.HH@RnJ@f n R n R>9/<7a*XJ@g n R n RJy7HgX9GH97f>at.^\ .^\/?.?<@N5P-@l .D.N4`r=|`P-|^\>N5Jf.;?<N3T`@` nH>?<N5TR .갮f.<?<N3T|g$Jngnp ^b^\=|`609H H@|0"|^\4n09H 3SnJnn.^\/<?.?<@N5PJy7Hg>?<>N5T> a&BW/9Fa'XN^NuNV.<?<N3Ta#J@fp` >/<G?<=N5\=@o>?./?./N4p` 30.N^NuNVByI$.<~BgN3TS@37PaJ@fTaJ@fL09JRyJZ3.]?<BgN5X>a"aذ|g>a$BW/9Fa%XN^NuNV.?<BgN5X>a" .мT-@ n P-PBW/.N3hX=@ nP>/.a&X>a$BW/9G4a%X nf .Am .Zn .H``pN^NuNV-|^\Bn` n(H|"n)H|AA3 n( H=@ nJf.?9G?9?9JX?97PB/<^\?< N5Jg.JyJ(g3G^aa&3G^`aJyJ(gB@`p3J(-|^\>?9G?9?9JX?97PB/.?<N5#GbJGbg.N^NuNV>7P?<N5T-@Jf.=?<N3Tp` n3T n3GT n3T n3T n3JZT n3JRT n3JPT n3zT>BgBg?<?97PB/<^\?<N5#GbJGbg.=?<N3Tp`9^hH@9^gHA39^iH39^kH@9^jHA39^lH3*9^nH@9^mHA3|9^pH@9^oHA39^sH@9^rHA39^uH@9^tHA3(9^vH39^yH@9^xHA3G`B@N^NuNV09JRyJZ309H29(309H29(H@R@3JX>BgBg?<?97PB/<J\?<N5#GbJGbg.=5?<N3Tp`B@N^NuNV09H=@0n"|J\0H=@n0n"|J\0H=@n09HH@J@g0.@2.AA3`0.|@n3N^NuNV09U@GyJP3aN^NuNV09H29(309H29(H@R@3JX yfByG`*09JXy(o09(yJX3G`ByGN^NuNV.]?<BgN5XJy7Jg>`>/.aZXJy7Jg>`>/.ahXJy7Lg> `> /.a"XJy7Lg> `> /.a0X>aBW/.N3hX=@0.`(By7J`:37J`0By7L`(37L```|gҰ|g԰| gذ| g` ng nf>/.aX>aBW/9FaX nfa>aBW/9FaXN^NuNVBnBnBnBn.?9GBgN5X .м# yBP .мt#H yH3>a>/.aNX097Jy7LfBWan>7Ja ^=@ nhnB@`p37N.?<HN5T#J* 9J*r =@097NR@ ?0.H=@aJ@g` 9JT##J.Bn097Jy7Lf JngBWa>/.aX2.H HA|0Af>/.aX2.H |0Af yBP>/.aX>/.a4X`BGb>/.aXBn``> ?.?.?<?97JB/9J.?<N5#GbJGbg.=L?<N3T`J.Rn097NR@nnRn0.n@RnDl nPmZBn097Jy7Lf>a>/.aX2.H HA|0Af>/.aX2.H |0Af yBP>/.aX>/.aX`Jnf*>7La "ng.8?<N3T`Rn>/.apXBn``> ?.?.?<?97LB/9?< N5#GbJGbg.=c?<N3T`Rn097NR@nnRn0.n@RnDl nPm0=n nPmZ>/.avX|0f>/.abX|0f yBP>/.aX.={?<N3TN^NuNV097J|A9p9<0./м9.?<N3TN^NuNV.=?<N3Ta6J@g./<GaXHЎ @B(.=?<N3TaJ@gl.?<HN5T#J*r 9J*#J*r 9J*#J*a J@g,/</9J*N1P#J*.G/aXN^NuNVH BBBW/.?<=N5\=@m>/. ?<=N5\=@l0.D@>N4B@`2` *yJT(yJTJ*./9J*?.?<?N5P-@m./9J*?.?<?N5P-@l> N4`JfJf.>=?<N3T`B .o .` .-@` R  fRHf @RDm༮nH>/<9aX>/<9aX>/<9aX>/<9aX.9/.a>X.9/a0XBn` M2nh |9z2nn>J.g( .]g .[g ."g .\g .|f |9z2n|.> L2nP |9z2nnWJ.g( .]g .[g ."g .\g .|f |9z2n|.WRn nm6.9z?<N3T``>?<>N5T>?<>N5TJL0N^NuNV.?9GBgN5XJy7Hg>`>/.aXJy7Fg>`>/.arX>arBW/.N3hX=@0.`,By7H`:37H`0By7F`(37F`ad```U@|b@0@9 PN n g n f>/.aX>/9Fa X>aBW/9FaXN^NuNVB#~J*a6J@gZ 9JTм-@aJ@g:ByBW/<GadXBGfBW/<G?<=N5\=@l0.D@>N4`.>[?<N3T>N5-@>N5-@>/./.?<N5 .>?< N5T>N5`R./< ?.?<?N5P-@l .D.N4>?<>N5T`HaJJ@f .ѹGf`>N5>?<>N5T>/./.?<N5 N^NuNVJy7HfBn`Jy7Fgp`p=@Bn`0.HйGf0op` y2nP ng( . g . g . g . m` .lX.H>?.?<N5X> N5J@g2>N5@| fp`*`>N5@| fp`Rn n mBB@N^NuNV>/<:"a$X.:"/ /<:>aX.:>/9aX>/<:RaX.:R/90aX09@|H |0:`09@|H H@|0:a09|H |0:c09|H H@|0:d09r `|_H |8:g09r `|_H H@|0:g.::?<N3TN^NuNV.>BgN3TS@=@>ah0.|A:}>/<:aX.:/9H aX>/<:a^X.:/9,aX.:r?<N3TN^NuNV>RW/?<6N5\A-HA-HA-HA-H n/ n/ n/N1\P/N1\P#, n/ n/ n/N1\P/N1\P,#H 9,йH r N^NuNV.>?<N3TN^NuNVBn.>?<N3Ta J@g.*/<Ga 8XHЎ @B(*.z/<Ga XHЎ @B(z./<Ga XHЎ @B(.8/<Ga XHЎ @B(8A*-H n *g n ?f 3G` nHRJf.?U?<N3TJyGgB9Ga J@g.?<HN5T#J*r 9J*#J*r 9J*#J*aJ@glBy`6J9GgJyGg.G/9/<Ga P./9/za PJnf|.?9FBgN5X .м$-@ n-P&&> /.&aX .м<-@ n-P"\">/."apX>a =|> /.&aTX.&/9a DX>/.a X>/."a(X."/90aX>/.a dX.G/a6XJ@gBW/8aXJ@g>a "BW/9Fa "XN^NuNVBGfBW/.?<=N5\=@l0.D@>N4B@`>/. ?<=N5\=@oF.??<N3T=@|>?<>N5T>?<>N5T0.W@`(`N4>?<>N5TB@``.JT/9J*?.?<?N5P-@l4 .D.N4>?<>N5T>?<>N5TB@`.JT/.?.?<@N5P-@l2 .D.N4>?<>N5T>?<>N5TB@`< .ѹGf 9Gf0m@>?<>N5T>?<>N5TpN^NuNV.??<N3TaFJ@g*.?9FBgN5X .м$-@ n-P ./<GaX=@> 0.W .2.HЁ/a ~X>aBW/.N3hX=@>/.a X>a BW/9Fa X ngz .м<-@ n P-P./<G/<GaP.G/./<GaP.G/Bg?<VN5P=@g0.D@>N4N^NuNVa J@g`> /<:a X.:/<GaX.:?<N3T|g&.G?<AN5T=@g0.D@>N4N^NuNV.]?9G*BgN5XJy7Ng> `> /.a `> /.a JXJy7Pg>`>/.a XJy7Pg>`>/.a X>aBW/.N3hX=@0.`.By7P`<37P`237N`(By7N` aV````Y@|b@0@: PN nf>/.a X nf>aBW/9FaXN^NuNV.]?9GBgN5X .м# yBP .мt#H yH3>aBW/.adXBn`">a>/.aXJGbf Rn nPmJGbfa`JGbf.@+?<N3T yBP>/.aX>/.aLX|0f>/.a8X|0f>av>/9G&ajXBW/9G&afXN^NuNVJy7Nf nm y7Nf nlBn`=|>/>/BgBg?<?97PB/<^\?< N5Jg.@Z?<N3T`=|` |^\2nBRn nm^\^]^^>BgBg?<?97PB/<^\?< N5#Gbg.@r?<N3T`D>BgBg?<?97PB/<^\?< N5#Gbg.@?<N3TN^NuNV0. R@HP"y2>/.aX>/.aX=@ n0f >/.ahXN^NuNV .м$-@ n-PBn`( n2n2. Ҽ; 4.H҂"ARn n m>/.abXN^NuNV0. Юм -@ nH=@ n9l0.R@`p0=@0."n> /.a X0.N^NuNV.U/<G/<GN4jPBW/9FaXJnfB@`.G/<G/<GaPpN^NuNV./.aFXHѮS`S n *g n .gR./. aXHѮ nBN^NuNVBn`Rn n "nRR nJf0.N^NuNVB?<N4T0.мF.0. @"|F?0BgN5X0.мF. 0.мF/ 0.мF/P0.мF/\0. @"|F/0N4 0. @"|F> 0. @"|F?0 0. @"|F?00. @"|F?0?9?9?9?9BgN30. @"|F> 0. @"|F?0 0. @"|F?00. @"|F?0?<?<?<?<?<N30. @"|F> 0. @"|F?0 0. @"|F?00. @"|F?0?<Bg0. @"|F/0N4B?<N4TN^NuNVB?<N4T0. @"|F> 0. @"|F?0 0. @"|F?00. @"|F?0?<?<?<?<?<N30. @"|F> 0. @"|F?0 0. @"|F?00. @"|F?0?9?9?9?9?<N3B?<N4TN^NuNV.Y/U?. /.N5, 0. Юм#H yH=P0. Юм#H yH=PJn fBW?<N3FT>PW?.PW?.YW?.YW?<Bg/.N4N^NuNV> /.a>X> /.aON5J@gp`x`6.?<N5T> /.?<NN5\J@gp`F39H3-| n3-| n#0#B@N^NuNV.J*?<HN5T#JTJJTc J*l.@?<N3TB@` 37DpN^NuNV` n R0. Sn J@fN^NuNVBBJlDRBJ lD RB0. -@0.2. An=@ .gDN^NuNVH?BCB..,. f#D <`hlDRCJlDRCn8fzB`0l :HGH`xe`Jge`|fD#D D`#D JLN^NuNV3\0.|Hм5-@=|` nH2n\2RRn nm.NB@09N^NuNV#\Gj#J2Gn#dGr#Gv#Gz#vG~#Gj> aF3pN^NuNV>a*pN^NuNV#>N2NN^NuNV3d3 f>N2NN^NuNV#3 d>2N2NN^NuNV3d3 f3 h3j3l3n3p3r3t>3N2NN^NuNV3d# >4N2NN^NuNV3d>5N2NN^NuNV#>6N2N n 0 n0 n0 n0B@09N^NuNV## >ZN2N n0B@09N^NuNV3d# >NN2NN^NuNV3d# >#N2NN^NuNV#3 d3f3h3j3l3n>*N2NN^NuNV#3 d>,N2N n0 n0B@09N^NuNV#>nN2NN^NuNV3d3 f>pN2N n vB@09N^Nu#DNN/9DNu#DNM/9DNu#DNA/9DNu \*.*F FFFFFF*6F@F$A:*.* # filename ext 12345678 DISK No _____ free bytes: 12345678 used: 12345678 [1][___________________________ ][Cancel][1][folder: FILENAME EXT ][Go into| Next |Cancel][1][deleted file: FILENAME EXT ][Repair| Next |Cancel][3][Source and destination|have not same format][Abort][1][Insert source disk|in drive X][ OK ][1][Insert destination disk|in drive X][ OK ][1][File differ at line: 123456 |file offset: 12345678 |SRC: abcdefghijklmnopq |DEST: abcdefghijklmnopq ][ OK ]TT$,T:6[1][FREE MEMORY| |12345678 bytes ][ OK ][1][FILENAME.EXT| |Size 12345678|Date 01/01/86 ][ OK ][0][ Disk: A | | Bytes used: 12345678 | Bytes free: 12345678 ][ OK ][1][Delete file: ____________ | ][Cancel|Delete]%%%%%%%%FORMATTING READING WRITING Mini-DosMINIDOS.RSC[3][MINIDOS.RSC file not found][Abort][3][Memory problem][Abort][1][ ***** MAIN DIRECTORY ***** | |Source drive ][ A | B |Cancel]disknamedisknamefolderfolder[3][Printer problem][Abort][1][Another disk][Yes|No][1][ ***** MAIN DIRECTORY ***** | | select destination file | in the file selector box][ OKAY! ][1][UN-DELETE | |Choose drive no][ A | B ][3][End of directory][Exit][3][write error][Abort][1][Done...][ OK ][3][Read error][Abort][3][Read error][Abort][3][Read error][Abort][3][Read error][Abort][3][Read error][Abort][3][Write error][Abort][1][Backup complete][ OK ][1][ TO COMPARE FILE | | first select source file | in the file selector box][ OKAY! ][1][ Now select the destination | | file in the file selector box][ OKAY! ][1][ File are same ][ OKAY! ][3][Hit a key to start|hit a key to pause|hit twice |to exit][ OK ]vE[1][DISK INFO | |Choose drive no][ A | B ][1][Written by Alain Birtz][ooooh!][1][ TO COPY A FILE | | first select source file | in the file selector box][ OKAY! ][1][ now select the destination | directory in the file selector box][ OKAY! ][3][ File already exist ][Replace|Next|Abort][1][ TO RENAME | | first select old filename | in the file selector box][ OKAY! ][1][FORMATTED!][ OK ][3][Format error][Abort][3][Write error][Abort][3][Write error][Abort][3][Write error][Abort][3][Not enough memory][Abort]   $" X     f  ( ,   B*      " $   $".,80 0Z,D  "                    *  N ,( V(*   2R. 4   f     . T $@@ *  ,       P 0         ":    4  $|,6  *<$6    * 26  J4 "          r        *H$8\       f  $               x@$ [ DeleteCopyRenameShowFILE OPERATIONInfoCompareUn-DeleteFormatCopyDISKInfoMain DirectorytotoFilePrinterExitFreeRAMOld name is ________________________New name: ____________XXXXXXXXXXXXRENAME FILERenameCancelCopying file: FILENAME.EXTSize: 12345678 bytesPrinterScreenOUTPUTAsciiAll codeTYPEExitExamineEXAMINE THE FILEFORMATTING TRACK NO:DISK OPERATION PROGRESS DISK BACKUPSOURCE DISKDESTINATION DISKCancelBackupABABFORMAT A DISKTarget:Disk BDisk ACancelFormatSide:SingleDoubleUN-DELETE FILEWorking...Give the first letterof the file (upper case)_LETTRE: _A OKCancelMAIN DIRECTORYFile: filename extSize: 12345678<KLz    JYZ ;   $ +0 7M R Z  - d kp u6/ :   #  Rn  % '$ 4  IQX  _ e n s  x  `# 00a  $           5 &    !( /  6   < 5C *   [ f| %,  ^~ & F f >% ""j 2 R r J.  tN..  tMTDISK ACCt O MTDISK RSCt X| `.|"N .NA"/0<NBNuNVH NT3##V.e?9#VN.T3# 3v*|(|F#p$#t$.BW/<#*/</<xN .#/<NXB?< NT.##R<a.?< NTa JL0N^NuNVH`.#N y(#f09#y# fa=@ nfb.Q/]/Y/UN >B?<N T>Naza .NBWNB?<N T` .N.#/<NX`DJLN^NuNVH.Q/]/Y/U?<BgN.////9#*N>?.?.?.BgNP=@>?.?.?.BgNP>?.?.?.BgBg?<?<2?<N>?.?.?.?.N"P>?.?.?.?<Bg/9#*NPBF`*By#>/9#*NX>|fa`p<JFg y#*p1@"y#*3@|fp`a nBWBg?< ?<?.?.?.?.?<N>N\>?.?.?.?<NP>Nv0JLN^NuNV. ?.N^T y#*Bh>?<BgBgBg?</9#*NPN^NuNVH.#Na8>|g0`"a>|g0`az>|g0`pJLN^NuNVH y#fl3#./9N\X./9N\XBG`.0V@м @p1@2VAҼ"A"i2RG|mp`pJLN^NuNV y#gp`./9$ N~XJ@f.?<aTB@`./9$ N~XJ@f ap`p>a6J@fL.?<afT./9$ N\X>?<BgBgBg?</9#*NPB@`3#aJ@fB@`pN^NuNV y#gp` yvf./9$ N\Xp`>aJ@fL.?<aT./9$ N\X>?<BgBgBg?</9#*NPB@`63#aJ@fB@`"p3"y2p3"y2pN^NuNVH.$ NH*.p .?<HNT, nf. 29#HЁn nB@`B`3###"p`0 nf( й#"n nB@``3###"pJLN^NuNV09#`ha3v##RrB@3D3#`X yvf3#vaP3#.`a3#.3#va.````J@g|g|g|g`3v#N^NuNV y^#op`p3X09#HR@3Z09ZR@3\09Z@yXR@3^09#yZ29XHAS@3`09#@3j3h-y#" yvf.?<HNT#F yvf.?<HNT-@ ..?<HNT-@.?<HNT-@.?<INT .м#F-|.B?< NT-@ n F.?< NT.?<&NTN^NuNVH*|$-|. Um n m Uf n l3v n #F*@3X3Z3 \3 ^3`3h3j# r0-*3|3D/< <F/N,P3#.?9#NT./9N\X./9N\X y03 y03 yp03&|r(|~-|v-|#" n##N n##R## &n n  n r(09D`:p3"y2` y#f p3D> y$f p3D>JGf( y#g y#f.?<aTB@` 3D|pJLN^NuNVHah*|B?< NT##&~ 29D㠀#R*#r.#&?< NTJL N^NuNV.F?<INT-|r-|~-|v-|B?< NT##& n # n " n #N y#f n #R.#&?< NTN^NuNVH.?<HNT.<9PHp nH.$/9 N\X.(/9N\X yBPByp3&"y(2`.?<HNT#JNDJLN^NuNVJJg.,/9 N\X.0/9N\XB@3"y2p3&"y(2.#?<-?<N XBW?<NT.J?<INTN^NuNV`copyright 1986 by J.Roehrig H#r"#nr#v#N#v#~# #~49v|f,"<? yN 9."@"Q#N#^ yF09#"SB Q49v|f |Rp-"yFQLN^Nu09Dog y"N <RNu09Dog y#NN0/ H o2/ SA"yF0/gIp QQpNu09Dog y# N09#.|f 3#.pNupNuH49PHp #8#J4/<?<-?<NMP##/<?<?< NNPLNu$OfNj]J jf0 jf("y3##2* aB"y/?#Ns jf jfpa$( aȴfpNs y#NF'a$( f.f(EA<@< @pNu$( ang"P(!B pNu 9м.F#fܰbpNuHa$$( ga&$P2(a!BLNsA4CNuRetNuNVH>..N0@HЮ.?BgNX-n 0G*P n < n 0(`\ 2Ём "n #@ n 2"u !Q`H 2Ём "n #@ n "M4!i ``|| b@0@D PN n <|fn.a JL N^NuNVH*n`J0-`&. /-N\X m0`$ m0``|| b@0@x PN UfJL N^NuNVH*n`J0-`&./- N\X m;P`$ m;P``|| b@0@ PN UfJL N^NuNVH *n(n 8>-9G9m)m|g|g |g|f. /, N\X)m M P@DfJL0N^NuNVH? *n>.<.:.8..a0n (P` >???Bg?/ NP6|fJL0N^NuNVH*n(n &Mf JL8N^NuNVH *n(n <aJgHHAg%H$HAJL0N^NuNVH*n 0m 9op`B@<`R 0m 9nJFgS`B@BG` H@| 0m 9o0JL N^NuNVH>.*n :l0D@>BF0H H@|0"M4FRFHǏ nJEl M2F-RF M2FB.a JL N^NuNVH*nBF.a8:SE`$5`H> M2F"M4E0"M4ERFSEEmJL N^NuNVH*nBG`RGJf0JL N^NuNV3#Z0.|Hм-@=|` nH2n#Z2RRn nm.#NB@09#N^NuNV##Z"##0"##b"##"####$l##"#> aF3##pN^NuNV>a*pN^NuNV##>NN^NuNV##3 #b>2NN^NuNV3#b3 #d3 #f3#h3#j3#l3#n3#p3#r>3NN^NuNV3#b# #>4NN^NuNV##>6N n 0# n0# n0# n0#B@09#N^NuNV>MN n0# n 0# n0# n0#B@09#N^NuNV3#b# #>NNN^NuNV3#b# #>#NN^NuNV##3 #b3#d3#f3#h3#j3#l>*NN^NuNV##>nNN^NuNV3#b3 #d>pN n $lB@09#N^NuNV3#b3 #d3 #f3#h3#j>dNN^NuNV3#b3 #d3 #f3#h3#j>eNN^NuNV3#b>fNN^NuNV3#b>gNN^NuNV3#b3 #d>hN n 0# n0# n0# n0#B@09#N^NuNV3#b>kNN^Nu#"NN/9"Nu#"NM/9"Nu#"NA/9"NuNVH?BCB..,. f#" <`hlDRCJlDRCn8fzB`0l :HGH`xe`Jge`|fD#" D`#" JLN^NuNV/. /.N, 9"N^Nu 09   Z^bNETHARD@__@____ NET-Disk______mtdisk.rsc@__@__@__[3][ RAM Drive Size missing! ][ OK ][3][ Insufficient RAM ! ][ OK ][3][ Insufficient Ram ! ][ OK ]@__@__@__[3][ Drive select missing ! ][ OK ]@__@__@__@__DDDD..lllHl...l."    *  4,(   8 J , "   (  P     "     "      *   .        6 8   b  *L,<,fp $                 "f >$ x |RAMDISKONOFFRESIDENT123KByte:___999CCDEDRIVESPOOLERONOFF123KByte:___999RESET RESIDENT RAMDISKCANCELOKMarkt und Technikdesigned 1986 by NETsolutions?qq?q?q?q?qppwpwpw_PVpp???ww{{yyxxx|x~x>x?xx8x8xpxpxxxxxxxxx~x><??ǀ<<<x~~?????? 4W 0b0#04D@" "0Tn0/&0$,A=AK X^A_gAos} 2 - 04  ,   OQ S  U  Hdhk   '  " '     .  t[..  tRAMFREI ACCt \ RAMFREI DOCt `` 26N N K mNf]` m"m -So Q m -SBQ(m)MO*mNN*?<NH?<A?<NAX <B@SfLNuNVNHl?,TN\9@`HlHlHlHlHlHlBgBgHlBgBgBgBgBgBgBgBgBgBg?,?<?<?<N<9@0,|g.0,`|(g`0,lfN``0<frN^NuNuNV/NtX9@Rg0<`0<N^NuNV?.?<LNNXN^NuNV/ A&H`0+ |g/ N*X A"Ҽm?.NT&_N^NuNV/ &n/ NDXJ@g0<`00+ |g /+NTXBk ?+ N,TJ@g0<`0<&_N^NuNVH&n0+ |f0<`.0+ |gL0+ |f0<`l0+ |g?<B?+ NP?/+?+ NNP @f0<`6k -K k o?<B?+ NP n!@&Bk0<LN^NuNVH$.". BnJlVnDJlRnDvd`Bbd nmDdD-@-A LN^NuNV nl <`?.?./. ?<BNn -@ m .`?<?.B?<BND -@?<?.B?<BN* -@ nf .Ю -@ `$ nf .Ю -@ `0.g <`b . oHn . /?.?<@N Bg?./. ?<BN ]|9@Rg <` `BlR . N^NuNV/.?<INr\N^NuNVBn`&0.A"0nf0.A"BPRn nLmN^NuNV?>.=|0A""HPgXHf0(>N^Nu)I)J)_NA"l$l/,NuNVH0&n$n -KfSg` .L N^NuNV n "n fN^NuNV0. Sn J@g6 nH| f?< ?<NzX nRH??<NbX`N^NuNV0. Sn J@g nRH??<N4X`N^NuNV0. Sn J@g nRH??<NX`N^NuNVH0&n $KA2-H nf?./ N4\=n`H nf?./ N`\=n`* nf?./ Np\=n` -KBn?.NPTJ@f ndH| f |o@ H-@/./.?.?<@N2 9@RHg0<`0,Rn/./<?.?<@N 9@R @g0<`hRnR -@`R``` 6.ƼЃ$@ H-@/./.?.?<@N =@9@RHg0<`BlR0.L N^NuNV=| lRn0.A- . / < /NBX м0Rn2.A . / < /N X-@ nBn` 0.nA nRn0.no0.Rn nBN^NuC"2"2 2"2"2"22"2"2"22"2x9|Nu FREIER RAM[0][k frei][OK]CON:AUX:PRT:  RAMFREI Document This little ACC.essory should be on your boot disk (not in a folder). See YOUR SECOND ST MANUAL for an explanation of setting up and taking down ACCessories. Point at the ATARI symbol in the upper left corner, and click on RAMFREI. You will then be told how many kilobytes of memory are left for use. Andreas Ramos Aarhus 68000 User Group Jaegergaardsgade 142.2 8000 Aarhus Denmark .  ta..  tSCHNAPP ACCt bSCHNAPP RSCt j`"N N4K mNf]` m"m -So Q m -SBQ(m)MO*mNN*?<NnH?<A?<NAX <B@SfLNuNVNJ@f0<``Hl0Hl.Hl0Hl0Hl2Hl4BgBgHlBgBgBgBgBgBgBgBgBgBg?,6?<?<?<N :<9@,0,,|g(0,|(g`0,$lfNNf?,PNT0<fxN^NuNuNVN HlHlHlHlN"9@RHl?,vN n\9@HlNXJ@fHlN?<NV\N 0<`Hl\BgBgNP0<N^NuNV9lRPBn`9|0.RnA0 n mHlTHlPHlN 9lTN9lVL?<N0T)@HlT?<?,PNDP9l\JN^NuNVH><<`RG nH|f0RF n 2RG nH|fLN^NuNVB-n`R nRf .N^NuNV nR n R fN^NuNV?/.NX>`* nH|.f0<`: nH|\f`SG GnHl/.N"P/. /.NP0<>N^NuNV|Hn/. NjP nH|ft?<NT|A n nA/HlN4PBg/.?<GNP/.NX" .Ё//.NP/.NX" .Ё/HlNP/.NX" .Ё//.NPHn|/. /.N  n|fd/.N|X=@~`Sn~ n~H|\fRn~0.~ nB/./.NjP/.N8X" .Ё//. NLP`*/.HnN

\0<`|/.NzX=@HlHl`HlfHlNXJ@g6B?<N \HlHlNP/./.HlN J@gBn/.?<IN<\BBgN \0.N^NuNV nT0J0,HlNn lHl0<`^ nT0H0,FlLn lFl0<`8 nT0F0,DlNn lDl0<` nT0D0,BlLn lBl0<` nT0B0,DHR@=@ ,)@H0,NR@H9@P0,NR@9@L0,LR@9@NBlR9lJT .)@49n<9lD89lB:Bl>9lJ@=lH=lF0,HlD=@0,FlB=@0<=@=@=lD=lBB?<N ,\Hl4HlHHn?<?,PN B?<N \0<N^NuNVHnHnHnHn/,\N.0.HT@JH-@/.?<HN X\-@ n0<`?.?.?.?.Bg/.NP?.?.?.?.?< ?< ?,2?,4?<NB?.?.?.?.?<Bg/,\N~Bg/,\N\=@Bg?< BgBgBgBgBg?./,\N?.?.?.?.?< ?< ?,2?,4?<N?.?.?.?.?</.N/.?<IN N\0.N^NuNV nH|A=@?.?<N $X/./.NP=@ nfBBgN\\Hl&?<N\0<`hBg/.?<N X0<`?.?<>N X0<N^NuNVHl?<N n\Bg/.?<NN ^P f&0,$-@0,@ .갮 m0<`PBgHn?<6N P .U/ ./N / ./N -@ .м m0<`0<N^NuNV0.HR@=@ ,)@H0,NR@H9@P0,NR@9@L0,LR@9@NBlR9lJT .)@49n<9n89n:Bl>9lJ@B?<N\0. |g`h=n=n0.nS@=@0.nS@=@0<=@=@0.S@=@0.S@=@Hl4HlHHn?<?,PN ^`n`|g`d=n=n0.nS@=@0.nS@=@0<=@=@0.S@=@0.S@=@HlHHl4Hn?<?,PN B?<N\N^Nu)I@)J<"/0<NB"l@$lNX9@tg0<`0<N^NuNV?.?<LNzXN^NuNV/ A&H`0+ |g/ N*X A"Ҽm?.NT&_N^NuNV/ &n/ NDXJ@g0<`00+ |g /+NdXBk ?+ N,TJ@g0<`0<&_N^NuNVH&n0+ |f0<`.0+ |gV0+ |f0<`v0+ |g?<B?+ NP?/+?+ NP @f0<`@k 0Hѫ`$ k o?<0+D@H/?+ NP'@&Bk0<LN^NuNV/BnJlRnDJ lRnD 0. -@0.n0. nngD -n N^.JNuN^NuNV nl <`?.?./. ?<BN -@ m .`?<?.B?<BN` -@?<?.B?<BNF -@ nf .Ю -@ `$ nf .Ю -@ `0.g <`b . oHn . /?.?<@N Bg?./. ?<BN ]|9@tg <` `Blt . N^NuNV/.?<IN\N^NuNVBn`&0.AD0nf0.ADBPRn nLmN^NuNV?>.=|0AD"HPgXHf0(>N^Nu)I@)J<)_8NN"l@$lBH D@@! @@@  /+I-$QHQO "@?@($345OPQiju"    k  r v  .  tk..  tREAD ME t lUPLOAD ACCt n'UPLOAD' V1.0: 1/5/87 --------------------- Written by Steve Kelly, with help from Mike Montgomery & Dave Jones. 'UPLOAD' is Public Domain, so feel free to give it to who you want, but don't even think of selling it for profit. The program was written in MEGAMAX 'C', and has been tested on a WS4000 to satisfaction. I have not tried it with any other modems. The program is not guaranteed Bug-free, I would like to be told of any problems encountered ... MBX me on 919999839. 'UPLOAD' was developed to combat the inability of FASTCOM to upload messages written Off-line to anywhere other than page 77 in prestel. To use, place the UPLOAD.ACC on you FASTCOM disk (main directory), the program runs as a desk top accessory. Create your files off-line by selecting VIEWDATA PICTURE from the Edit document icon, enter any number at the MBX prompt & save the file. Then re-edit it, and click the mouse. You'll find you can use the whole screen to edit now, instead of just the area designated for a MBX. After the last line of your screen (see the demo screen DEMO.PRS) you can enter : $ENDTRA to stop 'UPLOAD' from transmitting the rest of the file, which are just spaces, to save time/money. Also, to supress the transmission of a line, enter: $IGNORE in the FIRST column of the line to be ignored. This is useful saving a page from prestel, and cutting out the top line (with the page number & charge) before re-transmitting. You can 'Ignore' as many lines as you wish. When in PRESTEL, position the cursor to where you want the start of the file to be transmitted to, and select 'UPLOAD' from 'DESK'. Select your file as normal, & wait. Please remember, you can only Upload to PRESTEL at 75baud, so it takes time. A delay has been built into 'UPLOAD', but you may encounter some lost characters. Finally, if you don't already know, 16/32 ... the ST arena, is on page 800916 in Prestel, take a look! STEVE KELLY. 1/5/87 `#NN NK mNf]` m"m -So Q m -SBQ(m)MO*mNN*?<NH?<A?<NAX <B@SfLNuNVN9@*Hl"Hl$Hl(Hl&N9@.Hl?,*N\@H|f 0<`@HlHlHlHl?<BgNHlHlNPHlHlNPNN^NuNuNV`HlHlHlHlHlHlBgBgHl4BgBgBgBgBgBgBgBgBgBg?<?<?<?<N(<9@0,|g,0,4`|(g`0,<,HAfHlHlHlN @o lf?<*HlNx\-@ .A꼐=@?.HlHnN HlAA/N P?< HnN \9@ @fHl?<N$\`l?<Hl?,N P9@ @lHl8?<N\?,NT`2?,NTBlN @f N ` ,||$f|$=|`RNn @f6Bn`AH?NTRn0.nmN`ARn nm?<HlRHnN @fN`r`R?<HlZHnN \ @f l!`,Bn`AH?NPTRn nm`,|?N.T``0<ftN^NuNVHlb?<N\N^NuNVBn`Rn nm`m. ||o ?<NT. ||@ . |??<?<NZ\N^NuNVRl0,䤰lo 0<`AP0<`N^Nu)I)J "/0<NB"l$l Nu NV9n0.| A" AA-H=|` nR2.AH0Rn nm/,FN.X0,DN^NuNVA)HJAv)HNA)HRAD)HVAj)HZAb)H^AJ)HF?< NXT9lDD0,DN^NuNV9n9n 9n 9n9n9n9n9n9n9n9n9n9n 9n")n$j9n(9n*?<NT n,0F n00H n40J n80L n<0N n@0P0,DN^NuNV9n)n j?<#NTN^NuNV9n)n j?<4NfTN^NuNV?<MNTT n0F n 0H n0J n0L0,DN^NuNV)nj)n n?<ZNT n0F0,DN^NuNV9n9n ?<hNT n 0F n0H n0J n0L0,DN^NuNV?.NT nn0<`?.?<>NXX9@Bg0<`0<N^NuNV?.?<LN2XN^NuNV/ Aސ&H`0+ |g/ N*X Aސ"Ҽm?.NT&_N^NuNV/ &n/ NDXJ@g0<`00+ |g /+NXBk ?+ N,TJ@g0<`0<&_N^NuNVH&n0+ |f0<`.0+ |gV0+ |f0<`v0+ |g?<B?+ NhP?/+?+ NP @f0<`@k 0Hѫ`$ k o?<0+D@H/?+ NP'@&Bk0<LN^NuNV nl <`?.?./. ?<BN -@ m .`?<?.B?<BN -@?<?.B?<BNj -@ nf .Ю -@ `$ nf .Ю -@ `0.g <`b . oHn . /?.?<@N Bg?./. ?<BN ]|9@Bg <` `BlB . N^NuNV/.?<IN\N^NuNVBn`60.A0f"0.A00.A0 ` Rn nLmN^NuNVBn`&0.A0nf0.ABPRn nLmN^NuNV?>.=|0A"HPgXHf0(>N^NuNVHl/.NPJ@f =|`Hl/.NPJ@f =|`Hl/.NzPJ@f=|`f0. |g0/.NXJ@g0<``Bg/.?<NhX0. |?/.?<=NPP=@9@B @l0<`0. | ??.N~X0.N^Nu)I)J )_NM"l$l /,Nu)I)J )_NA"l$l /,NuNV nf:0,ܴlܲf0<9@ܲ9@ܴ`?<NT=@ nf*0,ܴg Slܴ?<?<NX?<D?<NX` n f00,ܴRlܴAܶ ?< ?<NVX?< ?<NHX`v nf ?<N T nf20.2,ܴRlܴAܶ?< ?<N X?< ?<NX`*0.2,ܴRlܴAܶ?.?<NX0<fAܶܲH|f0<`0,ܲRlܲAܶH`` nf?<NT``0.`RRSG0ggHHAgHHC`L N^NuNV n "n fN^NuNVH0&n$n >.-K`0SGJ@g f .`L N^NuNVH&n>. `Rg HGfg ` <`LN^NuNV/.?<AN\9@Bg0<``0<N^NuNV`4 nH| f?< ?<NX nRH??<NX0. Sn J@fN^NuNV` nRH??<N|X0. Sn J@fN^NuNV` nRH??<NNX0. Sn J@fN^NuNVH0&n $KA-H nf?./ N4\=n`L nf?./ N`\=n`. nf?./ Np\=n`-KBn?.NTJ@f`H| f |o@ H-@/./.?.?<@Nx 9@BHg0<`0,Bn/./<?.?<@NB 9@B @g0<`tRnR -@`R ned` 6.ƼЃ$@ H-@/./.?.?<@N 9@BHg0<`0,BnBlB0.L N^Nu|9|9|9|Cސ"2"2 2"2"2"22"2"2"22"2x9|ގ9|ܴ9|ܲNu UPLOAD V1.1A:*.PRSPIC.PRS[1][FILE OPEN ERROR][OK][1][FILE READ ERROR][OK]$ENDTRA$IGNORE[1][END OF FILE|-----------|WRITTEN BY S.KELLY|Public Domain][OK]CON:AUX:PRT: .  tt..  tWPTOOLS ACCt ulWPTOOLS RSCt #WPTOOLS DOCt `hVO4N BgNA`H>(_*_ 3zO/<?<HNA\Jg,@ONO/?<INA\p09|L>NuCnr  QgLEnr g< .g Q`*REvQ`|or gQ?9z?<NMXJg*@ mf4m 3~`4y~RJ3~ lvNJ@f0<OG fQG| `$G(Km + g G `p AnQNJ@fVBy|Nu`f?9z?9~?</?<?<NMNu?9z?9~?</?<?<NMNu3|Nu3|Nu3|Nu3|Nu3|Nu3|Nu`H ,(_*_ 3 \O /< ?<HNA\Jg,,@O NO /?<INA\p09 nL ,NuC br  Q"ME b g< .g Q`*RE jQ`|or gQ b m b?9 \?<NMXJgV*@# ~ mfN4m 3 p`4y pRJ3 p l&AN J@f>G(Km KC b0< f Q` + fN G `# v=y p  p+H+J@gt3 z++++# r=| I2m g&#  p JN J@fn I`K09 zN HJ@fN rklgh09 z@3 |N HJ@g 09 |`29 |09 zN t3 | z rkg 09 z`2<09 zN t*y ~=| I2m g&#  p LN $J@fn I`I2m  g&#  p LN $J@fpn I`# p&y v mAN $J@f>By n 9 fNu`?9 \?9 p?</?<?<NMNu?9 \?9 p?</?<?<NMNu4HA(I(gI`II0Nu4HAgI(H(A@H@NuNuH?>/< ?<HNA\Jg ,@-OO 3 n&n/?<INA.KLL|3 nNu3 nNu3 nNu3 nNu3 nNu3 nNu3 nNuNVp`/p/p/NS`O NW3fTHy`NV4X3fV09fTHHy`/NWP#fHBfLJfLfPAfP//////p//Hyf,//////////p///p/NVO\3g`\NAfP///////9f@/9fO ffffffB9fHyfHnNOP"yf i f"yf ip1@"yf i f"yf i1@/9fa`X#fWf p#fLN^NuHnHyfNOPJgAf#f/NKFXB9fHyf-@NKFX|a9fHH-@ Pg pf|p . l& f .afB` .pf p".-@쀁r $.㢀/r-/-@NRPp/NS`X"./t/-@-ANS`PAf#f/NKFX#f#f(B9fHyfNKFX#f o fpf"`af"#ff$9f HH Pg pfpf"Jf$fJf(fBfL`p#fLpN^NuBfLHyfNQXXAf#f/p/HyfNH>O p#f 9f l @f"@fRf`Hyfp/BNVlO yf!|fT/9faXpNuNVHHygHyg Hyg Hyg/.NUO09gH29gH49gH69g H89g H:9gH////|////|/NT8O$09gH29g H49g H69gHx/////////NT8O$p//NSP09gH29g H49g H69gHx///////x //.NUO$09gH29g H49g H69gHx/x/////Bx//.NUO$09gH29g H49g H69gHx///////x//.NUO$09gH29g H49g H69gHx///////x//.NUO$09gH29g H49g H69gH////x/B/.NUpOp//.NSP n2(:=@SAfp-@`p-@09gH29g H49g H69gH////x////x/NT8O$09gH29g H49g H69gH////x//x//x/NT8O$ .LpN^NuNVHHygHyg Hyg Hyg/.NUO09gH29g H49g H69gHx/////////NT8O$09g H/@ rNN29gHЁ3g49gH /ArNN29g HЁ3g69gHH////// x////x/NT8O$p//NSP09gH29g H49g H69gHx/x//////x//.NUO$p/p/NRP09gH29g H49g H69gH////x/B/.NUpOB/.NSP09gH29g H49g H69gH////x////x/NT8O$09gH29gH49gH69g H89g H:9gH////|////|/NT8O$pLpN^NuNVHHnp/BNVlO HygHyg Hyg Hyg/.NUO09gH29gH49gH69g H89g H:9gH////|////|/NT8O$09gH29g H49g H69gHx/////////NT8O$09gH29g H49g H69gHx///////x//.NUO$09gH29g H49g H69gH////x/B/.NUpOp//NSPB/.NSP n0(RS@fp/p!/NS`P=@`p?/p!/NS`P=@09gH29g H49g H69gH////x////x/NT8O$09gH29g H49g H69gH////x//x//x/NT8O$pLpN^NuNV 9f$#f l2 f9f" afBf`9f" pf  f 9fr . g6 . g. . g& . g .g .g .gJ.fJfRgp-@`BR`/.pI/NRPJg/.NTX`t0.H/HnNPѮ n .f4R-H *f$n "RX-QR`Hn/.NM>PѮ n lf |R nR@r`kfNf`E`e`G`tg`lc`Js`X`x`o`*u`d`J.g "n QX ` "n QX -@Jj r-ADJgp-` J.gp+`p @p.".肀p.JgRR/./.NLP-@Jjp-@ .".-AJo8 n//./NPO p././/.NPO -n .ѮA-HJ.gp| `fJ.g "n QX ` "n QX -@`RJ.g "n QX ` "n QX -@J.g n0Rp-@/./.NLHP-@`J.g "n QX ` "n QX -@J.g n0RxRp-@-H/./.NKP-@ .XfHnNM X`"n QX"P-I̳f-|J.f8 .".mS-@Jg n 0fS`JfSJ.f6 .o, . .S-@Jkp./ nNXR`Jgp-/ nNX`*J.gp+/ nNX`J.gp./ nNXJgJjnp0/ nNXp./ nNX .S-@Jk .R-@Jjp0/ nNX` .S-@Jkp nR`p0/ nNX` .SJk* .S-@Jkp nR`p0/ nNX`Jg p./ nNX .S-@JkN .S-@Jkp nR`p0/ nNX` .S-@Jkp nR`p0/ nNXJg p./ nNX .S-@Jk* .S-@Jkp nR`p0/ nNX`p. eg gfpe`pE/ nNXJjp-/ nNXD` p+/ nNXp -@S .r NN0 . .r NN-@ nJf . lRr6/ nNX` .f6 .o, . .S-@Jkp./ nNXR` .LN^NuNV-n n R@-H Jgx %f0 %fR `"/.Hn/. aO -@Jg-@ `JK:g$.gp./ nNX n PR p./ nNX`pN^NudNPNQH0$h "N@BiBi/f$h&( S`RB3BHB3BBF4)g\jVBk Bia`Ha2Ri`tiaaSiJkSi`BBBF/gaJFf BfSi`0 RB Bkv$( Jg(<iSBk:x Bl281  9o"0 R1 1 SBjRiSCzgR$hG0 gSD6CkxQJCk0Q$hBJigS$hB2)H$L NYNXNuBfNu|H0$&҃тdRL Nu/t?<@ B m RSWfO$NuNPNQH~0pr3@3@3@3@av 0fi ` -f iaX 0m> 9n8i 3F <)i/gRi`a:<) ҆Bц` .f JifbRi` Eg efPa +g -f ia 0m0 9n*:)iFi im`?)_ f $hB`4)?)_gDBi/gT3|?Jk Si`Jig ktiaZabSi`aRi`t4)?)_gN@8$h$$$h$p0) L~NYNXNu,(g !|NuH$hN<L?3F S fiNu?)_g|Nu$fprt`"HBHBB/t Q$Nu//gdB Jf BB /g$RB/fJjRd R`SBgBo Bl(J?BBHB_HB&Nu/<N@p`/<N@0<HBBH@B@Or`NV#,N^NudNVB.p#(-yf -@ .P&l @P*JgR` .P&fp#f pN^Nu . @P*-HJg.gB`p-@ 9c". -@ g-@ .  g gJf . R-@`p#f pN^Nu . Jg.gT|B/.NEP-@Rf#f /./.NF2P-@`r/.NFXp#f pN^Nu.f& . //.NEP-@Jj.g"|#f /./.NF2P-@J.gZ . JgLJkF/.NFX . //.NEP-@` . //.NEP-@J(gpN^Nu n .!@N^NuNV . ". ///.aO N^NudmNV/.NEvX-@JfpN^Nu/./. n/(NFO -@J(gpN^Nu n(g .N^Nup-@-@ .dZ n R@ g f" .Sr///.a4O .N^Nu n R`JfJfF .N^NuNV/.NEvX-@JfpN^Nu/./. /.NGO -@J(gpN^Nu flJ ffJg` n(fT .S-@Jk:B/. n/(NGO Jgp/Hn/.a|O JfS` .RN^Nu .N^NudNV/.NEvX-@JfpN^NuB n/(NFXJ(gp-@ nB .N^NudNVp#(-@ .P&l4 @P*Jg @P*"(f @P* N^NuR`p #f pN^NudNV/. /.p=/NRO -@Jj#(p#f pN^NuB( .N^NudNV nJf-|F/. /.p/NRP#(Jjp #f pN^NupN^Nud?NVx . gJfp /NRX g . ~nS`p}@|Hn|p /NRPp /p/NRPp.}Bx-@ .xl n C~Rx` . }lF n R `6/. /./.p?/NRO-@Jj#(p#f pN^NuB( .N^NudNV/././. pB/NRO-@Jj#(p#f pN^NuB( .N^NudNV n d-|clJg r-A`6p -@`.-|co n fp -@`p n -@ . dpN````N````p n/@r NN"//@ r NN / np"n)/@r NN"//@ r NN /@p)/@r NN"//@ r NN /@p)/@r NN"//@ r NN /@X N^Nup nr(t(///Hycr/.N1O-@`Jp nr(t(///Hyc/.N1O-@`p nr(t(v(////Hyc/.N1O-@`p nr(t(v(////Hyc/.N1O-@`p nr(//Hyc/.N1O-@`jp n(r(/.///.Hyc/.N1O-@`4p n(/.//.Hyc/.N1O-@`pN^NuJjpN^Nu n N^NudNV/.NNzXHn/-@NM>P .N^NuNVp nB-@ lN^NuJ j" lpN^Nu n-D p-@ . n".S//. /NMO ".Ҁ N^NuNVB.p-@S .  @c . . -@ J fA//.NOPpN^NuNVp -@B.S . 0". . -@ J fA//.NOPp N^NuNVp -@B.S . r NN0 . . r NN-@ J fA//.NOPp N^NuNV-n nJgp/NQ1o<1o:1o81o61o41o 21o01| 1|1|1|3NXzAX0(0HNuAX!o01o01|1|1|1|4NXzAX0(0HNuAX1o01|1|Bh1|5NXzAX0(0HNuAX!o0Bh1|1|1|6NXzAX"o22"o 24"o26"o280(0HNuAX1o:1o81o61o41o21o 0!o01|1|1|1|*NXzAX0(0HNuAX1o&>1o"<1o:1o81o61o41o21o 0!o01|1|1|1|/NXzAX0(0HNuAX!o0Bh1|1|1|nNXzAX0(0HNuAX1o 21o01|1|Bh1| 1|pNXzAX"o "0Bh 0(0HNuAX1oFN1oBL!o<01o:J1o6H1o2F1o.D1o*B1o&@1o">1o<1o:1o81o61o41o 21o01|1|1|1|NXzAX"oH22"oL24"oP26"oT28"oX2:"o\2<0(0HNuAX!o01o01|1|1|1|#NXzAX0(0HNuAX1o01|1|Bh1|kNXzAX0(0HNuAXBh1|Bh1| NXzAX0(0HNuAX!o4!o0Bh1|1|1|ZNXzAX"o 220(0HNu"0<sNBNu"0<NBNuXXZ\^X`X\Z^V1.04eC!wptools.rsc WP Toolkit[1][Cannot find WPTOOLS.RSC file.|Copy it to your boot disk|and press Reset][OK]%2d%2d%c:\*.DOC[1][Unable to|open file][CANCEL][0][File |%s|contains %d words.][ OK ][0][ %d bytes free | ][ OK ][0][ ][OK][1][Relabel failed,|code #%d][SORRY][0][Disk relabelled to|| ][ OK ]Formatting track %d side %d [1][Format failed,|code #%d][SORRY][1][Label write failed,|code %d][SORRY][0][Disk formatted| ][ OK ][1][Undelete for file |completed. Clusters contiguous.][ OK ]|completed. Clusters fragmented.][ OK ]|failed, code #%d][SORRY] [1][Insufficent free memory|for this function][CANCEL]AMPM%02d%02d%02d%02d:%02d:%02d%02d%02d%02d%02d%02d:%02d:%02d.%02d%02d:%02d%02d:%02d:%02d %s%02d:%02d %s0123456789abcdef ((((( H ((((( H  @  $&( T   "& "    0   & (     ,   " " " " " " " "  "   $          x "        "   &      $" &                   6   &   "&      ("   $.      $ 0. 0b(8*"     &*       2           @8X" `d&   $X0 $&* j&"NT"0 * ( @ :0` 0 (p"2 , 4 4 $ , $ Hp42`**fhnPR@@B **T*""0HT".>*"(($#L#CANCELAPJALARMPRINTERWORD COUNTFREE RAMRELABELFORMATUNDELETEBLACKOUTSELECT PRINTERMATRIXDAISYOKAPJTime now:SETCANCELAlarm to ring at:9999p Time: __:___m9999aAPJOK9999P__:___M9999aThis is an alarm call.Time now:OKAPJInsert disk in drive XXXXXXXXYYYEnter new volume label: ________.___FFFFFFFFFFFRELABELCANCELAPJFormat disk in driveType of disk:SINGLEDOUBLEsidedHIGH CAPACITYFAST ACCESSNORMALDisk format:XXXXXXXXYYYEnter new volume lel: ________._____FFFFFFFFFFFWARNING! ALL DATA ON THIS DISK WILL BE ERASED!UNDERSTOOD - PROCEEDCANCELAPJFormatting track 99 side 9UNDELETE a fileDisk in driveXXXXXXXXXXXFilename : ________.___FFFFFFFFFFFOKCANCELAPJ  0`? 0c0cY0c90 @ | 8 @?  . / /޾ / -  / /m    ? """"(DDDDH?""""(DDDDH""""(DDDDH? @ @ @ @'@ @ @ @ @ @ @?@@@@@@@@@ @@ @@ @@ @@@@@@???????????????? @ ?@ 1@ @ |>@ |>@@ 8@@ @ @ O@ ?!@@@@@@@@ @@ @@ @@ @@@@@@?????????????????? `0  @`80`|BpA?>  @`80`n+/0#$;Gl %# %/89!  b1@,$"7@, $* ?@,$< BJ@,$0bS@, $*"[@, $$b@,$0Bk@,$0 C-$')@, @,@,!@," @, D @, f @,%! @,  t      B    C.J   )f 0 00      - %AB$x    )8 AB  # $     $0#0 : /e z *4 F C"   ABb   ~ZJ "0660103030566 9[........................................................] WordProcessingToolkit DesktopAccessory  Thisdesktopaccessoryisdesignedtocomplement1stWord,but someofitsfeaturescouldbeusefulelsewhere. Toinstalltheaccessory,copyWPTOOLS.ACCandWPTOOLS.RSCtoyour bootdisk,andpresstheResetbutton.Whentherebootis completeyoushouldhaveanadditionalitemontheDeskmenu: "WP Toolkit". SelectingthisgivesyouapanelwitheightIconswhichhavethe followingfunctions: 1.AlarmThiscanbesettogooffatanytimeupto12 hoursahead,bytypingintherequiredtimein thefieldwherethecursoris.Thismeansthat youneedn'tmissanappointmentwhiletyping inyourmasterpiece.Thecurrenttimeisalso shownatthetopofthepanel.Ifis incorrect,youcanclickthemouseonit,and thenyoucanedititintheusualway. 2.PrinterThisallowsyoutoselectbetween2printers, sothatyoucanprintyourmasterpiecein draftorfinalmode. Thepresetoptionsareasfollows: FLAGBITMATRIXDAISY   0 Dotmatrix Daisy 1 Monochrome Monochrome 2 Epson Epson  3 Draft Final 4 Parallel RS232 5 Formfeed Singlesheet   3. WordCountSothatyoucantellhowlongyour masterpieceis.Willcountwordsin1stWord documentsorASCIIfiles. 4. FreeRAMDisplayshowmuchRAMiscurrentlyavailable forexpandingyourmasterpiece. 5.RelabelAllowsyoutochangethevolumelabelofa floppydisk.Nothingparticularlytodowith WordProcessing,butthereisnofacilityin GEMfordoingthis. 6. FormatAllowsyoutoformatanewdiskwithout leavingthewordprocessor.Usefulforwhen youfindyouhavenospaceavailabletosave yourmasterpieceexceptforanewdiskthat younevergotroundtoformatting.Inaddition tothenormalformat,therearetwoother options: 1.FastAccess-speedsdiskI/Obyusing anonstandardinterleavefactor. 2.HighCapacity-increasesdiskcap- acitytoabout800kforadouble-sided drive,attheexpenseofaslightloss ofspeed. 7.UndeleteForwhenyouaccidentallydeleteyour masterpiece.Thiswillnotalwayswork,of course.Thedialoguewilltellyouwhetherit thinksitsucceededornot,andwillalsotell youwhethertheclustersitrecoveredwere contiguousorfragmented.Thereasonforthis is,iftheclusterswerefragmented,thereis asignificantpossibilitythatitpickedup thewrongclusters,whereasifitwasableto findenoughcontiguousclustersforthefile thenthereisagoodchancethattheywerethe rightones.Recoveryisneverguaranteed, however.Youshouldalwayscheckthefile afterwards.Ifithaspickedupsome incorrectclusters,thereisnothingforit buttouseasectoreditortosearchthedisk fortherightones.Andthebestofluck. Note:atpresentthisfunctionworksforthe Rootdirectoryonly.Hopefully,itwillbe extendedtoworkforfolderssoon. 8.BlackoutThissimplyblanksoutthescreen,tosave burn-inifyouhavetoleavethemachinefora while,eg.fortheappointmentitem1reminded youabout.Toresume,pressReturnorEnter. Notes 1.Thediskutilities(Relabel,UndeleteandFormat)may failwithreturncodesasfollows: Code#1-Reservedforinternaluse. Code#2-UnabletoobtainBiosParameterBlock(copy protecteddisk?) Code#3-Non-standardsectorsize. Code#4-Directoryentrynotfound. Code#5-Firstclusteralreadyreused(Undelete) Code#6-Notenoughfreememoryavailabletoobtain buffers(approx8KrequiredforReformat,less forothers). TOSerrors(negativenumbers)mayalsobereported. 2.AlloptionsexceptRamFreeandBlackoutgiveyoua secondchancetocancelbeforeproceeding. 3.TheaccessorysetstheDesktopcolourtothestandard darkgreen,unless1stWordhasalreadychangedit. UnliketheControlPanel,itwon'talterthecolourof blockhighlights. 4.Ifanyoftheprinteroptionsdon'tsuit,Icansupply thesourcecodeforamendmentifyousendadiskand returnpostage.You'llneedaCcompilerandaGST- compatiblelinker.Ifyoudon'thavethese,Ican compileamoduletoyourequirementsfor1inaddition tothediskandpostage. 5.TheResourcefilewasdesignedformedium-resolution,I don'tknowhowitlooksinmonochrome,andsomeofthe panelsareabitbigforlow-res. ThisaccessorywaswrittenusingMetacomco'sLatticeCand Hisoft'sDevpacSTby: SandyJanas, 73BurghmuirCourt, Linlithgow, WestLothian, Scotland. Enjoy!astheysay.  .  t..  tWRDCOUNTACCt Y-WRDCOUNTPASt M`*,*O?A+"HN o"h#?#?#@BbBy@N /,HNVN)|A,-H V0(R@ V1@ V"h V0(A2. N^,_ _TN/,HNVN)|A-HBn0.J@j?<- NN0.D@=@=|'p=@0.rAo^0.2.H=@0.J@V0.F@@Bd0.r0A? NN6Bn0.2.HH@=@0.r H=@`0.J@f ?<0 NN"n 0.@N^,_ _\N/,HNVN)|At-Hp=@"np)=@0.nn0"n 0.2|CO$n2.CPt2Rn`"n $np*R@2|COrN^,_ _PNNV?./. ?<=NAN^ _ONNV?.?<>NAN^ _ONNV/./. ?.?<?NAN^ _O NNV?./. ?<GNAN^ _ON/,HNVN)|Av-HHnBgNp=@0.2|COrA0JAg6"n 0.AP2.4|EOtA00.R@=@`"n 0.S@@N^,_ _XNNV?<NAN^Nu/,HNVN)|A-HNN3RHyAjN4N'f09R@A??0.vJ@f Bn`p=@HnN>HnN6"nE2p"Q"n E2p"Qp.=@Bn0.@eR0.J@W0.rA0p\@WÄC0.rA0p:@WÄCBd p=@` 0.S@=@`p=@p.=@f0.nfn,0.R@=@"n 0.2.tA0Rn`"n 0.@0.N^,_ _PNNu/,HNVtN)A8-H=n0. rA=@-nx?<HnHnHnxHntN#>N^,_ _PN/,HNVtN)A2-H=n p=@-nx?< HnHnHnxHntN#>N^,_ _\N/,HNVtN)A0-H=n Bn-nx?< HnHnHnxHntN#>N^,_ _\N/,HNVN)A*-H/.?. A O"Op?"QBgBgNTN^,_ _ON/,HNVnN)AL-H"n $n p*R@r=n"n / N$-@r?<#HnHnzHnrHnnN#>0.N^,_ _\NNu/,HNVN)Aj-H0.T@=@?.NX-@/.?N^,_ _ON/,HNVnN)A@-H0. J@jBn =n -nr?<2HnHnzHnrHnnN#>=nz0.N^,_ _\N/,HNVN)Ap-H/.BgHnHnHnHnNBgBgBgBgBg?.?.?.?.N/.Bg?<?.?.?.?.N/.?. N(=@0.N^,_ _\N/,HNVN)AB-H/. BgHnHnHnHnN?<BgBgBgBg?.?.?.?.NRN^,_ _XN/,HNVtN)A&-H-n x?<6HnHnHnxHntN#>N^,_ _XN/,HNVN)AR-HBn"n0.r1JAg*"n 0.R@$n2.t20.R@=@`"n 0.@N^,_ _PN/,HNVN)Az-H"n Jfp. R@?"n / N"p=@p. =@0.nn&"n $Q0.S@2.tA 0Rn`"n $Qp. rN^,_ _ON/,HNVN)Av-H"n0.-I"n0)rAW"n0)r AWÄC"n0)rAWÄCBd("n / AO"Op?"QN`"n0)rAW"n0)rAWÄC"n0)rAWÄC"n0)rAWÄCBd"n$i -J"n0)rAW"n0)rAWÄCp."ni\CBd"n0)S@@"n Jf"np.R@3@"n/ AO"Op?"QN"n0)rAW"n0)rAWÄCBd"n3n "n3n N^,_ _O N/,HNVN)AT-H"n0.-I"n0)rAW"n0)rAWÄCBd"n$i /"n / N`N^,_ _O NNu/,HNVN)0. R@?HnN"Bn0. S@=@0.nn"n0.BiRn`"n0. p3@-n .N^,_ _TN/,HNVN)Bn0.rdA]"n 0.0)rAVCBd0.R@=@`0.rdAl0.R@?/. N(N^,_ _XNNu/,HNVN)A-H"n 0.-I"n3n"n3n"n3n"n3n"n3n"np2"np3@"np3@0.rAW0.rAWÄCBd0.rA=@"n0.r A3@"nBi 0.rAW0.rAWÄCBd"n3n "n3n ` "nB 0.rAg/. ?.?.N4N^,_ _ON/,HNVN)A-HBn"n0)J@g^"n0.0)r AJ@f0.R@=@`"n0.$n0.0*r FAA3@0.R@=@/.?.?.?.?.?.?.?.?.?.?. N2=n0.N^,_ _ONNu/,HNVxN)=n=n -n|?<(HnHnHn|HnxN#>N^,_ _PN/,HNVxN)=n -n|?<rHnHnHn|HnxN#>N^,_ _\N/,HNVxN)-n|=n=n=n=n=n=n ?<*HnHnHn|HnxN#>N^,_ _ON/,HNVN)"n0. =i 0.N^,_ _\N/,HNVxN)-n|=nBn=n=n=n=n=n0. rA=@?</HnHnHn|HnxN#>N^,_ _ON/,HNVN)/.?.HnHnHnHnN/.?.?.?.?.?.?.?. NDN^,_ _O N/,HNVN)"n0. =i0.N^,_ _\N/,HNVN)"n0.3n N^,_ _PN/,HNVrN)-nv=n=n=n=n ?<+HnHn~HnvHnrN#>=n~0.N^,_ _O NNu/,HNVtN)/.?."n/ "n/ Nr"n0.-It"n$nt2"n $nt2"nt0) rAJ@g:"n$n0W@2"n$n0W@2"n$n0\@2"n $n 0\@2N^,_ _ONNu/,HNVxN)=n-n|?<,HnHnHn|HnxN#>"n2"n 2N^,_ _ONNu/,HNVN)=n-n ?<NHnHnHnHnN#>N^,_ _\N/,HNVN)?</. NN^,_ _XN/,HNVN)0. ?BNN^,_ _TN/,HNVN)?<BNdN^,_Nu/,HNVN)?<BNFN^,_Nu/,HNVN)p?BN(Bn?<zBg?<BgHnHnHnHnHnBgN#N^,_Nu/,HNVN)p=@?<kHnHnHnHnN#>N^,_Nu/,HNVN)p=@?<kHnHnHnHnN#>N^,_NuNu/,HNVN)A-H=nF=n@=nD=nB0.:rA=@=n8=n6=n4=n20.0rA=@=n. =n, =n*=n(=n>=n<-n$?<HnHnHnHnN#>=n"n2"n2"n2"n 2"n 2"n20.N^,_ _O"n2"n2"n2"n 2=n~0.N^,_ _ON/,HNV0N)0. rAg p=@2` Hn0Hn0Hn0Hn0Nl=@pd=@2=n p=@ n n0.@rA1Rn`p=@?.2Bg?< BgHnHnHndHnLHn4BgN#=n0.N^,_ _TN/,HNVN$=@?.N$v=n ?<fBg?<BgHnHn"n/ Hn"n/ BgN#?.N$vN^,_ _O N/,HNV8N$=@:?. N$v?. HnlHn=n~p0.prAg?<N=@n?.nN$?.nN$v?N^,_Nu/,HNVN)p. R@rA Hn N$/N"N^,_ _ON _(N _0/Ho |"3+Jy+fXNX/"_/$|*0a."|*da&Hy*,?<N"Jy@g _9N"BgNAg`NuNu/,HNV-n=n ?<4HnHnHnHnN#>=n0.N^,_ _\N _#T#T#T#T#ThT#TT0/3Th| H |*"|TjH2H2H209Th @pf2<`2<3Tp"<T0<NBNu _<#T#T#T#T"_#T:3E3_3_ 2/3yT Jg( yT8DSEk0 yT00 yT0Q?"<T0<sNBJ_`.:9TlH yTSEk0 yT00 yT0QNu _3TN09TNu _3TN09TNu _3T3TN _"_$_2T4TN _3T3TN _"_$_2T4TN _3TN09TNu _ RN _"_/) g g f0)k @e??<>3|NAXNu ?Nu#' _ g?e?d 9'NHy'`Hy'(N"t`t _"_0gR@| e.G'$S" ghjebb"*f&"`v&A%S"`l&J`ذ|gb*|f8"9&g0$A#&`""9&g$A#&`"9&g $A#&"`"E?&R"$b Hy'N"Jgr"QHd2S@k"QN _"_0" g?e?d gR@ @mz @ e@E'"fB3@B$`\&A2+@ef "'I`F"3@B$`8$K`ư|f"&#&` |f"&#&` "&#&NHeap overruns stackPointer NILPointer not in heapHT _0"_e /LTNuHy)lN"/B9U/|UNuHT _0 @f0"|TTp` "_J@jpEUr4@ BbBS@kQ/LTNuHT _4SBkt82$_rAdd0 @f0"|TTp` "_J@jp6ADb6CG0IS@k$eQ/LTNuHT _4k2SAk0"_p6B@bE0)CS@kQ/LTNuHT _2$_r0 @f0"|TTp` "_J@jp@kS@kv&J$IRC4(K Vg RQBg`?/LTNuHT _4kF2SAk>0 @f0"|TTp` "_J@jp6B@bEUSBkQ/LTNuString overflow _ hNVf 0(gr"OD@Hd2S@k "Q` _"y?e Hy)N"N#V #V .f -|)`-|) nNнVf yV NStack overruns heap09+Nu _3+NBy+Nu[3][][ Abort ]Copyright 1986, CCD and OSS, Inc.  F    "4J$*   ,:((82:  0  T  d&:42,00.4\.0DX<"$>,$8(l*lrh\,&D0T>0,8&&,&$$6  LD"2 T &( 0&  >        R  <   , FR ( *@ B @ B   { COMPUTE!'s Atari ST Disk & Magazine } { October 1986 -- Volume 1, No. 1 } { 1986 COMPUTE! Publications, Inc. } {WARNING! This source code cannot be compiled and run as is. Because this program creates a desk accessory, a special linking operation is required. The documentation for this operation is not included in the Personal Pascal manual. The required documentation as well as several example programs are available to Personal Pascal owners via modem from Optimized Systems Software. The phone number is included with the documentation supplied with Personal Pascal. } {$S0,D-} {No stack, turn off debug mode} program word_count_accessory; CONST {$I gemconst.pas} chunk_size = 4096; AC_Open = 40; AC_Close = 41; TYPE {$I gemtype.pas} buffer_type = PACKED ARRAY [1..Chunk_Size] of byte; path_chars = PACKED ARRAY [1..80] of Char; VAR Filen, {filename} Pathway : Path_Name; {drive, directory path} Buf : Buffer_Type; {buffer for GEM file reads} Ap_Id, {application ID, supplied by GEM} Menu_Id, {index of menu item in Desk Menu} Counter, {word counter} Drive_No : Integer; {current drive} Acc_Name, {Name to appear in Desk Menu} Count_Str : Str255; {string version of counter for GEM display} Gem_Name : Path_Chars; {filename for GEM file open request} Handle : Integer; {GEM file handle} {$I gemsubs.pas} FUNCTION Menu_Register(id: integer; VAR name : Str255): integer; EXTERNAL; PROCEDURE str( n: integer; VAR s: str255 ); {converts integer to string} VAR digit, divisor, i : integer; leading : boolean; PROCEDURE add_char( c: char ); BEGIN i := i + 1; s[i] := c; END; BEGIN i := 0; IF n < 0 THEN BEGIN add_char( '-' ); n := -n; END; divisor := 10000; leading := true; WHILE divisor > 0 DO BEGIN digit := n DIV divisor; IF (digit <> 0) OR NOT( leading ) THEN BEGIN add_char( chr(digit + ord('0')) ); leading := false; END; n := n MOD divisor; divisor := divisor DIV 10; END; IF i = 0 THEN add_char( '0' ); s[0] := chr(i); END; PROCEDURE Make_Path (VAR ps : String; VAR cs : Path_Chars); {this converts a Pascal filename string into an ASCIIZ string of the type GEM expects for GEMDOS file open routine} VAR i : integer; BEGIN FOR i := 1 TO Length(ps) DO cs[i] := ps[i]; cs[length(ps)+1] := Chr(0); END; FUNCTION gem_open(VAR name : Path_Chars; mode : integer): integer; GEMDOS($3D); PROCEDURE gem_close(handle : integer); GEMDOS($3E); FUNCTION gem_read(handle : integer; count : long_integer; VAR buf : buffer_type): long_integer; GEMDOS($3F); PROCEDURE get_current_path(VAR s : Path_Name); TYPE dos_name = PACKED ARRAY [1..80] OF char; VAR path : dos_name; i : integer; PROCEDURE getdir(VAR path : dos_name; drive: integer); GEMDOS($47); BEGIN getdir(path,0); {0=current drive, 1=A, 2=B, etc.} i := 1; WHILE path[i] <> chr(0) DO BEGIN s[i] := path[i]; i := i+1; END; s[0] := chr(i-1); END; FUNCTION Getdrive : integer; GEMDOS($19); { 0=A, 1=B, etc. NOTE DIFFERENCE FROM ABOVE} PROCEDURE initialize; BEGIN Init_Mouse; Drive_No := Getdrive; Get_Current_Path(Pathway); Pathway := Concat(Chr(65+Drive_No),':',Pathway,'\*.*'); END; PROCEDURE Compare; VAR b : byte; Previous : Boolean; {True when previous byte ended a word} n : long_integer; {number of bytes read from file} i,j : integer; BEGIN Previous := True; Counter := 0; REPEAT n := Gem_Read(handle,chunk_size,buf); i := 1; IF (buf[1]=68) AND (buf[4]=82) AND (buf[8]=82) then BEGIN for j := 1 to 2 do REPEAT b := buf[i]; i := i+1; UNTIL b = 0; END; WHILE i <= n do BEGIN b := buf[i]; CASE b OF 0,9,10,11,12,13, 28,29,30,32 : BEGIN If NOT previous then Counter := Counter + 1; Previous := True END; 31 : BEGIN REPEAT i := i+1; b := buf[i]; UNTIL (b = 93) or (i=n); Previous := True; END; OTHERWISE : Previous := False; END; i := i+1; END; UNTIL n < chunk_size; END; PROCEDURE Display; VAR Message : string; dummy : integer; Count_Box : Dialog_ptr; Box_Title, Fileline, Countline, Quit, Out : integer; BEGIN Str(counter,count_str); Message := Concat('is ',count_Str,' words.'); Count_Box := New_Dialog(5,0,0,40,9); Box_Title := Add_DItem(Count_Box,G_BoxText,none,14,1,12,1,-2,$1071); Set_DText(Count_Box,Box_Title,' WORD COUNT ',System_Font,TE_Center); Fileline := Add_DItem(Count_Box,G_String,none,1,3,38,1,1,$1180); Set_DText(Count_Box,Fileline,Filen,System_Font,TE_Left); Countline := Add_DItem(Count_Box,G_String,none,1,5,38,1,1,$1180); Set_DText(Count_Box,Countline,Message,System_Font,TE_Center); Quit := Add_DItem(Count_Box,G_Button,Selectable|Exit_Btn|Default, 17,7,6,1,1,$1180); Set_DText(Count_Box,Quit,' OK ',System_Font,TE_Center); Center_Dialog(Count_Box); Out := Do_Dialog(Count_Box,0); End_Dialog(Count_Box); Delete_Dialog(Count_Box); END; PROCEDURE word_count; BEGIN If Get_In_File(pathway,filen) then BEGIN Make_Path(Filen,Gem_Name); Set_Mouse(M_Bee); Handle := Gem_Open(Gem_Name,0); Compare; Gem_Close(Handle); Set_Mouse(M_Arrow); Display; end END; PROCEDURE Event_Loop; VAR Event, dummy : Integer; msg : Message_buffer; BEGIN WHILE true DO BEGIN Event := Get_Event(E_Message, {gem messages} 0,0,0, {no buttons} 0, {no timer} False,0,0,0,0, {no mouse rects} False,0,0,0,0, msg, {message number} dummy, {keypressed} dummy,dummy, {btn count, btn state} dummy,dummy, {x,y coords} dummy); {kbd_state} If msg[0] = Ac_Open then If msg[4] = Menu_Id then BEGIN Initialize; Word_Count; END; END; END; BEGIN Ap_Id := Init_Gem; If Ap_Id >= 0 then Acc_Name := ' Word Count'; Menu_Id := Menu_Register(Ap_Id,Acc_Name); Event_Loop; END. .  t..  tXUTI ACCt kXUTI RSCt \'`az DN NQK mNf]` m"m -So Q m -SBQ(m)MO*mNN*?<NH?<A?<NAX <B@SfLNuNVHNLHlHlHlHlNN\9@?<NPNTJfFHl?< NPV\Hl(?< NPH\HlP?< NP:\`?PHl/,?<?<N? Hl/,?<?<N? Hl/,?<?<N? BgHl&/,N!0 HnHnHnHn/,NLHl ?<BgNMPHl?<BgNMPHlJ/, ?<?<N?6 Hl6?<BgNMPHl2?<BgNMpPHl?<BgNM`PHl?<BgNMPPHlb?<BgNM@PHl/,b?<2?<N> Hlj?<BgNMPHl?< BgNMP?<NNNKX`xBl89|69|49|P29| 0 lJB9|bBldBl`Bl B,9|h9|Of|H|B,<@@@| lB|Bg0,4S@??<?<BgBgBg?< /, NGBg0<l4??<?<BgBgBg?</, NGBg0<l8??<?<BgBgBg?</, NGBg?,8?<?<BgBgBg?</, NGzBg?,6?<?<BgBgBg?< /, NGVBg0<l6??<?<BgBgBg?< /, NG,Bg0<ld??<?<BgBgBg?</,6NGBg?,d?<?<BgBgBg?</,6NFBg0<lb??<?<BgBgBg?</,6NFBg?,b?<?<BgBgBg?< /,6NFBg0,`g 0<`0<??<?<BgBgBg?< /,6NFZBg0,`g 0<`0<??<?<BgBgBg?< /,6NF$Bg0<l ??<?<BgBgBg?</,NEBg?, ?<?<BgBgBg?</,NEBg,g 0<`0<??<?<BgBgBg?< /,NEBg,g 0<`0<??<?<BgBgBg?< /,NEjBg,g 0<`0<??<?<BgBgBg?</,bNE4Bg,g 0<`0<??<?<BgBgBg?</,bNDBg,g 0<`0<??<?<BgBgBg?< /,bNDBg,g 0<`0<??<?<BgBgBg?<!/,bNDBg,g 0<`0<??<?<BgBgBg?</,bND\Bg,g 0<`0<??<?<BgBgBg?</,bND&Bg,g 0<`0<??<?<BgBgBg?</,bNCBg,g 0<`0<??<?<BgBgBg?</,bNCBg,H??<?<BgBgBg?<*/,bNCBg0<,HC??<?<BgBgBg?<)/,bNCd,H?NTBg?<?<?<BgBgBg0<o9@z?/,jNC,/NEXA м/A м/Hl?<NE`$HnNAX n(f0.nf?<ND TBG`0RGA0 G m9|Hl>HlHlNE NN ?<?<BgBgBgBgBgBgBgNB\<`v/ X)@/ < /NC(X м0 l@ ,/ < /NC X)@/ < /NBX м0 l@ ,/ < /NB X)@/ < /NBX м0 l@ l|. ,/ < /NB X)@/ < /NBpX м0 lBG`N lH|0g.H|.g"Bg ,HЇ//,N< >< ` l RG Gm?.?.?.?.BgBgBgBg?<N@0?.?.?.?.?<Bg/,N?lBgN@TBg/,N?\9@$ @f<3 l lB(`?<?<BgBgBg?</,N?Bg?<N>XHlHl$HlHlN@0,$|f6BgHlB/,NB ?<?<BgBgBg?</,N>`PS lH|0njBg?<?<?<BgBgBg?</,N>?<?<BgBgBg?</,N>ZHlHl$HlHlN?0,$f` BgBg?<?<BgBgBg?,$/,N>P?.?.?.?.BgBgBgBg?<N>N0,$`| g`N&``| g`N`x`|g`N+>```|g`NN`H`|g`N2x`0`|g`NT``|g`B`NfN,?,NA4T?<N?T0<fHz?<&N@N\LN^NuNuNV < |: |& | .x xNpNN^NuNV0,"f./<}?<HN@\)@ l 0<`@9|"?<N>T?<@/,?<N?T/N ?<N=T0<`N^NuNV0,"f 0<`:?<N=T?<@?<N?rT//,N> ?<N=T0<`N^NuNV0,"g/,?<IN?P\Bl"N^NuNVH0&n$n >.$QL N^NuNVN^NuNVH00,dlbfbAH&H0,d|A@,0.g A$H`A$H><` 0RG K Gm/ ?<N(\ @f 0<` 0<`L N^NuNVH/\'/ </N=b X/ </N= )@. lHl?<N;\0<`/,.?<HN>(\)@NHl.Hl0Hl2Hl4/,6N;BgBg?<?<BgBgBg?</,6N:BgBg?<?<BgBgBg?</,6N:?,.?,0?,2?,4BgBgBgBg?<N:?,.?,0?,2?,4?<Bg/,6N:B<`Bg/,6N:\80`|g`Bld``|g`9|d``|g`Blb`x`| g`9|b`^`| g`9|``D`| g`Bl``,`|g` <`|g`B`f,?,.?,0?,2?,4BgBgBgBg?<N9gN\fd/,N?<IN<\\LN^NuNV?<BgBg?<?. /,/.?<N< l 0<`0< n0 n0 n"0 n(H| n(H|AA n(H| n(H|BB n0H n(H| n(H|BB n0H n00<`N^NuNV?<0.H/ .м/N ?<0.H/ .м/N n f 0<S`0<D n@%N^NuNVH0HlHlN50,>g&Hln?<N4\ @f`?<N5:T>,ZlTRG0l@o>,@??,X?,V?,T?,d/,/,r?<N6 ]|@`Hl?<N \: @f`?<N4T EfB.$lr=lT:`?<?,X?,V0.Rn??,d/,/ ?<N6H ]|@.g>Hl?<N3\ @fB.BE` 0RE JB Em?<N4&T.f 0SEJ@fj`8??,X?,V?,T?,d/,/,r?<N5 ]|@.f0<HѬr0l@0,TG9@TlZo0,ZlTRlX0,@g0,Xl^m 0,Xl^mBlXRlV/,2?<HlRN 0,@g0,Vl\m0,Vl\mB?<NTJ@f`?<N3 T9lB@`` HlHl>HlHlN30,>g&Hl^?<N2T\ @f`?<N2T>,LlFRG0l@o>,@`&Hl?<N\ @f`R?<N2T??,J?,H?,F?,b/,/,n?< N46 m0<HѬn0l@0,FG9@FlLoH0,LlFRlJ0,`g40,JlPl(?,L?,H?,J?,b/,jN J@g`0,@g0,JlPm0,JlPmXBlJRlH/,2?<HlDNH 0,`g40,HlNl(?,L?,H?,J?,b/,jN J@g`80,@g0,HlNmV0,HlNmBf?<?<N30XBgN1@T?,&?,(?,*?,,BgBgBgBg?<N0FNH0,`g/,j?<IN2\L N^NuNV`*Hlv?<N\ @f 0<`P?<N0T?N.XBgN,TLN^NuNV0.g*` n R  nRSn0.f`` n R  nRfN^NuNV/`H . / < /N,|X м0Sn2. n . / < /N,P X-@ 0.f.N^NuNVHBF`0 HG|0< nRf0`LN^NuNV0. | nR0. @| nN^NuNV` nRH?Bg?<N,\0. Sn J@fN^NuNV` Hl02.AA??<!N+X>N^NuNVH||Hl.Hl0Hl2Hl4/,bN)Hl/,b?<3?<N Hl/,b?< ?<N Hl/,b?<?<N Hl/,b?<?<Nx Hl/,b?<%?<N` Hl/,b?</?<NH ?,.?,0?,2?,4BgBgBgBg?<N'?,.?,0?,2?,4?<Bg/,bN':,f(?<?<?<?<BgBgBg?</,bN'H?<,HH//,N ?<?<BgBgBg?< /,bN&?<,HH//,N| ?<?<BgBgBg?</,bN&Bg,HAn//,N ?<?<BgBgBg?<//,bN&`?<0,fH//,N ?<?<BgBgBg?<%/,bN&*` .g,g.,gAd)H9|?f`Ah)H9|f`^,g.,gAl)H9|'f`Ap)H9|Of`*,gAt)H9|/f`Ax)H9|_f?</, ,м/N ?<?<BgBgBg?<3/,bN%T?<0,fH//,N ?<?<BgBgBg?<%/,bN%0,hlfo9|h?<0,hH//,N ?<?<BgBgBg?</,bN$B.?<2/,bN%F\9@j`|g`:<@@?<Bg?<?<BgBgBg?</,bN$`(`|g`<@@|?<Bg?<?<BgBgBg?</,bN$r?<?<?<?<BgBgBg?</,bN$L?<?<?<?<BgBgBg?</,bN$&``|g`<@@`r`|g`B,|`T`| g`|`:`|!g`B,`"`|g`<@@``|g`B,|``|*g`<@H?NT``|)g`<@H?N|T``|4g`d)lB,0<<9@l`,g^,H|gNH|,gH|$gH|"f*0,l2RFAB,H|,g``,H`|g`DH?N:TH|o`0,l|g`0,l@HG9@l``|g`NH|"f.B, lRf`H|,g``0RFA`T`|g`DH|0mH|9o`~0,l HG|09@l llo`8``xH`|$g`|Bll`V`|"g`B|`<`|H|0mH|9o`H|09@l`` lRf,H|g,H|f0,l2RFAN`J@g*,g?<Hl|N\`?<HlN\,g?<HlN\`?<HlN\,g?<HlN\`?<HlN\,g?<HlN\`?<HlN\A&Hl?</ Np\A&Hl?</ NX\A&H0,h@?</ N>\A&H0,f@?</ N$\A&Hl?</ N \?HlN\`|5g`B.BgBg?<?<BgBgBg?,j/,bN`Hl?<N \`4Hl?<N \`"Hl2?<N\`Hlp?<N\|?<Bg?<?<BgBgBg?<4/,bN`~`| g`,H|clR,`$`| g`n,H|oS,?<,HH//,N2 ?<?<BgBgBg?< /,bNR,,HHAf S,`T``|g`",,HSAHAlR,`$`|g`T,H|oS,?<,HH//,N ?<?<BgBgBg?</,bN`V`|-g` R,,H| oB,`*`|.g`^S,,H|l| Bg,HAn//,N ?<?<BgBgBg?<//,bN``|g`0,hlflRlh``|g` lhoSlh`~`|$g` lflRlf`"`|&g`L0,flhoSlf?<0,fH//,N: ?<?<BgBgBg?<%/,bNZ`.f*?,.?,0?,2?,4BgBgBgBg?<NLN^NuNVHSn <. Hƍ0:. Hŋ0HERE l4f>|0@<`BG`*Hl?<N 8\ @f 0<`\ @fB?<N:Tg6?`|g` l 0lRl0` `|g`N l0oSl0?<0,0H//,FNl ?<?<BgBgBg?</, N``|g`Bl8``|g`9|8``|g`9|4`x`| g`9|4`^`| g`9|6`D`| g`Bl6`,`|g` <`|g`B`f4BgBg?<?<BgBgBg?,$/, N?,.?,0?,2?,4BgBgBgBg?<NgBBn`0.RnAR n mBn`0.RnAR lJf|]/,*NX`|g`B`|g` B``|g` <`ff/,^?<IN\/,*?<IN\LN^NuNVH&n>. (.<.:.Hn/??<N@ 02,H2<6A n1@0,R@ n1@Hn/??<N nBh0,R@ n1@?<?<BgBg?<Bg/NLN^NuNVH&n>. ,.Hn/??<N 2,H0A6 n1@?<?<BgBgBg?/NLN^NuNVH>.&n ?<?<NX/ ?N\\`LN^NuNVH0Hl?<BgNrP/N X lHl?<N \``|rg`HlnHlHlN N˘0,nf`NBgHl|?<N X lHl V?<N>\BgBg?<?<BgBgBg?,p/,jNpN&?<?<BgBg?<Bg/,jN`B`|g`<`p`|g` S`Z`|g` R`D`|g`<`,`&|g`|g`|g`BH@|A l lH|A l@f2 loBg?<?<?<BgBgBg?</,jN\`$BgBg?<?<BgBgBg?</,jN6?<?<BgBgBg?</,jN?<?<BgBgBg?</,jN`|g`:``BE`0,p2REAHAf` Em`Hl/,j?,p?<N( 0,z`|mg`|``|og` |`SE0Ag.BgBg?<?<BgBgBg?,p/,jN6 l`.Bg?<?<?<BgBgBg?,p/,jN lo?<?<BgBgBg?,p/,jN l0pf ?<?<BgBgBg?<O/,jN~```g 0<`0<?Bg?<?<BgBgBg?,p/,jNzfl?,r?,t?,v?,xBgBgBgBg?<NLN^NuNVH0,z`|ng` BF`*`|mg`<<``<<``BG`8RFAAH: @gpHl/,j??<NN lg&BgBg?<?<BgBgBg?/,jN`,Bg?<?<?<BgBgBg?/,jNr loRG GmjLN^NuNVH0A&HA$HA|-H`H|.f`fBgHl z/ ND A&H` nRf`S nH|\f`R nfL N^Nu)I)J"/0<NB"l$lNu NV9n`0.| A" AA-H=|` nR2.A`H0Rn nm/,N.X0,N^NuNVA`)HA@)HA)HA)HA)HA)HA)H?< NXT9l0<N^NuNV)n?<N6TN^NuNV9n9n ?<NTN^NuNV9n)n ?<#NTN^NuNV)n9n 9n 9n"9n$9n&9n(?<*NTN^NuNV)n9n 9n 9n"9n$9n&9n(9n*9n,?</NvTN^NuNV)n9n ?<2NXTN^NuNV9n9n 9n "9n$9n&9n(9n*9n,9n.?<3NTN^NuNV9n)n ?<4NTN^NuNV)n?<6NT n 0 n0 n0 n00,N^NuNV?<MNT n0 n 0 n0 n00,N^NuNV9n)n ?<NNbTN^NuNV?<ONPT n0 n 0 n0 n0N^NuNV)n)n ?<ZNT n00,N^NuNV9n?<kNTN^NuNV)n?<nNTN^NuNV9n9n 9|h?<pNTBlh n 0,N^NuNVH$.". BnJlVnDJlRnDvd`Bbd nmDdD-@-A LN^NuNV/BnJlRnDJ lRnD 0. -@0.n0. nngD -n N^.JNuN^Nu)I)J)_NM"l$l/,Nu)I)J)_NN"l$l/,Nu)I)J)_NA"l$l/,Nu)I)JHl)_Hl" <sNB"l$lNuNV)n)n .мZ)@9|dBl9| n 9PN n 0A)HA)HA)HA)HN^NuNV9|eBlBl9nNXN^NuC[1][ERROR reading destination disk !][ABORT|RETRY]C[1][ERROR writing to destination disk !][ABORT|RETRY]Cv[1][ERROR formatting destination disk !][ABORT|RETRY]CC:\AUTO\XUTI.CFGC222222 2 2 2 2 222222CnA"A"A"A"A "A$"A("A,"A0"A4"A8"CSYNTHOp NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNC:`8BOOTERp TOS     IMG3?9F?<NMXOJg*@AJf 20-H8@0:g<:8:&z`<- 8-m&zaf L0-HHAC| mp 01fQ~(O(,zN&zFB|lR6UCm |@lJDgEgaHfB<:Bmm4JG6 I6 gI|>`JDga f/:NuBNu?9F??/ Bg?<NMJ@NuNeuter Booter  (C)1985 Atari Corp.  C       C !#$%&'()*+,-./O023456789:;<="?>ABCDEFGHIJKLMN    UTaVXeWS1@RQZ[\]^_`bcdfghjkiC0123456789ABCDEFC               Cx:                                 C|                                             Nu XUTI: Can't support low resolution ! Try medium or high resolution. ---> Accessoary NOT LOADED ! XUTI.RSC XUTI: Can't find resource-file 'XUTI.RSC' ---> Accessoary NOT LOADED ! X-Utilities XUTI: No more accessoaries possible ---> Accessoary NOT LOADED ! RELEASE 2.00/E\AUTO\*.KBDRESET[3][Please insert ___________|disk in drive _:][ ABORT |CONTINUE]DESTINATIONSOURCE [3][Not enough memory for copy !][ CANCEL ][1][ERROR reading source disk !][ABORT|RETRY][1][Few space on destination disk.| |Information may be truncated !|Maybe format destination.][ CANCEL |CONTINUE][2][Copy interrupted !| | |Please select...][ ABORT |CONTINUE][1][ERROR reading source disk !| |Maybe I'm able to repair disk.][ ABORT | RETRY |TRY REPAIR][3][ERROR trying to repair sector.| |Please select...][DON'T SKIP| SKIP ][2][Copy interrupted !| | |Please select...][ ABORT |CONTINUE][1][Please specify a drive|to save configuration|data to.][ OKAY ][3][Error saving configuration !][ ABORT ]USA F BRD UK DK1 S I E JAP N DK2[1][Printer not ready !][CANCEL|RETRY]64 13240 80 48 96 PMGHWWC_N_I_Q_R_[1][Syntax error| |Please edit or CANCEL][ OK ][1][Too many digits.|Only one byte allowed (0-255)!| |Please edit or CANCEL][ OK ][1][Error in hexadecimal value| |Please edit or CANCEL][ OK ][1][Error in decimal value| |Please edit or CANCEL][ OK ][1][Can't write to disk !][ABORT|RETRY][1][Can't format disk !][ABORT|RETRY][1][Format interrupted !| | |Please select...][ ABORT |CONTINUE][3][Disk not properly formatted!][ANOTHER| SAME |CANCEL][3][Not enough memory to format !][ CANCEL ][3][Not enough memory to repair !][ CANCEL ][1][ERROR reading from disk !][ABORT|RETRY]_|__|__[2][Repair interrupted !| | |Please select...][ ABORT |CONTINUE][3][Sorry, but this sector|can't be repaired.| |Maybe skip sector ?][ABORT| SKIP ][1][Sector will be filled|with zeroes.|Data may be lost !][ABORT| OKAY ][2][Repair interrupted !| | |Please select...][ ABORT |CONTINUE][2][Can't reformat track !| | |Please select...][ABORT|RETRY][2][Can't write data back !| | |Please select...][ABORT|RETRY]\*.KBD[1][Unable to open file][ ABORT ][1][Error reading data][ ABORT ][1][Error servicing file][ ABORT ][1][Can't create file][ ABORT ][1][Error writing data][ ABORT ][1][Error servicing file][ ABORT ].KBD L*JJ$J*'40 '\9.999.999FREE MEMORYX-UTILITIESXXXXXXXXXXXXXX(C) 1986-08-03 by FORSONFORMATFormat disk with any sizeCOPYCopy disks with any sizeREPAIRRepair damaged diskPRINTERConfig printerKEYBOARDConfig keyboardSAVESave configurationEXITExit X-UtilitiesRESETSOFTPRINTER CONFIGURATIONFOR EPSON-LIKE PRINTERPrint stylePICAELITELines per page72Compressed printONOFFPerforation06Double width printONOFFLeft margin008Double strike printONOFFRight margin079Dots per line1280960Character setUSAInitialisation string:________________________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXResulting character per line: xxxCONFIGCANCELSAVE CONFIGURATIONSave to drive...SAVECANCELX-COPYSource driveABDestination driveABFormat destinationYESNOCOPYCANCELX-REPAIRRepairing disk...0|00|00PRESS MOUSE BUTTON TO BREAKX-FORMATFormatting disk...PRESS MOUSE BUTTON TO BREAKX-COPY Source: xx Tracks xx Sectors xSDestination: xx Tracks xx Sectors xSPRESS MOUSE BUTTON TO BREAK000KEYBOARD CONFIGURATIONSHIFTEDUNSHIFTEDCAPS LOCKLOADRESTORESAVECONFIGCANCELREPAIR DISKWARNING: this program only tries torepair a disk. Maybe it would writewrong data to the disk. So be sure,You have a backup !ABRepair in driveYESNOWrite data backTRY REPAIRCANCELX-FORMATDrive to formatABSides per diskONETWOType of diskNORMALSYSTEMTracks per side80Sectors per track09XXXXXXXXXXXName of disk: ________.___FFFFFFFFFFFFORMATCANCEL0 @@((((    @@ 0J:10(''$. /; HWXq*0Lc  37Ox))"Plmops 0 2 *+  L h <    & r y  &     &   &  &  &   &  @!5M6'd pu  0 { @ @ ' 0 @ @ '0  @ ,@"! ' !'#&0 $ %@& H"@+(* ') *'!0,/0 -% .@/@+ d312A280 (4 !5/ %< !qABC D E F G  H IJK LMNO P %$ 0+'2 ?A  'C UW  ' Y l ps %x 4  '!  4  !  4'( '  ! !tE@1@<A@<A@>A @>A @ (@ D t  & @1 @2 @3@4 @5@6@7@8@9 @0"PO&@e@1@2@3@4 @5 @6@7@8@9 @0!@"@'#@# $@b#%@t&@Q'@W(@E)@R *@T +@Z,@U-@I.@O/@P0@1@  2@d$3@c4@A5@S6@D 7@F 8@G9@H:@J;@K<@L=@>@?@~$@@sA@<B@YC@XD@C E@V F@BG@NH@MI@,J@.K@-L@sM@aN@ O@l@+YQX-R@hS@uT@iU@V@cW@X@P@lZk6 [@(\@)]@/^@*_@7`@8a@9b@-c@4d@5e@6f@+g@1h@2i@3j@ k@0Y@.pmoA 'n o l q r s+ t %$ 0 ###?#   #S UW  # g k n~  % -#  #   #     @ `@ @ |@ < %C $\ 4#,$``" v.|N .NA"/0<NBNuNVa6`.N 3 y(f09ҰyfaZaN^NuNVN ./</<R/<N  3.t?9N lT3N^NuNV3Bn`30n0Rn n m.T/</<N PN^NuNV`v>N0@|nB?<N JT.H`aHaa@a`>N0-@B.`2>/< /< ?<N0 B?<N TR. .m>/./.?<N0 `aBW?< N Ta`B.`aR. .dm`rB.`a.R. .dm`XB?<N JTB.`.?<N JTBW?<N T.?<N JTBW?<N T.P?<N JTBW?<N T.?<N JTBW?<N T.?<N JTBW?<N T..?<N JTBW?<N T.x?<N JTBW?<N T.?<N JTBW?<N T. ?<N JTBW?<N T.V?<N JTBW?<N T.?<N JTBW?<N T.?<N JTBW?<N T.4?<N JTBW?<N T.~?<N JTBW?<N T.?<N JTBW?<N T.?<N JTBW?<N TR. .mBBgN JTB?<N JT``|b@0@\ PNB?<N JTBW?N0.>N0,ܼ}`.a&.N j޼PmJLN^NuNVH? >N0.,ܼ|BD`(*G(FBC`**(PPRC|mXD|PmJL0N^NuNVH>N0.,ܼ}` *G F*XmJL N^NuNVH>N0-@BF`PBG`:G0P F*XG|PmBW?< N TBG`:G0P F*XG|PmRF|mJL N^NuNVB."n$IP`&Q"$ . @R.DmN^NuNV>N.Q/]/Y/U/.N >?.?.?.?.?.?.?. ?<N d>?.?.?.?.?.?.?. ?<N d>NN^NuNV.Q/]/Y/U/.N >?.?.?.?<Bg/.N N^NuNV>N.Q/]/Y/U/.N >?.?.?.?.?.?.?. BgN d>?.?.?.?.?.?.?. ?<N d>?.?.?.?<Bg/.N >NN^NuNV>?.?.?./.a& > /.N BX=@>?.?.?./.a 0.N^NuNV.Q?. /.al\>?.?.?.?.?. /.N N^NuNV0. Юм -@ n-P n-PJ.f nB .N^NuNV.T/.?. /.N 0. Ю.a? n1_0. Ю.a? n1_N^NuNVB@=@=@`Rn n2nJf n 2n0H2nRnRnJ@fN^NuNVH Bn*n(n `Jfp`RRRnHg0.JL0N^NuNVBn`Rn n2n"n 4nfN^NuNVBn`Rn n2nJf0.N^NuNV n0N^NuNV0. Юм -@ n0n"n2N^NuNV0. Юм -@ n02.FAA"n2N^NuNV>?. /.a\N^NuNV>?. /.a\N^NuNVH"nx"vQ"QL?N^NuNV## .мZ#3dBy3  n 3N  n 0####N^Nu#"<psNBNuNV30.|Hм`-@=|` nH2n2RRn nm.NB@09BN^NuNV###"#B###> aF3BpN^NuNV>a*pN^NuNV#>N (N^NuNV3"3 $>N (N^NuNV#3 ">2N (N^NuNV3"3 $3 &3(3*3,3.3032>3N (N^NuNV#>6N ( n 0D n0F n0H n0JB@09BN^NuNV>MN ( n0D n 0F n0H n0JB@09BN^NuNV3"# >NN (N^NuNV3"# >#N (N^NuNV#3 "3$3&3(3*3,>*N (N^NuNV#3 ">,N ( n0D n0FB@09BN^NuNV3">kN (N^Nu#NN/9Nu#NM/9Nu#NA/9Nu ?aLPLa?H HHɘfHdHHd0@@fIIfGdb䓄dz0@@f,I4I$Gb@@z@ ,4 $ @@@  J 3 J J 2 9%J3JZJR2R  9e&%#?aLPZLRaR?e &#>R Klick mich"  *$$J                 &X64r00"&.0&4bd    $           `vN .|"N.NA"/0<NBNuNV ng*?.?.?./. ?. y(N `` noUn`l0.Hr й%"-@Jnf&Bn` n "n0TT Rn nm`$Bn` n"n 0T TRn nmSnRnJnnBN^NuNV ng?. y'TNT`` <N^NuNV ng?. y(JNT``J9&2g B9&2p``B@N^NuNV-y%"` nBR 9%"мHbN^NuNV-| n#R nMR n R n0R n0R n R n0R n2R n R n0R n0R n R nFR nFR n R nDR n R nBR naR nmR n R n R nDR niR nsR nkR n@R n R n`R nR nR n@R n R n R n R nN^NuNV yz#'T y#(J y~#( yz y  y~ y "y"N^NuNV yz 'T y (J y~ ( y "y"N^NuNV y "y"N^NuNVN.#/<'4/<'/<(~N 3%&.?9(ZN*T3".(T/<(/<(/<(?<BgN.?<&NFTB9(|3(a nN^NuNVBnBn`$0. "n4nHA|=@Rn n2n 0m n2n 9n nm0.HN^NuNVB9(.?<HNfT#'.ar#'|J'|g 9'|м r #'/</9'NPм#' 9'Ȱ'o&.?<NT#''#''|.'?<HNfT#%"J%"gta(| 9'|3/< /</9'NP/NP3aB.&?<&NFT.?<NT(`.?<NT`.?<NTN^NuNVBn`0n'f0Rn n m3'z3%&%(.'/<%(/<'fNPN^NuNVB?<NT>?9%(NVT>?9%(NTBW?9%(NT=y'=y'09'y'b=@09'y%*=@.Q?9%(N,TB?<NTN^NuNV>(T?9(?9(?9(?<NP3(BWBg/<?<?9(N >(T?9(?9(?9(?<?<?<?<N">(T?9(?9(?9(?9(N*P.%*/<'b/<'/<'?<?9(NN^NuNVByBy.?<&NFT&2.%"?<INfTN^NuNV>(a@.'/<(P/<(X/<(V/<^N>'?9(P?9(X?9(V?9(T?9(?9(?9(BgN\>'?9(P?9(X?9(V?<Bg/<^NL>/<^N:X3(>'?9(P?9(X?9(V?9(T?9(?9(?9(?<N\09(`|aJ9(gDBW?<(?9(T?9(?9(?9(Bg?</<^NBW?<?9(T?9(?9(?9(Bg?< /<^NBWBg?9(T?9(?9(?9(Bg?< /<^NBWBg?9(T?9(?9(?9(Bg?</<^NBW?< ?9(T?9(?9(?9(Bg?</<^NBW?< ?9(T?9(?9(?9(Bg?</<^N`6BW?< ?9(T?9(?9(?9(Bg?</<^N`BW?< ?9(T?9(?9(?9(Bg?</<^N.?<NT`aBW?< ?9(T?9(?9(?9(Bg?</<^NBWBg?9(T?9(?9(?9(Bg?< /<^NBW?<(?9(T?9(?9(?9(Bg?</<^NBW?<?9(T?9(?9(?9(Bg?< /<^NBW?<(?9(T?9(?9(?9(Bg?</<^NBW?<?9(T?9(?9(?9(Bg?</<^N.6?<NT`h.?<NTBWBg?9(T?9(?9(?9(Bg?</<^N` `|gV|g|g|gj>(Nd>(T?9(?9(?9(?<?<?<?<Nt>(N~3)%3"%3(N^NuNV>N,=n=n =n =n.U/Y/]/Q?< ?9(N`&.U/Y/]/Q?< ?9(NJngJnfBWN,N^NuNV`*.(N/<(N/<(N/<(N/<(N/<(NBgBg/<%BgBgBgBgBgBgBgBgBgBg?9(N?<?<?<N\83">N,9"g09%`09%y(f>%?9%?9%?9%a\`l09%y"f y(f aata`D09%y"f y(g>%(Nr3(``|gt|(g|)gBWN,`N^NuNV# "3 (\3(^By(b3(f3(hN#%0"N^NuNV3e(\By(^By(b3(hNN^NuNV#"#" .мZ#"3d(\By(^3 (b n 3(hN n 0(h#""##"#&4"#%0"N^NuNV3 "3(\By(^3(b3(hN09#N^NuNV3 "3(\By(^3(b3(hN09#N^NuNV3 "3(\By(^3(b3(hN09#N^Nu#(\""<"psNBNuNVH?BCB..,. f#" <`hlDRCJlDRCn8fzB`0l :HGH`xe`Jge`|fD#" D`#" JLN^NuNV3'0.|Hмv-@=|` nH2n'2RRn nm.(FNB@09'N^NuNV#'$#'6$#'$#'$#(t%#(%#$(F> aF3'(ZpN^NuNV>a*pN^NuNV3'3 '3 '3'3'3'3'3'3'3'3'3'3 '3"'#$(t3('3*'>N~ n,0' n00' n40' n80' n<0' n@0'B@09'N^NuNV#(t3 '>2N~N^NuNV3'3 '3 '3'3'3'3'3'3'>3N~N^NuNV3'# (t>4N~N^NuNV#(t>6N~ n 0' n0' n0' n0'B@09'N^NuNV3'3 '3 '3'3'3'3'3'>IN~N^NuNV3'3 '3 '3'3'3'3'3'>JN~N^NuNV>MN~ n0' n 0' n0' n0'B@09'N^NuNV3'# (t>NN~N^NuNV3'# (t>#N~N^NuNV#(t3 '3'3'3'3'3'>*N~N^NuNV#(t3 '3'3'3'3'3'3'3'>/N~N^NuNV3'3 '3 '3'3'>dN~N^NuNV3'3 '3 '3'3'>eN~N^NuNV3'>fN~N^NuNV3'>gN~N^NuNV3'3 '>hN~ n 0' n0' n0' n0'B@09'N^NuNV3'3 '3 '3'3'3'>iN~N^NuNV3'>kN~N^Nu#"NN/9"Nu#"NM/9"Nu#"NA/9"Nu s '''DE'C@rh0P(F (Y@ BxhBB h8 m(X x  08  8& P8B p8% x0 [3][YOU HAVE TRIED TO ALLOCATE|TOO MUCH MEMORY. THE MAXIMUM|SIZE HAS BEEN ALLOCATED|CHECK DISK D INFO FOR SIZE][ Time to upgrade ][3][COULD NOT ALLOCATE|TRY REBOOTING][ Oh Well... ][1][Memory Allocated][ Thanks ][0][Michael Vederman|15319 Tonya|Houston, Tx 77060|HACE BBS 713-644-6400][ A Houston ACEware ][0][Memory Deallocate|does not work right|due to GEMDOS bugs.|You can reallocate up|to 1K less than before][ OK ][0][Ramdisk Resize| |(under construction)][ OK ][0][No memory allocated| | Enter size and| try again][ OK ][1][Allocate ramdisk FIRST| |Then install drive D][ SURE ]#M 00 02 00 FF D Ram Disk@ `@ rv~00100Size:_____K99999 Enter ramdisk size, then select  Type in the size you desire  To free ramdisk memory, select  First enter new size, then select Deallocate RamdiskResize RamdiskEXITProgram byMichael VedermanAllocate Ramdisk Mike's Ramdisk Mike's Ramdisk v 0.95 :.~  v                                          . 2"         &f  $                   dP0H n %@R DfBn n H|-@R Df n R Rn| <0fG n R =|<*f-M n=PT n R `8`*JnlBnH2. A|=@ n R <0m<9o|<.f BF n R <*f-M n<T R nFR nFR n R nDR n R nBR naR nmR`rv!".|-N B&B&B&B&#xa23% #3 $#r'a3% ?<NNT3 ?<NAT<A g y g2<*| Z` 2<*| b0<z(| z8Q*| za&# *h<#L *mT#L y g*i*<` *i*<*mL(|(Q#B$a**|(|Iz gR` M fQ # "¼ AU"f# *| ^Ba0kN3 *| zFa*a@*| 9D g" 9d g 98 fa`a## ,'ar y( ,f09 4y f?<NAT3 ?</< |?<GNAP# j aBy a y f ab`& y f a"` y fa3 a?9 ?<NAX/< |?<;NA\(y ( `*(y (W | ga\J9 fNu y%gNu*| Bak3 *| *<akza(|*|z_ y g@ | Jhf*|:<a^`NAXJ@Nux6:6:QQNu$| rBZQNu# a## '# 'aB y <A??<NAX y T"|  4 : %@ jFONT.DEFA:\*.FNTA:\*.FN8    &           N   N  0 &        H . N t.. N tFONTTRIXS Pt :CHUB FN8Ut MORMALUKFNTWt THIN FNT[t * FONT TRICKS! * * An accessory to load any DEGAS or 8-bit font and make it the GEM default * * By Charles F. Johnson * * Last revision: 10/12/86 .globl _main init_a = $A000 degbt = 7 fn8bt = 8 sysbt = 9 .text move.l #ustk,a7 * get program stack jsr _main * go to program _main: clr.l ap1rsv appl_init clr.l ap2rsv clr.l ap3rsv clr.l ap4rsv move.l #a_init,aespb bsr aes move.w intout,myid move.l #m_reg,aespb menu_register move.w myid,intin move.l #accmsg,addrin bsr aes move.w intout,menuid move.w #4,-(sp) Check screen resolution trap #14 addq.l #2,sp move.w d0,res And save it move.w #$19,-(sp) Get current drive and set fsel_input trap #1 directory areas addq.l #2,sp add.b #65,d0 move.b d0,ddir move.b d0,fdir cmp.w #2,res Are we in high res? beq hires Yes, skip move.w #8,d1 d1 is the Y coordinate multiplier move.l #mebd1,a5 (character height) bra setres hires: move.w #16,d1 move.l #hibd1,a5 setres: move.w #8,d0 d0 is the X coordinate multiplier move.l #3,d5 (character width) move.l #boxdat,a4 cpybd: move.w (a5)+,(a4)+ dbf d5,cpybd move.l #fntbox+24,a5 Go set coordinates in object tree move.l #8,d5 9 objects bsr coord1 dc.w init_a move.l -$16(a0),fsavt move.l -$1C4(a0),a5 Save original font pointers move.l $4C(a5),fsav1 move.l $54(a5),a5 move.l $4C(a5),fsav2 cmp.w #2,res Are we in high resolution? beq dohi1 Yes, skip move.l 4(a1),a5 Pointer to 8x8 font header move.l #511,d5 Count 2048 bytes (512*4) bra copyf1 dohi1: move.l 8(a1),a5 Pointer to 8x16 font header move.l #1023,d5 Count 4096 bytes (1024*4) copyf1: move.l 76(a5),a5 Pointer to font data move.l #fntdat,a4 copyf2: move.l (a5)+,(a4)+ Copy original font data to our area dbf d5,copyf2 * For some reason, an evnt_timer call with a * wait parameter of zero seems to allow GEM * enough time to start up. Without this the * font will be loaded and installed, but * GEM sets the pointers back... move.l #e_timr,aespb clr.l intin bsr aes move.l #$A000,a5 This section searches for the fsel_input s_1: move.l #itmtxt,a4 text "ITEM SELECTOR", then searches move.l #12,d5 backwards for the pointer to this text s_2: move.b (a5),d0 in the fsel object tree. New string cmp.b (a4),d0 addresses can be poked into this location. beq s_3 addq.l #1,a5 bra s_2 s_3: move.l a5,a0 s_4: cmp.b (a5)+,(a4)+ bne s_1 dbf d5,s_4 move.l a0,d0 move.l a0,iasav move.l a0,d1 and.l #$FFFFFFFE,d1 move.l d1,a0 s_5: subq.l #2,a0 move.l (a0),d1 cmp.l d1,d0 bne s_5 move.l a0,itmadr move.l #defnam,a5 Try to open the FONT.DEF file clr.l d5 bsr openfl bmi evntms Error, assume file not found and skip ahead move.w d0,handle Save handle move.l #buffer,a5 Read FONT.DEF to buffer move.l #70,d5 bsr readfl bsr closfl Close it like a good boy move.l #buffer+3,a5 Set pointer to file/path name cmp.b #'D',buffer DEGAS? beq degfnt Yes, skip cmp.b #'d',buffer DEGAS? beq degfnt Yes, skip cmp.b #'8',buffer Actually it better be 8-bit at this point bne evntms If it ain't, skip ahead bsr ld8b4 Go load the font bra evntms Skip degfnt: bsr ldde4 Load 'er up evntms: move.l #e_mesg,aespb evnt_mesag (All we want is an AC_OPEN) move.l #mspipe,addrin Pass address of message pipe bsr aes cmp.w #40,mspipe Is this an AC_OPEN message? bne evntms No, go back move.w mspipe+8,d0 Is it for this accessory? cmp.w menuid,d0 bne evntms No, go back move.w #$19,-(sp) Get current drive trap #1 addq.l #2,sp move.w d0,curdrv Save it move.w #0,-(sp) Get current pathname move.l #curpth,-(sp) move.w #$47,-(sp) trap #1 addq.l #8,sp move.l #fntbox,boxadr Draw the dialog box bsr drawbx clr.w state Clear the selected object bsr change cmp.w #degbt,selobj DEGAS font? bne ckfn8 No, skip bsr loadde Go load it bra back ckfn8: cmp.w #fn8bt,selobj 8-bit font? bne cksys No, skip bsr load8b Go load it bra back cksys: cmp.w #sysbt,selobj System font? bne back No, skip bsr resetf Reset system font pointers back: move.w #3,diflag Release dialog box memory bsr dial move.w curdrv,-(sp) Reset current drive and pathname move.w #$0E,-(sp) trap #1 addq.l #4,sp move.l #curpth,-(sp) move.w #$3B,-(sp) trap #1 addq.l #6,sp move.l itmadr,a4 Replace fsel text pointer move.l iasav,(a4) bra evntms Go back and wait for another message! * The subroutines loadde: move.l itmadr,a4 move.l #i_deg,(a4) move.l #ddir,a0 Set directory line for fsel bsr fsel tst.b file File selected? bne ldde2 Yes, skip rts Exit ldde2: cmp.w #1,intout+2 OK button? beq ldde3 Yes, skip rts Exit ldde3: move.l #file,a5 Address of filename ldde4: clr.l d5 Read only bsr openfl Go open it bmi exnof Error, go exit move.w d0,handle Save handle number move.l #buffer,a5 Read 2050 bytes into buffer move.l #$0802,d5 bsr readfl bmi exnof bsr closfl Close dat file! move.l #buffer+512,a4 Prepare for conversion move.l #fntdat+32,a5 Skip first 32 characters move.l #95,d5 96 characters cmp.w #2,res High res? beq hidlp1 Yes, skip move.l #buffer,a0 Can this DEGAS file be scaled to half-height? tst.w 2048(a0) bne delp1 Yes, go do it move.l #nohalf,a5 No, show an alert box with commiseration move.w #1,d5 message and exit bsr alert bra exnof delp1: move.l #7,d4 These sections convert DEGAS fonts to delp2: move.b (a4),(a5) the ST storage format, for either low, addq.l #2,a4 medium or high res add.l #$0100,a5 dbf d4,delp2 suba.l #$07FF,a5 dbf d5,delp1 bra fntset hidlp1: move.l #15,d4 hidlp2: move.b (a4)+,(a5) add.l #$100,a5 dbf d4,hidlp2 suba.l #$0FFF,a5 dbf d5,hidlp1 fntset: bsr setfnt Install the font exnof: rts And exit load8b: move.l itmadr,a4 move.l #i_fn8,(a4) move.l #fdir,a0 bsr fsel tst.b file bne ld8b2 rts ld8b2: cmp.w #1,intout+2 beq ld8b3 rts ld8b3: move.l #file,a5 ld8b4: clr.l d5 Open the font file bsr openfl bmi exnof move.w d0,handle move.l #buffer+$100,a5 Read font file to buffer move.l #$200,d5 and rearrange to ASCII order bsr readfl as we do it bmi exnof move.l #buffer,a5 move.l #$100,d5 bsr readfl bmi exnof move.l #buffer+$300,a5 move.l #$100,d5 bsr readfl bmi exnof bsr closfl Close the file move.l #buffer+256,a4 move.l #fntdat+32,a5 move.l #95,d5 cmp.w #2,res beq hi8lp1 b8lp1: move.l #7,d4 b8lp2: move.b (a4)+,(a5) add.l #$0100,a5 dbf d4,b8lp2 suba.l #$07FF,a5 dbf d5,b8lp1 bra set8 hi8lp1: move.l #7,d4 hi8lp2: move.b (a4),(a5) add.l #$0100,a5 move.b (a4)+,(a5) add.l #$0100,a5 dbf d4,hi8lp2 suba.l #$0FFF,a5 dbf d5,hi8lp1 set8: bsr setfnt rts setfnt: dc.w init_a move.l #fntdat,-$16(a0) move.l -$1C4(a0),a5 Set system font pointers to user fonts cmp.w #2,res beq hiset move.l #fntdat,$4C(a5) bra setx hiset: move.l $54(a5),a5 move.l #fntdat,$4C(a5) setx: rts resetf: dc.w init_a move.l fsavt,-$16(a0) move.l -$1C4(a0),a5 Restore system font pointers move.l fsav1,$4C(a5) move.l $54(a5),a5 move.l fsav2,$4C(a5) rts * Open a file * Enter with: a5= address of filename * d5= read/write mode openfl: move.w d5,-(sp) move.l a5,-(sp) move.w #$3D,-(sp) trap #1 addq.l #8,sp tst.w d0 rts * Read a file * Enter with: a5= address of buffer * d5= number of bytes to read readfl: move.l a5,-(sp) move.l d5,-(sp) move.w handle,-(sp) move.w #$3F,-(sp) trap #1 add.l #12,sp tst.l d0 rts * Close a file closfl: move.w handle,-(sp) move.w #$3E,-(sp) trap #1 addq.l #4,sp tst.w d0 rts * This routine sets all the object coordinates in a specified tree * Enter with d0= x coordinate multiplier (usually 8) * d1= y coordinate multiplier (8 or 16) * a5= address of starting object * d5= number of objects in tree coord1: move.l #1,d4 add.l #16,a5 coord2: move.w (a5),d3 Adjust position coordinates of objects mulu.w d0,d3 based on the screen resolution move.w d3,(a5)+ move.w (a5),d3 mulu.w d1,d3 move.w d3,(a5)+ dbf d4,coord2 dbf d5,coord1 rts clrfil: move.l #file,a2 Clear out the filename storage area move.l #15,d1 for fsel_input clrf2 clr (a2)+ dbf d1,clrf2 rts fsel: move.l a0,temp Save address of directory name bsr clrfil Clear file name move.l #f_sel,aespb fsel_input move.l temp,addrin Pass directory string address move.l #file,addrin+4 Pass file name address bsr aes clr.l d0 move.l temp,a0 move.b (a0),d0 Get drive number sub.b #65,d0 move.w d0,-(sp) move.w #$0E,-(sp) Set current drive trap #1 addq.l #4,sp move.l temp,a0 Also set pathname from fsel addq.l #2,a0 move.l #pathnm,a1 move.l #63,d5 Search forward and copy til zero pathlp: tst.b (a0) beq plx1 move.b (a0)+,(a1)+ dbf d5,pathlp plx1: move.l #63,d5 plp2: cmp.b #"\",-(a1) Search backward til "\" and beq plx2 set a zero after it dbf d5,plp2 plx2: addq.l #1,a1 clr.b (a1) pea pathnm Set current pathname move.w #$3B,-(sp) trap #1 addq.l #6,sp rts * form_alert * Enter with a5= address of definition string * d5= number of default box alert: move.l a5,addrin Set address of string move.w d5,intin Set default box move.l #f_alrt,aespb Display alert box with form_alert bra aes * Dialog box drawing routine * Enter with boxadr= object tree address drawbx: move.l #f_cntr,aespb First, let's call form_center move.l boxadr,addrin bsr aes move.w intout+2,cx move.w intout+4,cy move.w intout+6,cw move.w intout+8,ch clr.w diflag Reserve screen buffer memory bsr dial move.w #1,diflag bsr dial move.l #o_cdrw,aespb Now, let's call objc_draw clr.w intin Root object gets drawn first move.w #1,intin+2 Up to 1 level of subordinate objects move.w cx,intin+4 move.w cy,intin+6 move.w cw,intin+8 move.w ch,intin+10 move.l boxadr,addrin bsr aes formdo: move.l #f_do,aespb Here's where it all happens --- form_do clr.w intin No editable text field move.l boxadr,addrin bsr aes move.w intout,selobj rts * form_dial dial: move.l #f_dial,aespb move.w diflag,intin diflag determines which action is taken move.w #16,intin+2 Expanding box will grow from "Desk" move.w #2,intin+4 on menu bar move.w #64,intin+6 cmp.w #2,res Adjust for different resolutions beq cntrs1 move.w #8,intin+8 bra cntrs2 cntrs1: move.w #16,intin+8 cntrs2: move.w cx,intin+10 move.w cy,intin+12 move.w cw,intin+14 move.w ch,intin+16 bra aes * objc_change change: move.l #o_chng,aespb Resets a selected object after exiting dialog move.w selobj,intin clr.w intin+2 move.w cx,intin+4 move.w cy,intin+6 move.w cw,intin+8 move.w ch,intin+10 move.w state,intin+12 clr.w intin+14 move.l boxadr,addrin bra aes * AES subroutine aes: move.l #aespb,d1 move.l #$c8,d0 trap #2 rts data accmsg: dc.b ' Font Tricks!',0 nohalf: dc.b '[3][ This font cannot be scaled |' dc.b ' to half-size; a monochrome |' dc.b ' monitor is needed. Sorry! |' dc.b " ][ That's Life! ]",0 title1: dc.b ' FONT TRICKS! ',0 title2: dc.b 'Presents...',0 title4: dc.b 'by Charles F. Johnson',0 title5: dc.b 'Install which font?',0 degbms: dc.b 'DEGAS',0 b8bms: dc.b '8-BIT',0 sysbms: dc.b 'SYSTEM',0 null: dc.b 0,0 itmtxt: dc.b 'ITEM SELECTOR',0 i_deg: dc.b 'LOAD DEGAS FONT',0 i_fn8: dc.b 'LOAD 8-BIT FONT',0 even a_init: dc.w 10,0,1,0,0 m_reg: dc.w 35,1,1,1,0 e_timr: dc.w 24,2,1,0,0 e_mesg: dc.w 23,0,1,1,0 f_sel: dc.w 90,0,2,2,0 f_alrt: dc.w 52,1,1,1,0 f_cntr: dc.w 54,0,5,1,0 f_do: dc.w 50,1,2,1,0 f_dial: dc.w 51,9,1,1,0 o_cdrw: dc.w 42,6,1,1,0 o_chng: dc.w 47,8,1,1,0 aespb: dc.l contrl,global,intin,intout,addrin,addrout * Bit image tables for Analog logo imag0: dc.w $0000,$0000,$0000,$0000 dc.w $0000,$0000,$1FE7,$C083 dc.w $FC00,$3FF7,$E1C7,$FE00 dc.w $6077,$F1CC,$0E00,$C077 dc.w $79D8,$0E00,$E077,$3DDC dc.w $0E00,$FF77,$9FDF,$EE00 dc.w $FFF7,$CFDF,$FE00,$FF77 dc.w $E7DF,$EE00,$F877,$E3DF dc.w $0E00,$FC77,$E1DF,$8E00 dc.w $FC57,$E15F,$8A00,$7823 dc.w $C08F,$0400,$0000,$0000 dc.w $0000,$0000,$0000,$0000 dc.w $0001,$C722,$F200,$0002 dc.w $28B6,$8A00,$0002,$08AA dc.w $8A00,$0002,$08A2,$F200 dc.w $0002,$28A2,$8200,$0001 dc.w $C722,$8100 imag1: dc.w $0000,$0000,$0000,$0000 dc.w $0000,$0000,$C003,$FF1F dc.w $F800,$E007,$FFBF,$FC00 dc.w $E007,$FFBF,$FC00,$E007 dc.w $03B8,$0000,$E007,$03B8 dc.w $0000,$F007,$83BC,$F800 dc.w $F807,$C3BE,$7C00,$FC07 dc.w $E3BF,$1C00,$FE07,$F3BF dc.w $9C00,$FFE7,$FFBF,$FC00 dc.w $FFD7,$FEBF,$F400,$7FE3 dc.w $FF1F,$F800,$0000,$0000 dc.w $0000,$0000,$0000,$0000 dc.w $2FA8,$4E00,$0000,$222C dc.w $5100,$0000,$222A,$5000 dc.w $0000,$2229,$5300,$0000 dc.w $2228,$D100,$0000,$C228 dc.w $4F00,$0000 * BITBLK structures btblk0: dc.l imag0 dc.w 6,22,0,0,1 btblk1: dc.l imag1 dc.w 6,22,0,0,1 * TEDINFO structures tinfo0: dc.l title2,null,null dc.w 5,6,2,$1180,0,-1,12,1 tinfo1: dc.l title4,null,null dc.w 5,6,2,$1180,0,-1,22,1 * Initialized position data for object #0 mebd1: dc.w $60,$16,$E8,$50 hibd1: dc.w $60,$26,$E8,$A0 * Object tree for dialog box fntbox: dc.w -1,1,9,20,0,16 dc.l $00021100 boxdat: dc.w 0,0,0,0 dc.w 2,-1,-1,23,0,0 dc.l btblk0 dc.w 1,1,5,1 dc.w 3,-1,-1,23,0,0 dc.l btblk1 dc.w 6,1,5,1 dc.w 4,-1,-1,21,0,0 dc.l tinfo0 dc.w 12,1,9,1 dc.w 5,-1,-1,28,0,1 dc.l title1 dc.w 12,2,14,1 dc.w 6,-1,-1,21,0,0 dc.l tinfo1 dc.w 12,3,16,1 dc.w 7,-1,-1,28,0,0 dc.l title5 dc.w 5,5,19,1 dc.w 8,-1,-1,26,5,0 dc.l degbms dc.w 2,7,7,2 dc.w 9,-1,-1,26,5,0 dc.l b8bms dc.w 11,7,7,2 dc.w 0,-1,-1,26,$25,0 dc.l sysbms dc.w 20,7,7,2 dc.l fntbox defnam: dc.b 'FONT.DEF',0 ddir: dc.b 'A:\*.FNT' ds.b 56 fdir: dc.b 'A:\*.FN8' ds.b 56 bss even boxadr: ds.l 1 fsavt: ds.l 1 fsav1: ds.l 1 fsav2: ds.l 1 temp: ds.l 1 itmadr: ds.l 1 iasav: ds.l 1 myid: ds.w 1 handle: ds.w 1 menuid: ds.w 1 res: ds.w 1 diflag: ds.w 1 selobj: ds.w 1 state: ds.w 1 cx: ds.w 1 cy: ds.w 1 cw: ds.w 1 ch: ds.w 1 curdrv: ds.w 1 file: ds.w 8 mspipe: ds.w 8 pathnm: ds.b 64 curpth: ds.b 64 buffer: ds.b $0810 fntdat: ds.b $1000 * GEM arrays .even contrl: ds.w 12 intin: ds.w 128 intout: ds.w 128 global: apvrsn: ds.w 1 apcont: ds.w 1 apid: ds.w 1 apprvt: ds.l 1 apptre: ds.l 1 ap1rsv: ds.l 1 ap2rsv: ds.l 1 ap3rsv: ds.l 1 ap4rsv: ds.l 1 addrin: ds.w 128 addrout:ds.w 128 even ds.l 1 ds.l 256 ustk: ds.l 1 end fffffff>`<|fl0fF68of;88<p8~|x88880808~~~~p8 8p<~fppp~~>xln~~|x~`|`~~~~`|pppp>`nf~~>vv~~vvv~~~~ x````~~~><~<<<<<<vvvvv~<nnnnn<vvv<~nnff~<<<~ 0~~~|ppp||`px<>>>>wc6>UUUUBBD"D""D"DUU8pp8?<~~<wwp<~|xxxx<nnn~>nn~<|lf~~fnnn>|~ 8~~~<~~<~x|nf8x8v~nfff~~``~~<fff<|```x```~?p`@@@|~FGG5uecc33 O_{qyx llllllllll<~b`````ff 00`f88ll8o080008p8 8pff<<< <808p`p8<<<<`p88p`<~f 8|~<<~ff~~ffff|~ff||fff~|<~ff```ff~<x|nfffffn|x~~``xx```~~~~``xx`````>~``nnfff~>ffff~~fffff~~~~ff~<ffllxxxllff`````````~~ffvv~~nnfff<~fffffff~<|~fff~|````<~fffffj|v6|~ff~|llfff>~`p8~|~~fffffffff~<fffffff<<Ƃff<<<>~ff~>``|~fffff~|<~f```f~<>~fffff~><~ff~~`~>>00~~00000<~fff~><<``|~fffffff88<<pp```llxxllff88<<|~fffffff<~fffff~<|~fffff~|```>~fffff~>|~f``````>~`|>~|~~fffffff~>ffffff~<|ll|8|lfffff~>||~~8p`~~<00``000<8<  <80{44bb88TTTT88 @@@@ ~~<<Ù<<~~ƒ88PP ||<<<<<<~~88 8xxx0 aaHnvN?<209{/?Cv IO$Op?$QN3H0<H/N -@NJ@g HnN>NhJ@g0<H/N-@N\=@0.R@A=@0.@e 0.y|?<209{/?CO$ON3H?9|6N`8?<V09{J?CO$OpQN3H?9|4N0.@d"09{R@3{09|>R@A3|>?9{HnvN@NcHnv?HnN?<209{/?C IO$Op?$QN3HNJ@g HnNbNJ@g0<H/N-@NA=@0.R@=@0.@el0.Ұy|?<209{/?CO$ON3H3{p=@0.U@=@0.ΰnnR0<y{2|C2.4|EAA}D40EAW09{S@3{Rn`09{R@3{N$J@gN(A=@`?9|6N"`?9{HnNNcHz?<Nd Hn?R@A3|>?9{HnNNcHn?N^,_NuA#yAy0B1|Az^01|A|BP1|ND3{*09{*J@k8CPE{.p QN6?9{*Hy{.N#3{,N`Hy|NTHyz^NTBgNA Batch YmodemNu/,HNVtA>-HNf6=n0. rA=@-nx?<HnHnHnxHntNFN^,_ _PN/,HNVtA8-HNf6=n p=@-nx?< HnHnHnxHntNFN^,_ _\N/,HNVtA6-HNf6=n Bn-nx?< HnHnHnxHntNFN^,_ _\N/,HNVA0-HNf6/.?. A O"Op?"QBgBgN'N^,_ _ON/,HNVnAX-HNf6"n $n p*R@r=n"n / NH-@r?<#HnHnzHnrHnnNF=nz0.N^,_ _\NNu/,HNVtA\-HNf6=n=n=n=n=n=n=n=n=n ?<3HnHnHnxHntNFN^,_ _ON/,HNVnAF-HNf60. J@jBn =n -nr?<2HnHnzHnrHnnNF=nz0.N^,_ _\N/,HNVAv-HNf6/.BgHnHnHnHnN+BgBgBgBgBg?.?.?.?.N/.Bg?<?.?.?.?.N)/.?. N(=@0.N^,_ _\N/,HNVAH-HNf6/. BgHnHnHnHnN+?<BgBgBgBg?.?.?.?.NRN^,_ _XN/,HNVtA,-HNf6-n x?<6HnHnHnxHntNFN^,_ _XN/,HNVAX-HNf6Bn"n0.r1JAg*"n 0.R@$n2.t20.R@=@`"n 0.@N^,_ _PN/,HNVA-HNf6"n Jf:p. rAl?<"n / NB,`p. R@?"n / NB,p=@p. =@0.nn&"n $Q0.S@2.tA 0Rn`"n $Qp. rN^,_ _ON/,HNVA|-HNf6"n0.-I"n0)rAW"n0)r AWÄC"n0)rAWÄCBd("n / AO"Op?"QN`"n0)rAW"n0)rAWÄC"n0)rAWÄC"n0)rAWÄCBd"n$i -J"n0)rAW"n0)rAWÄCp."ni\CBd"n0)S@@"n Jf"np.R@3@"n/ AO"Op?"QN"n0)rAW"n0)rAWÄCBd"n3n "n3n N^,_ _O N/,HNVAZ-HNf6"n0.-I"n0)rAW"n0)rAWÄCBd"n$i /"n / N`N^,_ _O NNu/,HNVxNf6=n=n -n|?<(HnHnHn|HnxNFN^,_ _PN/,HNVxNf6=n -n|?<rHnHnHn|HnxNFN^,_ _\N/,HNVxNf6-n|=n=n=n=n=n=n ?<*HnHnHn|HnxNFN^,_ _ON/,HNVNf6"n0. =i 0.N^,_ _\N/,HNVxNf6-n|=nBn=n=n=n=n=n0. rA=@?</HnHnHn|HnxNFN^,_ _ON/,HNVNf6/.?.HnHnHnHnN+/.?.?.?.?.?.?.?. NDN^,_ _O N/,HNVNf6"n0. =i0.N^,_ _\N/,HNVNf6"n0.3n N^,_ _PN/,HNVrNf6-nv=n=n=n=n ?<+HnHn~HnvHnrNF=n~0.N^,_ _O NNu/,HNVtNf6/.?."n/ "n/ N,Z"n0.-It"n$nt2"n $nt2"nt0) rAJ@g:"n$n0W@2"n$n0W@2"n$n0\@2"n $n 0\@2N^,_ _ONNu/,HNVxNf6=n-n|?<,HnHnHn|HnxNF"n2"n 2N^,_ _ONNu/,HNVtNf6AD-H=n=n=n=n=n=n ?<iHnHnHnxHntNFN^,_ _O N/,HNVtNf6AL-H=n=n?<hHnHnHnxHntNF"n2"n2"n2"n 2N^,_ _ON/,HNVNf6A*-H?.?<"n/ "n/ "n/ "n / N`N^,_ _ON/,HNVNf6A*-H?.?<"n/ "n/ "n/ "n / NN^,_ _ON/,HNVNf6A*-H?.?< "n/ "n/ "n/ "n / NN^,_ _ON/,HNVNf6A*-H?.?< "n/ "n/ "n/ "n / NN^,_ _ON/,HNVNf6AP-H?. NG0. rAfBgBgNG`(?. HnHnHnHnN?.?.NGN^,_ _TN/,HNVNf6A&-HBg?< HnHnHnHnN=n0.N^,_Nu/,HNVNf6A-H?. ?< BgBgBgBgNNN^,_ _TN/,HNVtNf6Al-H0.J@W0. J@WÄCBdBgHnHnHnHn N=n=n=n=n=n ?<eHnHnHnxHntNFN^,_ _O N/,HNVtNf6A&-H=n ?<fHnHnHnxHntNFN^,_ _TN/,HNVNf6A"-H?.?<?.?.?.?. NJN^,_ _O N/,HNVNf6AH-H"n $n p*R@r"n / HnHnN2?.?<?.?.BgBgNN^,_ _\N/,HNVNf6AH-H"n $n p*R@r"n / HnHnN2?.?<?.?.BgBgNN^,_ _\N/,HNVlNf6A-H0.J@W0. J@WÄCBdBgHnHnHnHn N=n=n=n=n=n ?<dHnHnzHnrHnnNF=nzl0.lrAg?.l"n/ N=nl0.N^,_ _ON/,HNVtNf6A&-H=n ?<gHnHnHnxHntNFN^,_ _TN/,HNVnNf6A2-H=n=n ?<jHnHnzHnrHnnNF=nz0.N^,_ _XN/,HNVtNf6Ad-H=n&=n$=n"=n =n=n?<lHnHnHnxHntNF"n2"n2"n2"n 2N^,_ _ONNu/,HNVNf6 .R-@"n ."<//Ng"2"n .r2N^,_ _O NNu/,HNVVNf6=nt=n vp. |o =|X` p. =@Xp=@Z=nXV0.ZnVn$0.Z@2.ZtA 0A1RnZ`?<Bg?.X?<HnHnHnHntHn\?<NG N^,_ _ONNu/,HNVA-HNf6?.?. NHN^,_ _XN/,HNV8A\-HNf6=nP=nR=nT=n V?<BgBg?<HnHnHnhHnPHn8?<NG ?.?. NHN^,_ _PN/,HNVA<-HNf6HnHnNH.?.?.?.?. NZ?.?. NHN^,_ _XN/,HNVA -HNf6?.?. ?.?. NN^,_ _XN/,HNV8A`-HNf6=nP=nR0.nS@=@T0.n S@=@V?< ?<Bg?<HnHnHnhHnPHn8?<NG N^,_ _PN/,HNV8A^-HNf6=n=n =nP=nR=nT=nV?< ?.?<?<HnHnHnhHnPHn8?<NG N^,_ _ON/,HNVA,-HNf6?<?.?.?.?.?.?. NXN^,_ _O N/,HNVA,-HNf6?<?.?.?.?.?.?. NN^,_ _O N/,HNV8AP-HNf6=nP=nR=nT=n V?< ?<Bg?<HnHnHnhHnPHn8?<NG N^,_ _PN/,HNVA&-HNf6?.?.?.?. Bg?<N,N^,_ _PNNu/,HNV8Nf6A~-H=nP=nR0.nS@=@T0.n S@=@V0.J@V0. J@VCBd p=@`Bn?<Bg?<?<HnHnHnhHnPHn8BgNG N^,_ _PN/,HNVNf6A"-H0.n n =n`=n 0.N^,_ _XN/,HNVNf6A"-H0.n m =n`=n 0.N^,_ _XN/,HNVNf6A-H0."n?"n0"nQ? NNN=@0. n?"n0"n Q? NN,=@"n/ ?."$n? NNR"_2"n/ ?. $n? NN8"_2"n0.$nR2"n 0.$nR2"n0rA^"n 0rA^C=B0.N^,_ _ON/,HNVtNf6A&-Hp=@?<kHnHnHnxHntNFN^,_Nu/,HNVtNf6A$-HBn?<kHnHnHnxHntNFN^,_NuNu/,HNV8A:-HNf6=n ?.Bg?<BgHnHnHnhHnPHn8BgNG N^,_ _XN/,HNVA-HNf6?< ?. NN^,_ _TN/,HNV8AL-HNf6=n=n=n=n ?<Bg?<BgHnHnHnhHnPHn8BgNG N^,_ _PN/,HNVA"-HNf6?. NHf?<?. NN^,_ _TN/,HNVA-HNf6?<?. NN^,_ _TN/,HNV8A>-HNf6=n PBnR?<BgBg?<HnHnHnhHnPHn8BgNG N^,_ _TN/,HNV8AN-HNf6?.?. NHp=n=n ?<lBg?<BgHnHnHnhHnPHn8BgNG N^,_ _XN/,HNVA"-HNf6?. NH?<?. NN^,_ _TN/,HNVA.-HNf60. rA?NH?<h0. rA?NN^,_ _TN/,HNVAz-HNf6?. NH=n 0. rAo0p=@0. S@=@ 0. rAop=@0. @=@ ?<?.N.0.rAo?<?. NN^,_ _TN/,HNV6A@-HNf6=n =n?<'Bg?<BgHnHnHnhHnPHn8BgNG N^,_ _XN/,HNVA-HNf6?<j?. NN^,_ _TN/,HNV8A>-HNf6BnP=n R?< BgBg?<HnHnHnhHnPHn8BgNG N^,_ _TN/,HNVA-HNf6?<?. NN^,_ _TN/,HNV2A-HNf6Hn2Hn4Hn6NHBgBgNl=nP=nR0.nS@=@T=nV0.nS@=@X0.n S@=@Z=n\0.n S@=@^=n`=nb?<BgBg?<HnHnHnhHnPHn8?<NG ?.4?.6NN^,_ _PN/,HNV8A`-HNf6=nP=nR0.nS@=@T0.n S@=@V?< ?< Bg?<HnHnHnhHnPHn8?<NG N^,_ _PN/,HNVAr-HNf6HnHnHnNHBgN?<NHnHnHnNH?.Nn?.?.?.?. N*?.N?.N?.NBN^,_ _PNNu/,HNVtA2-HNf6=n-n x?<NHnHnHnxHntNFN^,_ _\N/,HNVA-HNf6?</. NN^,_ _XN/,HNVA-HNf60. ?BNnN^,_ _TN/,HNVA2-HNf6NHTJ@f ?<BN8NHTR@?NH\N^,_Nu/,HNVA@-HNf6NHTrAo(NHTS@?NH\NHTJ@f ?<BNN^,_Nu/,HNVA<-HNf6p?BNp=@NHT=@0.nn NrRn`N^,_Nu/,HNVtA,-HNf6p=@?<kHnHnHnxHntNFN^,_Nu/,HNVtA,-HNf6p=@?<kHnHnHnxHntNFN^,_NuNu/,HNVNf6A-H=nF=n@=nD=nB0.:rA=@=n8=n6=n4=n20.0rA=@=n. =n, =n*=n(=n>=n<-n$?<HnHnHnHnNF=n"n2"n2"n2"n 2"n 2"n20.N^,_ _O?<NQ.0@Bd0.R@=@`0.n^=B0.N^,_ _XN@NUL:AXO:AXI:PRN:LST:CON:HaS@r VW?/LNuHaS@r VV?/LNuHaS@r VU?/LNuHabS@r VS?/LNuHa>S@r VR?/LNuHaS@r VT?/LNu# _0 @g "_J@jp`0"|p2 Ag $_JAjr`2$|r@g\HGe$4SBkQ4@SBpQ0"|` 4SBkQ4ASBrQ$|LJ@f pCOn$I/9NuH _024SBgQ@4BAAc/LNuHyONF Range 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`PByi _0g$_jp"_// HNTLJ@fP)J9f" f |` f|` f |` f|`4<G BQB) @e *:f&Jrt `e QGTDtWJBkZGT\3 J9f g< g6`d f H@?3|NAXNu _4` _t6 Bo r aSB`2aNH?W _r ar a/L?W Nu _r aN _4` _t"x0HgJJjDxvCW`zp cRЀ`|e W0R"f`6 _4` _t2xJAjDAxvCW`p0 2H@0RJAfJg<-RBlCSBr aQSCaQN _4v` _46"_JBjtJCkgCe4`BSCr aQSBk aQN _v` _60@d CVt`CV~tJCgkCe4`BSCr aQSBavQNFALSETRUE _6kfv2_t Cc"4YBv` _6kfv"_t Cc4QBvSBkr a(QSCC" A0 9c^a JgYC`NH W"oA/ NW`L WNuByi(_ _/ C( g  f,t4(H / /?(?<@NA LJkvfNu4(SBraQNu(g^ f,H tHy/<??<@NA LNu fH t` fH t` f NuHyX[` HyX40< LNEREWRITE required prior to WRITE or PUTDisk or directory fullByi(_ _/ C (g ( fxJ(ft4($IH / /?(?<?NA LJk,g*fJg  f"J` g  Wf NuJgJ(f P Nu!|Nu4(SBa@J(f8Jg. fJ(f"gr W1Agp f W1A1AQNu(gfJ(fT f6H`?<NAT fHyY/<?BGHGv8ބdRC8ބdRC>HGvކdRC8ބdRCHGv48ބBޅB:>HG8ކkE߇SDkBg|d RdRDUJg( DbRD ME \/LNuBBo `H _0/2// v/ 8://~/?DD?DBo 8JgJgG|HD8H@0zr)`рe efef<څ߇QgRCgڼd RGdSCJCkD|blo/EC \/LNuoH _p2/g/ f/W?o `ֲ@e:f$/&e&f // d*B6//J/ k`(&// S@Q`&// `R"/?/[4JfFӃddRdRR/eJd RdRd`/AG o Jk`z0H*kS/JkFft grkRBjIHA~`( dtHAI.kRBҁjBG` BBRBӁj/e2/AG o Jk\/LNuH _0 @&b(C`C/)?/LNuHya`HyaLNF Hz@CPt$> nk(:C@hԥ*5 c_1ɿ1.Ź^ k:v #-xŬX&x2n)h? SYQa@%oNˏ'?9x!7I|o|@Eŭ+E75vV 9@{pvPFloating point overflowFloating point division by zero yNu#c _ gyeyd 9cNHyc`HycNF t`t _"_0gR@| e.Gc$S" ghjebb"*f&"`v&A%S"`l&J`ذ|gb*|f8"9cg0$A#c`""9cg$A#c`"9cg $A#c"`"Ey&R"$b HycNF Jgr"QHd2S@k"QN _"_0" gyeyd gR@ @mz @ e@Ec"fB3@B$`\&A2+@ef "'I`F"3@B$`8$K`ư|f"c#c` |f"c#c` "c#cNHeap overruns stackPointer NILPointer not in heapHD _0"_e /LDNuHyeNF /B9l/|lNuHD _0 @f0"|BBp` "_J@jpElr4@ BbBS@kQ/LDNuHD _4SBkt82$_rAdd0 @f0"|BBp` "_J@jp6ADb6CG0IS@k$eQ/LDNuHD _4k2SAk0"_p6B@bE0)CS@kQ/LDNuHD _2$_r0 @f0"|BBp` "_J@jp@kS@kv&J$IRC4(K Vg RQBg`?/LDNuHD _4kF2SAk>0 @f0"|BBp` "_J@jp6B@bElSBkQ/LDNuString overflow _ hNVf 0(gr"OD@Hd2S@k "Q` _"yye HyfNF N#t#p .f -|f`-|f nNнpf ytNStack overruns heapH?x _z gBjDRE"g8jDRE$6HBJBg8HAJAf,HBJBf$ւi EdD.` $HB8`B/L?xNu0NvDNHx|` Hx| _z f0NjDRE"g`jDREdJgR(`DfxJg<`DxSDbb JgHA8`"tcRЀ`xeWJg(MdD.`B/LxNu09iNu _3iNByiNu[3][][ Abort ]Copyright 1986, CCD and OSS, Inc.  J(*0 6   &"( " " " f&" ""4"2 2 " fj" "    "" "  N " V "v" *p     $ $  &   "   &    $"    \ "&Z      " " " "  " " " "   $$ LB  *2 , * $"(,P"4*>4@ l*tj,&D0T>0,8&&,F.:FFFF*@4n(>2020nD(."F<".$ B " 4T R"BBD 4@@(&. ,@ ,,2 4 ,2 4 ,2 ,,T  V& ,,  ,6  LL2`*2 "T &( &0&  >          xN6r     $"  ,*< * * , , 0 , " nBB6 2J XpD D< P z  f H F  2  <   , FR ( *@ B @ B V   Ymodem Batch Transfer Desk Accessory Ver 1.0, 10 May 1987 by David B. Chiquelin Note: This program is released into the public domain, however portions of it are Copyright 1985 by OSS and CCD. This is a pretty simple desk accessory, but if you call FoReM ST BBSs and use Flash to do so, you are missing out on the 'better' file transfer methods. A very nice one is Ymodem Batch. You simply mark the files you want to receive, then select Ymodem Batch download, and the BBS will send them all, and the receiving terminal program will save them on your disk with the same names as on the BBS. Easy! But, as I said, Flash (which seems to be the terminal program of choice for a lot of users) does not support Ymodem Batch. Until now that is! If you boot your ST with YBATCH.ACC you will see the item Ymodem Batch has been added to the Desk drop-down menu. First - how to exit the accessory if you should accidentally select it or just need to get out of it. Press the Undo key and wait until you hear the bell. You should also see the message that it is aborting. Whenever you hear the bell ringing (once/second) press ANY key and the desk accessory will disappear. How to use it. Call your favorite FoReM ST BBS. (I know you must have one, all the better BBSs use FoReM!) You can use any terminal program that allows you to select the desk accessory; or, in a pinch you can use the VT-52 accessory to call the BBS. When you are in one of the file sections of the BBS, type a B to enable Batch file selection. It should tell you it is enabled. If it tells you otherwise, press it again as it was already on. Now list the files. You will see one file description at a time and if you want to D/L it type a B to mark it for batch D/L. If you don't want to D/L it, press to see the next file. (The N for next is not required as Next is the default.) When you are ready to D/L the files selected (1 to xxx files, depending on the system set- up) get back to the file menu where Ymodem Batch is listed. Tell the BBS to send them using Ymodem Batch by typing a Y. When the BBS says it is ready to send, press your RIGHT mouse button to get to the capture window. Now select the Ymodem Batch desk accessory and sit back! The files will be saved with the name as they were on the BBS. They will be saved to whatever the default drive/directory is. (ie., if you are running Flash on Hard drive C, within folder FLASH, the files will be saved in FLASH on drive C. If you are running FLASH from drive A, the files will be saved on drive A.) If a duplicate file is on the destination drive it will be replaced by the new file. If you run out of room on the disk it won't tell you (at least in this version.) The program runs in medium and high resolutions only and was written in OSS Personal Pascal. When all files selected have been received the bell will ring at 1 second intervals until you press ANY key. The desk accessory will disappear and you will be back 'live' in the capture window of Flash (if using Flash of course). Press the right mouse button again to get back to the main window. The program has been tested at up to 9600 bps using Flash with the expanded RS-232 buffer. I did not test it using the VT-52 emulator at 9600 bps but feel it would probably lose some data at that speed with the small RS-232 buffer. If you use a 9600 bps modem (the USRobotics HST) to call FoReM ST BBSs, you REALLY need ST-TERM from Matt Singer. The Fmodem batch transfer using it is 25% faster than Ymodem with the HST.) How to use with the VT-52 emulator. Run the VT-52 emulator accessory, set up the RS-232 parameters (baud rate, etc) and then call the FoReM ST BBS. Mark your files to be received, and when you get the 'Ready to send' cue, exit the accessory by pressing Undo. Now select the Ymodem Batch accessory and sit back. When completed, press ANY key to get back to the desktop and then re- select the VT-52 accessory. To abort the transfer at any point, press Undo. If when you are back in your terminal mode the BBS is not responding, type a . I hope you enjoy this accessory and that it makes your modeming a little more pleasant. David Chiquelin SysOp, Atari-O! BBS (402) 592-4435 300/1200/2400/9600 (HST) GEnie - D.CHIQUELIN CIS - 71336,1443 Delphi - DCHIQUELIN `*r0N N*6K mNf]` m"m -So Q m -SBQ(m)MO*mNNr?<NH?<A?<NAX <B@SfLNuNVBn`0.RnA0 n m9|HlXHlHlN% N^NuNVNHl?,,N\9@>HnHnHlHl?<BgN(0,nS@9@0,nS@9@9|,9|*9|(9|\&9|$Bl BlBlBlBlBn`0.RnA nmNNN^NuNuNV`HnHl HnHnHlHlBgBgHl.BgBgBgBgBg?,?,?, ?,"?,?<?<?<?<N<=@0.|gl0,.`|(g`N`P`|)g`,0,4l>f l,m?,N$T9|,`|g`0,4l,fNf``|g`N``|g`V9l6*9l8(?,$?,&?,(?,*?<?,,N HlHlHl Hl"?<?,,NP`~`|g`|g`*?,`|g`?<NT` `|g`?<NrT`0.|gN0.|gN.0.|gN0<fN^NuNV l,m&?,$?,&?,(?,*?< ?,,N ` NNN^NuNV?,?,?,?,?<N 9@,0,|1 l׺@BgBg/,׺?<?,,NL BgBgHl$?<?,,N4 BgBgBg?<}?<?,,N BgBgBg0,|??< ?,,N ?<NBTBg?<NX?,$?,&?,(?,*?<?< ?<?<N?,$?,&?,(?,*?,,N HlHlHl Hl"?<?,,N>Bg?<NXXBgNTN^NuNV9n@9n B0.n S@9@D0. nS@9@FHl@?<?,N!PN^NuNVHl@Bg?,N!PN^NuNVHA&H?<?,N XBg?,N XBg?,N X9l"@9l B0,"lS@9@D0, lS@9@FBg?<NXHl@?,N!\0,|1 l׺@BgBgBg/,׺?<?,,NnN:,(BG`lBF`$02(A2RFAA" H҆ A F'o HІR @B R/0, 2 A| ?0,"T@??,N RG GoNBg?<NXLN^NuNVHnHnHnHn?< ?,NN^NuNV?<NTBg?<NpX?,,NT?,$?,&?,(?,*?<?< ?<?<N?,,NTBg?<N(XBgNT?,NT9|,N^NuNV?<NlTBg?<NX=l6=l8=l:=lNRl l' o RlBl lo9|9|' N`&`|bg`N ``|;g`Nt``|g`N 4``|?g`BHlP?<N\ @f`6 lfHllBgN\9@`Hl?<Nv\ @f`?<NT g9|`SlAH| gBl`Bl`p0,lo"?< ?<NX?< ?<NX`N lfAH?NT`AH??<NHXRlRl l(m?< ?<N(X?< ?<NX0,lmZ`Z`|Cg`" loSl?<N rT`.`|Dg` llRl?<N FT`0.`|g` ``|g`NSl l l&9|' Sl llBlBl Nf`Z0,(2,(Al A | NHn0, | 2, A?0,"T@2, A??,N& N``| g` llNBl RlN``N0.2,(4,(Bl A0.@NBg?<NXHn0, | 2, A?0,"T@2, A??,Nt Bg?<NJXRl l' o lgBl Rl`9|' N``HNN^NuNV?<?,N\X0,"2, AT@9@@0, 2, AT@9@B0,@^@9@D0,BP@9@FBg?<N XHl@?,N\Bg?<N X?<?,NXN^NuNV. H`|@g`N``|[g`N``|\g`N`j`|]g`Np`R`|{g`NX`:`||g`N@`"`|}g`N(` `|~g`N``|g`N(|} ``|g`N |{ ``|g`N|[ ``|g`N|| `z`|g`N|\ `\`|g`N|] `>`|g`Nt|@ ` `|g`NV|~ `. H??<NXN6N^NuNV?<?<NX?<R?<NzXBg?<NnXN^NuNV?<?<NXX?<R?<NJX?<?<NNX .2,HlHl׾?<AN\Nd/.NXN^NuNV nf.Hl?<N\ @f`^N^ lf`LHl?<NL\ nfBgHl?<=N2P9@`BgHl׾?<=NP9@ ll N`Bl`0,RlA lm?<B?,N P=@?.NPT-@BgB?,N P?./.?,NP?,?<>NXBlBl`` lo`^ nH| g nH| f Rl`"0,Rl n2,RlA0,ne/.NHXN^NuNV?<N THlHl׾N PHl HnNP?<NT|A@׾HnHnHl׾N 9@ lg gHnNX @lBlBgN T`V`RHl׾NX=@`SnA׾H|\fRn0.A׾BHnHl׾N"PBgNTN^NuNV?Hl?<N\ @f`DBG`0RGA GmBl Bl?,?,?, ?,"NPNN>N^NuNV?Hl4?<N"\ @f`\>,(`0RGA 02,RA(AmBl Bl?,?,?, ?,"NPNrNV>N^NuNVHlR?<N\N^NuNV0,`|g```Hln?<Nr\``N^NuNVHl?<N \BgHl?<NN PJg` ?<N*TN^NuNVHl?<N\Hl?<N \N^NuNV0,`|g`LHnHnHnHn?< ?,,NL0.l,g`:Bg?<NVX9|`$`|g`BgBgN2XBl`N^NuNV?,?,NdXl,g`z0,l l`jN0,l"H9@ l( m9|' 0,l S@H 9@ lm9|?,?,?, ?,"NPPNNN^NuNV0,4l,g`0.`|g`0,6H~9@`b`|g`R0,6`|g` loSl`(`|g` llRl```BgBgBg0,H??< ?,,N Bl Bl?,?,?, ?,"NfPNNN^Nu)I)J"/0<NB"l$lNu NV9nװ0.| A" AA-H=|` nR2.AװH0Rn nm/,.N.X0,^N^NuNVAװ)H2Aא)H6An)H:A^)H>AR)HBAJ)HFA2)H.?< NXT9l^,0<N^NuNV9nn9n p9n r9nt9nv9nx9nz9n|9n~9n׀9nׂ9nׄ9n ׆9n"׈)n$R9n(׊9n*׌?<NT n,0` n00b n40d n80f n<0h n@0j0,^N^NuNV9nn)n R?<#NTN^NuNV9nn)n R?<4NfTN^NuNV9nn9n p9n r9nt9nv9nx9nz9n|?<IN$TN^NuNV9nn9n p9n r9nt9nv9nx9nz9n|?<JNTN^NuNV9nn)n R?<NNTN^NuNV)nR)n V?<ZNT n0`0,^N^NuNV9nn9n p9n r9nt9nv?<dNjTN^NuNV9nn9n p9n r9nt9nv?<eN:TN^NuNV9nn?<fN"TN^NuNV9nn?<gN TN^NuNV9nn9n p?<hNT n 0` n0b n0d n0f0,^N^NuNV9nn9n p9n r9nt9nv9nx?<iNTN^NuNV9nn9n p?<jNtTN^NuNV9nn?<kN\TN^NuNV?.?<LNTXN^NuNV/ Ax&H`0+ |g/ NBX Ax"Ҽ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 /+N~XBk ?+ NFTJ@g0<`0<&_N^NuNVH&n0+ |f0<`.0+ |gL0+ |f0<`l0+ |g?<B?+ N^P?/+?+ N P @f0<`6k -K k o?<B?+ N P n!@&Bk0<LN^NuNV nl <`?.?./. ?<BN -@ m .`?<?.B?<BN -@?<?.B?<BN~ -@ nf .Ю -@ `$ nf .Ю -@ `0.g <`b . oHn . /?.?<@N Bg?./. ?<BN ]|9@ g <` `Bl . N^NuNVH0><2.|SA¼0?NbT&@f <` $@5G \/NX ,"L N^NuNVH0><2.\ASA¼A ,"$@ fA& $@)@")@&Bl*&R0+Ge*0+Gf$`0k0+7G)J" \`, "f?NT&@ f <` $@ &@`L N^NuNVH0 .]&@$l"` m n l`$R o l 2+Ёf R0(k R&`& 2*Ёf 0+j$`$)J"L N^NuNV/.?<IN6\N^NuNV?>.=|0A"HPgXHf0(>N^Nu)I)J)_NA"l$l/,NuNV nf:0,ϒlϐf0<9@ϐ9@ϒ0<g?<NT=@ nf*0,ϒg Slϒ?<?<NX?<D?<N~X` n f00,ϒRlϒAϔ ?< ?<NRX?< ?<NDX`r nf ?<NT nf20.2,ϒRlϒAϔ?< ?<NX?< ?<NX`&0.2,ϒRlϒAϔ?.?<NX`AϔϐH|f0<`0,ϐRlϐAϔH`` nf?<NT``00,N^NuNV9n 9|Bl9|9nN0,N^NuNV9n 9|hBl9|9nN0,N^NuNV)nπ)nψ .мZ)@ό9|dBl9| n 9PN n 0A)HπA)HψA)HόA)HτN^NuNV9|eBlBl9nN\N^NuNV)n τ9n 9|9|9|9nN,A)HτN^NuNV9n 9n Bn nR2.RnA|0g`9|9|Sn0.9@9nNN^NuNV)n τ9| 9|Bl9|9nNA)HτN^NuNV0. Sn J@g6 nH| f?< ?<NX nRH??<NX`N^NuNV0. Sn J@g nRH??<NX`N^NuNV0. Sn J@g nRH??<NX`N^NuNVH0&n $KAn-H nf?./ N4\=n`H nf?./ N`\=n`* nf?./ Np\=n` -KBn?.NTJ@f ndH| f |o@ H-@/./.?.?<@N 9@ Hg0<`0, n/./<?.?<@N 9@ @g0<`hRnR -@`R``` 6.ƼЃ$@ H-@/./.?.?<@N8 =@9@ Hg0<`Bl 0.L N^NuA)H׺Cx"2"2 2"2"2"22"2"2"22"2x9|v)|"9|ϒ9|ϐNu NOTEPAD page #1 NOTEPAD [HELP] [F1] [F2] [F3] [F4] [F5] [F9] [F10][2][ |Print text ?][yes|no][2][ |Kind of PRINTER:][EPSON|IBM][3][ |Printer not ready ?][now OK|break][2][ |Save text ?][yes|no][2][ |Load text ?][yes|no]A:\NOTEPAD.TXT :*.TXTNOTEPAD.TXT[2][ |Delete text ?][yes|no][2][ |Delete page ?][yes|no][3][ |Disk full ?][return][3][ |Disk- or File-ERROR !][return]A:\NOTEPAD.TXT[0][F1=Save text F2=Load text|F3=Delete page F4=Delete all|F5=Print text|F9=precede page F10=next page][OK][1][NOTEPAD by B.Rockmann|Postbox 610356|D-1000 BERLIN 61| ][Okay]CON:AUX:PRT: `V  O^&OOHy!Hy HyHyHyHy#Hy"Hy HyHyHyHyHyj.KG6 6666"9b0<NBG6 G6M6666"9b0<NBG I((8G6d7|7| 7y IGv 8Q"9f0<sNBI$G v,8QG!v 8QG6aG6#6666G6G"Il&"9b0<NB3 &$A6azAVapA>afAva\G66666G"I&&&"9b0<NB y(&&f09&.y&$fapa?<NNT#&:/<?<HNA\Jgk#&>м#%X#% 9&>м#&6aG6N6666G6G"I%&"9b0<NB09 G6h6666G66"9b0<NBG 0I%*((#6%2aB@a0 y %6gTaaFB@3%8a y %6g y%6g y%6g`taa`aa`3%8Aa@|g>B@araa#v%2aB@a3 %8B@aHaa`:a8`@ y&>HP?<INA\ y&:?<? y&:"y&6"Q y&6?RPL/9%@Nua /9%DNu/0/ |fa /9%HNuJy%>g  By%>B%:Nu#V%2aAV1|0<aZB@a6 y%6g Aa|g 0<a`AV0(||f 3%T`By%T0(j||f&;3 %\3R%P3 %L`";3%\3O%P3 %L0(*||fBy%V`3%VAV1|By%NaBy%R y%X?%2aDA>"h$i#%#%0< a y %6g y%6g" y %6g( y %6g6B@a|aNuA>!|f`A>!|k0<a`A>0(j|J@gB`r3%V??<NAXA>0(|J@gz?<Hy^?<NNAPJ@kNA%|"y%p .g JgQ` QJgJpJgQ y%1| `HyR/9%P`?9%V?<NMXJg,@3%B3%0.n 3%,y%?9%V?9%?9%HV?<?<NM0<oBA 6 g&| Q0<oBA 6g| Q`RK0< g Q`  Q,y%?9%V?9%?9%HV?<?<NM0< a0<a`" "     }       A  B   !  """"1pG Z    %   ,  (   2 8  H B ' & $2$W$|        $  /  ,&% 88###T`} Qtt#M_HELP FMTDiskettenname: ________.___FFFFFFFFFFFEin PD Programm von Holger BriegerM I K R O - H E L P0000000 Bytes freier SpeicherDisketten formatierenOrdnernamen ndernDiskettennamen ndernDisketten kopierenAusgangDirectory druckenZweiseitigEinseitigFormatierenAbbruchSpezialNormalGre:Laufwerk:Track 00 wird formatiert...InfoDiskettennamen ndernFloppy AFloppy BVon:Auf:LesenSchreibenOkWer mir eine Spende in Hhe von20 DM zukommen lt, bekommt einUpdate (sobald es fertig ist!) undein Sourcelisting auf Disk.Holger BriegerLuftschifferweg 191000 Berlin 20Postgiroamt Bln WKto. 3921 91-103BLZ 10010010Kritik, Verbesserungsvorschlge usw.sind erwnscht.Ok, wird gemacht!(Absender nicht vergessen!)%H%D%@Fp\DISKNAME.INF@ \*.* Mikro Help [0][ Mikro-Help v1.2 wurde mit|PROFIMAT ST geschrieben und| ist Public Domain][Reicht|Mehr][1][Fehler beim Formatieren][Ok][1][Diskette einlegen und.....][Format|Abbruch][1][Nicht genug Speicher frei!][Ok]              $       8x       V"          . (6   4L&. D t;.. D tCLIP C Et < CLIP H It ?.CLIP PRGMt ACLIPDOC TXTPt B/SHOWCLIPACCUt N9SHOWCLIPC Zt V /****************************************************************************\ |* CLIP.C *| |*--------------------------------------------------------------------------*| |* by Russ Wetmore *| |* Last revision: 11/04/86 15:03:12 *| \****************************************************************************/ /* Uncomment the proper line for your flavour of C */ #define MEGAMAX 1 /* #define ALCYON 1 */ /*------------------------------*\ |* includes *| \*------------------------------*/ #include "osbind.h" #include "clip.h" /*------------------------------*\ |* locals *| \*------------------------------*/ GLOBAL LONG clp__Tmp; /*------------------------------*\ |* clipboard *| TRAP #10 funnel \*------------------------------*/ LOCAL VOID xyzzy() { #ifdef MEGAMAX asm { clipboard: move.L (A7)+,clp__Tmp(A4) ; Save off return address trap #10 move.L clp__Tmp(A4),-(A7) ; (D0 should hold result, if any rts } #endif #ifdef ALCYON asm(".globl _clipboar"); /* (Alcyon idents only 8 chars) */ asm("_clipboar:"); asm("move.L (SP)+,_clp__Tmp"); /* This is safest way to do this */ asm("trap #10"); /* In case you include labels at */ asm("move.L _clp__Tmp,-(SP)"); /* link time for debugging purposes */ asm("rts"); #endif } /*------------------------------*\ |* trapStatus *| Fetch magic number (in supervisor mode) \*------------------------------*/ LOCAL VOID trapStatus() { #ifdef MEGAMAX asm { suba.L A0,A0 ; Zero out A0 movea.L 0xA8(A0),A0 ; Fetch vector to trap dispatcher move.L 2(A0),clp__Tmp(A4) ; Fetch magic number from routine } #endif #ifdef ALCYON asm("suba.L A0,A0"); asm("movea.L $A8(A0),A0"); asm("move.L 2(A0),_clp__Tmp"); #endif } /*------------------------------*\ |* InfoClip *| Special intervention for this call \*------------------------------*/ GLOBAL WORD InfoClip(info) clipInfo *info; { Supexec(trapStatus); /* Fetch vector & get magic number */ if ( clp__Tmp != 0xFDB97531 ) /* If it's not what we're expecting */ return ( 0 ); /* ...blow it off and inform bozo */ (VOID)clipboard(0, info); /* Go ahead and make the call */ return ( -1 ); /* Show success */ } + NP?/+?+ N P @f0<`6k -K k o?<B?+ NP n!@&Bk0<LN^NuNVH$.". BnJlVnDJlRnDvd`Bbd nmDdD-@-A LN^NuNV nl <`?.?./. ?<BN> -@ m .`?<?.B?<BN -@?<?.B?<BN -@ nf .Ю -@ `$ nf .Ю -@ `0.g <`b . oHn . /?.?<@N Bg?./. ?<BN~ ]|9@g <` `Bl . N^NuNVH0><2.|SA¼0?NT&@f <` $@5G \/NX ,L N^NuNVH0><2.\ASA¼A ,$@ fA $@)@)@Bl&R0+Ge*0+Gf$`0k0+7G)J \`, f?NT&@ f <` $@ &@`L N^/****************************************************************************\ |* CLIP.H *| |*--------------------------------------------------------------------------*| |* by Russ Wetmore *| |* Last revision: 11/04/86 15:06:14 *| \****************************************************************************/ /*------------------------------*\ |* portability concerns *| \*------------------------------*/ #ifdef ALCYON typedef char BYTE, UBYTE; /* Alcyon used to be pretty dumb... */ typedef short WORD, VOID, BOOLEAN; typedef unsigned int UWORD; typedef long LONG, ULONG; /* ...about unsigned anything */ #endif #ifdef MEGAMAX typedef char BYTE; typedef unsigned char UBYTE; typedef int WORD, VOID, BOOLEAN; typedef unsigned int UWORD; typedef long LONG; typedef unsigned long ULONG; #endif #define REG register #define IMPORT extern /* Variables imported to a module */ #define FORWARD extern /* Forward reference declarations */ #define GLOBAL /**/ /* Variables are default global */ #define LOCAL static /* Variables local to a module */ /*------------------------------*\ |* definitions *| \*------------------------------*/ typedef struct { LONG size; /* Size of present clipboard */ BYTE *location; /* Pointer to the data itself */ WORD dirty; /* Boolean says "data has changed" */ WORD where; /* Where clipboard data is now */ BYTE filename[16]; /* Name of clipboard disk file */ } clipInfo; IMPORT WORD clipboard(); IMPORT WORD InfoClip(); #define UnloadClip() clipboard(1) #define LoadClip() clipboard(2) #define ZeroClip() (VOID)clipboard(3) #define PutClip(a,b) clipboard(4,a,b) #define GetClip(a,b,c) clipboard(5,a,b,c) #define InitClip() clipboard(6) ?< ?<NX nRH??<NX`N^NuNV0. Sn J@g nRH??<NX`N^NuNV0. Sn J@g nRH??<NX`N^NuNVH0&n $KA"-H nf?./ N4\=n`H nf?./ N`\=n`d,D o&<֨ ֨֨Hy4?<*?<NMPBg/?<1NANq`u13#H9fNo0 @dGd~@0;NL/9?9NsnnN"o"J+ faNup&'@'@AC pQ?<NAJ_@A@ NuJk faRJCk ??<>NAJ0Nu6NX9@g0<`0<N^NuNV?.?<LNXN^NuNV/ A&H`0+ |g/ N*X A"Ҽm?.NT&_N^NuNV/ &n/ NDXJ@g0<`00+ |g /+NXBk ?+ N,TJ@g0<`0<&_N^NuNVH&n0+ |f0<`.0+ |gL0+ |f0<`l0+ |g?<B?+ NP?/+?+ NP @f0<`6k -K k o?<B?+ NP n!@&Bk0<LN^NuNV fBC`&SCdTC0|g0|gԼdRC`|CHBC0|@HB LN^NuNVNVH n " n $&JjFFJjFFLN^@,NuNVH n"n $0(H@6C|g.0)H@:E|gE|BB0<まef bRAQ$0P`HNVH n$0(H@6C|gd"n .0)H@:E|gD|E(HD*HE20HGHBBB8:BGBBЇӄЂӅJg$0P`B`NVH"n 0<9@*Q`NVH"n Bl* n,0(H@8D|fB.0)H@:E|fB2$60Enfl8,:.6$0Jg0Eg|n0@gDԇ0,*Q fBB`HSCdTC0|g0|gԼdRC`|"|CHB|C0|@HB AHABA LN^NuNVH0.|=@n n f n0H-@HnNXA-H`> n(g nf. n-P n(f HnNX` HnN>XA-H/./. 0.A PNPLN^/W D,NuN^NuNVH nB fB`м8 LN^NuNVH n$fBCB`nD6< f႖|NzN^NuNVH0&n$n Bn-J @A)X")X&A " &BEG>O|g|JGn|m` REHlQQֆG|0QB`Rn0.g$nB`0R 2.HmB`d .6.HЃR$@ nH|0fRZ"H|9o R"` nH|0f$n R&@g`SE .6.HЃ @B n0L N^NuNVH$.". BnJlVnDJlRnDvd`Bbd nmDdD-@-A LN^NuNV nl <`?.?./. ?<BN -@ m .`?<?.B?<BN| -@?<?.B?<BNb -@ 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)_NM"l$l/,Nu)I)J)_NN"l$l/,Nu)I)J)_NA"l$l/,NuNVH&n Bn0.|dg`>< `.`|ug`>< ``|og`><``|xg`>< l* ndf SR- .D-@`0. f Gf .`& Gf .` ./0H/NX 2.RnA0 Gf .`( Gf .` ./0H/N X-@ .fp0.gHSn0.A P m0.A0| |A`0.A0|0 SR`LN^NuNVH&n n f=| A)X")X&HlHl"?<N]|@0. R@?HnHnHnN.g SR-.H|0f.f SR`J nff>.n RG0l.o0,.`0> Gl0<`0?HnHnHnNBF0g" nm0RFA SRSGSn` nm SR0Sn`0. g SR.0. g nl SR0RnSn `0. Sn J@g$ Go0RFAH`0<0 SRSG``` SR0. g SR.><0. Sn J@g0RGA SR` SRE?.Hl/N /N8XHѓLN^NuNVBn n PH|0m4 n PH|9n$0. n PHC|0=@ nR`0.N^NuNVH0&n -n @$PXgVgH|%g nR`H|%f,RBn=|Bn| H|-f=|RH|0f|0R-JHnN"X=@$nH|.fR-JHnNX=@$nH|lf=|RgH-n Gdg Gog Gxg GufB0.g @ ` @0H/Hn?.?NT 0.g0<`0<H` Gcf R @ nRT` Gsf4 @-PX<.` nR nRSF0g nf`J Geg Gfg Ggf, @A)X")X&/,&/,"Hn?.?NP` 0 nR .nl0.g$<.".A` nRSF0f`b .2.SAHЁ-@-@,.` .2SAHЁ @ nSSF0f .n nR` .R-@` nB .L N^NuNVHn /.NhPN^NuNVH0&n$n >.-K0SGJ@gg` .L N^NuNVH0&n$K`Rf L N^NuNV0. Sn J@g6 nH| f?< ?<N.X nRH??<NX`N^NuNV0. Sn J@g nRH??<NX`N^NuNV0. Sn J@g nRH??<NX`N^NuNVH0&n $KA-H nf?./ N4\=n`H nf?./ N`\=n`* nf?./ Np\=n` -KBn?.NTJ@f ndH| f |o@ H-@/./.?.?<@N 9@Hg0<`0,n/./<?.?<@N 9@ @g0<`hRnR -@`R``` 6.ƼЃ$@ H-@/./.?.?<@NV =@9@Hg0<`Bl0.L N^NuC[1][ |Nothing in clipboard| ][ OK ]CYesCNoCOn CLIP.SYSCIn memoryC([3][Clipboard TRAP routines are not|installed. Be sure the CLIP.PRG|file is in the \AUTO folder on|your boot disk.][ OK ]C[1][ |No clipboard file on disk| ][ OK ]C[3][ |Some kind of read error!| ][ OK ]C"2"2 2"2"2"22"2"2"22"2x9|)l<)l@)l8)l0)l49|.CA"A"A"A$"A*"A"A "Nu[3][ |Unknown error: %d| ][ OK ][1][Size: %ld|Loc: %lx|Dirty: %s|Where: %s|Fname: %s][ OK ] Show clipboard[1][>%-25s<|>%-25s<|>%-25s<|>%-25s<|>%-25s<][OK| Flush clip ]@$??CON:AUX:PRT:%d /****************************************************************************\ |* SHOWCLIP.ACC *| |*--------------------------------------------------------------------------*| |* by Russ Wetmore *| |* Last revision: 11/04/86 15:02:20 *| \****************************************************************************/ /*------------------------------*\ |* includes *| \*------------------------------*/ #include #include /* GEMDEFS.H & OBDEFS.H */ #include /* TOSDEFS.H & OSBIND.H */ #include /* for string copies #define MEGAMAX /* We're using Megamax C */ #include "clip.h" /* Clipboard equates & portability */ /*------------------------------*\ |* local defines *| \*------------------------------*/ #define STRSIZE 25 /* Max string length in alert */ #define STRTOTAL (5*STRSIZE) /* Whole alert is five lines long */ #define RASPBERRY() Bconout(2,7) /* Shortcut */ /*------------------------------*\ |* imports *| \*------------------------------*/ IMPORT WORD gl_apid; /* To fix someone else's bug */ /*------------------------------*\ |* exports *| \*------------------------------*/ GLOBAL WORD contrl[12], /* Idiotic GEM bindings */ intin[128], ptsin[128], intout[128], ptsout[128]; /*------------------------------*\ |* locals *| \*------------------------------*/ LOCAL BYTE NODATA[] = "[1][ |Nothing in clipboard| ][ OK ]", yesstr[] = "Yes", nostr[] = "No", dunnostr[] = "On CLIP.SYS", inmemstr[] = "In memory", NoClipTrap[] = "[3][Clipboard TRAP routines are not|installed. Be sure the CLIP.PRG|file is in the \\AUTO folder on|your boot disk.][ OK ]", FileNotFound[] = "[1][ |No clipboard file on disk| ][ OK ]", ReadError[] = "[3][ |Some kind of read error!| ][ OK ]"; /*------------------------------*\ |* HandleError *| \*------------------------------*/ LOCAL VOID HandleError(err) WORD err; { BYTE tempstr[256], *alertstr = tempstr; switch (err) { case EFILNF: alertstr = FileNotFound; break; case EREADF: alertstr = ReadError; break; default: sprintf(tempstr, "[3][ |Unknown error: %d| ][ OK ]", err); break; } RASPBERRY(); form_alert(1, alertstr); } /*------------------------------*\ |* DoInformation *| \*------------------------------*/ LOCAL VOID DoInformation(infoPtr) clipInfo *infoPtr; { BYTE alertstr[256]; sprintf(alertstr, "[1][Size: %ld|Loc: %lx|Dirty: %s|Where: %s|Fname: %s][ OK ]", infoPtr->size, infoPtr->location, infoPtr->dirty ? yesstr : nostr, infoPtr->where ? inmemstr : dunnostr, infoPtr->filename); form_alert(1, alertstr); } /*------------------------------*\ |* main *| \*------------------------------*/ GLOBAL WORD main() { BYTE *dataPtr, alertstr[256], lines[5][STRSIZE+1]; WORD msgbuff[8]; WORD myMenu, i, j; LONG length; clipInfo *infoPtr; /*----------------------------------------------------------------------*\ |* We're a GEM application. Register at front desk. *| \*----------------------------------------------------------------------*/ appl_init(); myMenu = menu_register(gl_apid, " Show clipboard"); for (;;) { /*------------------------------------------------------------------*\ |* Ask AES what's up and respond if Butch is opening us up *| \*------------------------------------------------------------------*/ evnt_mesag(msgbuff); if ( msgbuff[0] == AC_OPEN && msgbuff[4] == myMenu ) { /*--------------------------------------------------------------*\ |* First, we check to see if the clipboard is around *| \*--------------------------------------------------------------*/ if ( !InfoClip(&infoPtr) ) { /* FALSE result means no clip */ RASPBERRY(); form_alert(1, NoClipTrap); continue; } /*--------------------------------------------------------------*\ |* It is, so show information about it *| \*--------------------------------------------------------------*/ DoInformation(infoPtr); /*--------------------------------------------------------------*\ |* Bring clipboard into memory *| \*--------------------------------------------------------------*/ i = GetClip(&dataPtr, &length, TRUE); if ( i < 0 ) { /* Negative result means error! */ HandleError(i); continue; } /*--------------------------------------------------------------*\ |* Inform Butch of special case of clipboard but no contents *| \*--------------------------------------------------------------*/ if ( !length ) { /* Nothing there */ form_alert(1, NODATA); continue; } /*--------------------------------------------------------------*\ |* For purposes of this demo, truncate string to fit alert *| \*--------------------------------------------------------------*/ if ( length > STRTOTAL ) dataPtr[STRTOTAL] = '\0'; /*--------------------------------------------------------------*\ |* Initialize strings and fill them a line at a time *| \*--------------------------------------------------------------*/ for (j=0; j<5; ++j) *lines[j] = lines[j][STRSIZE] = '\0'; for (j=0; length>0 && j<5; ++j, length-=STRSIZE) strncpy(lines[j], dataPtr + j * STRSIZE, STRSIZE); /*--------------------------------------------------------------*\ |* Cheap way of creating alert string *| \*--------------------------------------------------------------*/ sprintf(alertstr, "[1][>%-25s<|>%-25s<|>%-25s<|>%-25s<|>%-25s<][OK| Flush clip ]", lines[0], lines[1], lines[2], lines[3], lines[4]); /*--------------------------------------------------------------*\ |* If Butch tells us to flush, then flush *| \*--------------------------------------------------------------*/ if ( form_alert(1, alertstr) == 2 ) ZeroClip(); } } } PAGE 6 LIBRARY - DISK #80 DESK ACCESSORIES 3 Many of the accessories on this disk are in folders so that the documentation and resource files (if any) are kept intact. Select the accessories you require and transfer them to the root directory of another disk. Use that disk to boot with and the accessories will be loaded. Remember, only six accessories will be loaded at any one time. If you booted with this disk and strange things begin to happen, you might like to knock out MAD.ACC (change the extender) and re-boot. #a000000 #b000000 #c7770007000600070055200505552220770557075055507703111103 #d #E 18 13 #W 06 02 1E 07 10 08 08 A:\*.*@ #W 00 00 0D 08 2A 0B 00 @ #W 00 00 0E 09 2A 0B 00 @ #W 00 00 0F 0A 2A 0B 00 @ #M 00 00 00 FF A FLOPPY DISK@ @ #M 00 01 00 FF B FLOPPY DISK@ @ #T 00 06 02 FF TRASH@ @ #F FF 04 @ *.*@ #D FF 01 @ *.*@ #G 03 FF *.APP@ @ #G 03 FF *.PRG@ @ #F 03 04 *.TOS@ @ #P 03 04 *.TTP@ @