4IBM ph -----E-COPY-----(c) 1991, 92 bei Robert Weiss Dorfstr. 5 8401 Gralfing Tel 09405-6185 EMail (Mausnetz)Robert Weiss @ R----------------֠! #@%`')+-/1 3@5`7;=?A C@E`GIKOQ S@UWY[]_a cogmoq s@uwy{}  / @ ` / ` @ o ` ǀ ` ׀ /@` @`!Aa !Aa!#A%a')+-/1!3A5a79;=A!OIKMO/OUaWY[]_a!cAeagikoq!suawy{}!A!Aa!o!Aa!Aaǁɡ!Aaׁ١!Aa!Aa " B b !B!!!!"/"#B"%b"'")"-"/#3B#5b#7#9#;=#?$ACB$Eb$GI$K$MO%QSB%Ub%W%]%_&a"&cB&eb&g&i&k&m&o'q"'sB'ub'w'y'{'}'("(B(b((((()")B)))))*"*B*b*****+"+B+b+++++,",B,b,ǂ,ɢ,,,-"-B-b-ׂ-٢---.".B.b...../B/b/////0#0C0c00 0 0 01#1C1c111112!#2#C2%c2'2)2+2! #@%`')+-/1 3@5`7;=?A C@E`GIKOQ S@UWY[]_a cogmoq s@uwy{}  / @ ` / ` @ o ` ǀ ` ׀ /@` @`!Aa !Aa!#A%a')+-/1!3A5a79;=A!OIKMO/OUaWY[]_a!cAeagikoq!suawy{}!A!Aa!o!Aa!Aaǁɡ!Aaׁ١!Aa!Aa " B b !B!!!!"/"#B"%b"'")"-"/#3B#5b#7#9#;=#?$ACB$Eb$GI$K$MO%QSB%Ub%W%]%_&a"&cB&eb&g&i&k&m&o'q"'sB'ub'w'y'{'}'("(B(b((((()")B)))))*"*B*b*****+"+B+b+++++,",B,b,ǂ,ɢ,,,-"-B-b-ׂ-٢---.".B.b...../B/b/////0#0C0c00 0 0 01#1C1c111112!#2#C2%c2'2)2+2PASKUD IH$READ_ME TXT 5DEMO_C AM =H$DEMO_PP PRGFH$PRG PH$Z*************************************** * ATARI ST/STE/MEGA STE/TT/FALCON * * * * - MIDI * * - MUZYCZNE * * - UZYTKI, DTP * * - GRAPHISC * * - GRY * * - DEMOSY, KODY ZRODLOWE * * i co ci na mysl przyjdzie * * prosto z Holandii * * najwiecej programow do FALCONA * * na Slasku * * * * PASKUD & TL SOFT * * Katowice sobota: Dom zwiazkow L1,L2 * * niedziela: Baildon 70,71 * * tel. (0-3)187-94-32 * *************************************** do zobaczenia przy nowym programie ! . H$.. H$DIAHELP =H$DIGI_UHR AH$DITHER EH$EDIT BH$KEYS DH$MEMWATCH CH$ RECHNER AH$ SYSFONT CH$ VIEWKEY DH$ VIEWVARS FH$ EXAMPLESDOC px. H$.. H$DIAHELP ACS 9_LDIAHELP AH  y^DIAHELP C !v:DIAHELP H *DIAHELP PRJ M)DIAHELPMPRJ /8E. H$.. H$DIGI_UHRACS eNDIGI_UHRAH eV4DIGI_UHRC eey DIGI_UHRH ei#DIGI_UHRPRJ /d5. H$.. H$DESKTOP CFG 'H$YDITHER ACS #DITHER AH 0DITHER C }kDITHER H DITHER PRJ /B. H$.. H$EDIT ACS epEDIT AH eEDIT C eEDIT H !eEDIT PRJ /f. H$.. H$KEYS ACS @fKEYS AH AfKEYS C BfKEYS H CfKEYS PRJ /,. H$ .. H$MEMWATCHACS k1MEMWATCHAH lMEMWATCHC e2 MEMWATCHH l'MEMWATCHPRJ /6. H$ .. H$RECHNER ACS 6ekf*RECHNER AH 7ev4RECHNER C 9e&RECHNER DOC :ebRECHNER H ;eTRECHNER PRJ #/. H$ .. H$SYSFONT ACS mSYSFONT AH m SYSFONT C OemSYSFONT H mSYSFONT PRJ (/b. H$ .. H$VIEWKEY ACS eVIEWKEY AH eVIEWKEY C Ӫ/VIEWKEY H eBVIEWKEY PRJ 3/2. H$ .. H$VIEWVARSC  VIEWVARSPRJ 8/. H$.. H$ADRESS FH$AUF GH$AUF_AB HH$DEPEND IH$DIR IH$HELLO JH$HELLO1 MH$INPUT NH$MENUE NH$OWN_DESK OH$PLOT OH$. H$.. H$ADRESS ACS ).ADRESS DOC ) ADRESS I ) GADRESS PAS )"WDEMO ADB ). H$.. H$AUF ACS )?AUF I )8AUF PAS )EAUFM PAS )CA. H$.. H$AUF_AB ACS )Z<AUF_AB DOC )FAUF_AB I )G &AUF_AB PAS )QAUF_ABM PAS )S. H$.. H$DEPEND ACS )tDEPEND I )`o2DEPEND PAS )mDEPENDM PAS )n<. H$.. H$DIR ACS )fDIR I )|$DIR PAS )4. H$.. H$DESKTOP CFG m/HELLO ACS )OHELLO I )HELLO PAS )HHELLO1 ACS `a*HELLO1 I `a*HELLO1 PAS n-HELLO2 PAS [/HELLO2 PRG /mHELLOM PAS )IMGVIEW CFG l/. H$.. H$HELLO ACS ) HELLO I ) HELLO PAS ) . H$.. H$DESKTOP CFG Y/INPUT ACS š)$ INPUT I š) INPUT PAS Y/. H$.. H$MENUE ACS Ś)fMENUE I ƚ)!0%MENUE PAS ƚ)+MENUEM PAS ǚ),. H$.. H$DESK ACS ʚ)B[DESK DOC ǚ)1DESK I ɚ)2&DESK PAS ɚ)<J. H$.. H$PLOT ACS ̚)NPLOT I ˚)HPLOT PAS Κ)XPLOTM PAS ͚)Rv/* Beispielapplikation fr ACS "Dialogorientiertes Help" 25.11.92 Stefan Bachert */ #include extern Awindow DESKTOP; #include "diahelp.h" #include "diahelp.ah" /* * User Struktur */ typedef struct ob_st { struct ob_st* prev; OBJECT* tree; INT16 w; INT16 h; } OBJ_STACK; static OBJECT* newtree (void) /* * Ermittelt neuen Dialogbaum */ { AOBJECT* aob; OBJECT* tree; aob = (AOBJECT *) ev_object + ev_obnr + 1; tree = aob-> userp1; if (tree == NULL) { form_alert (1, ERR_NOTREE); return NULL; } return Aob_create (tree); } static void settree (OBJECT* tree, INT16 w, INT16 h) /* * Setzt den neuen Baum und * frischt komplett auf */ { Awindow* wi; Axywh* wi_act; INT16 x, y; wi = ev_window; Awi_diaend (); /* Editfelder abschalten */ wi-> ob_edit = -1; /* ACS wird ziemlich hart der Dialog entzogen */ wi-> ob_col = -1; wi-> work = tree; Aob_fix (tree); /* in Pixel Koordinaten wandeln */ wi_act = &wi-> wi_act; x = wi_act-> x + (wi_act-> w >> 1); y = wi_act-> y + (wi_act-> h >> 1); graf_shrinkbox (x, y, 1, 1, wi_act-> x, wi_act-> y, wi_act-> w, wi_act-> h); evnt_timer (200, 0); if (w > 0 && h > 0) { wi_act-> w = w; wi_act-> h = h; } graf_growbox (x, y, 1, 1, wi_act-> x, wi_act-> y, wi_act-> w, wi_act-> h); wi-> state |= AWS_FORCEREDRAW; /* erzwinge Neuzeichnen */ (wi-> sized) (wi, wi_act); /* Falls sich Gre gendert hat */ wi-> ob_edit = Aob_findflag (wi-> work, 0, EDITABLE); Awi_diastart (); /* Editfelder wieder einschalten */ } static void rts (void) /* * Springt eine Ebene hoch */ { Awindow* wi; OBJ_STACK* stk; wi = ev_window; stk = wi-> user; if (stk == NULL) return; /* top erreicht */ wi-> user = stk-> prev; Aob_delete (wi-> work); settree (stk-> tree, stk-> w, stk-> h); /* Setze alten Wert */ Ax_ifree (stk); } static void jsr (void) /* * Springt zum nchsten Dialog * merkt sich aber den aktuellen * Der Zeiger steht in aob-> userp1 */ { Awindow* wi; OBJECT* tree; OBJ_STACK* stk; tree = newtree (); if (tree == NULL) return; stk = Ax_malloc (sizeof (OBJ_STACK)); if (stk == NULL) return; wi = ev_window; /* Dieses Object mit dem gedrcktem Button kann nicht mehr von ACS unselected werden. Also mu der Benutzer das tun */ (wi-> obchange) (wi, ev_obnr, ev_object [ev_obnr]. ob_state & ~ SELECTED); stk-> tree = wi-> work; stk-> w = wi-> wi_act. w; stk-> h = wi-> wi_act. h; stk-> prev = wi-> user; wi-> user = stk; settree (tree, desk. w, desk. h); /* volle gre */ } static void jmp (void) /* * Springt zum nchsten Dialog * Der Zeiger steht in aob-> userp1 */ { Awindow* wi; OBJECT* tree; tree = newtree (); if (tree == NULL) return; wi = ev_window; Aob_delete (wi-> work); settree (tree, 0, 0); /* Gre bleibt */ } static void topwi (Awindow* wi) /* * Springt bis zum obersten Fenster und rumt auf */ { OBJ_STACK* stk, *prev; Axywh act; stk = wi-> user; wi-> user = NULL; if (stk == NULL) return; while (stk != NULL) { Aob_delete (wi-> work); wi-> work = stk-> tree; prev = stk-> prev; if (prev == NULL) { act. w = stk-> w; act. h = stk-> h; } Ax_ifree (stk); stk = prev; } act. x = wi-> wi_act. x; act. y = wi-> wi_act. y; wi-> state |= AWS_FORCEREDRAW; /* erzwinge Neuzeichnen */ (wi-> sized) (wi, &act); /* Falls sich Gre gendert hat */ } static void top (void) { topwi (ev_window); } static INT16 service_dh (Awindow* wi, INT16 task, void* in_out) { switch (task) { case AS_TERM: topwi (wi); Awi_delete (wi); #ifdef __ACS_MODULE__ ACSmoduleterm (); #endif break; case AS_INFO: A_dialog (&_INFOBOX); break; default: return FALSE; } return TRUE; } static Awindow* make_dh (void* not_used) /* * Erzeuge das Fenster */ { Awindow* wi; wi = Awi_create (&DIAHELP); if (wi == NULL) return NULL; wi-> user = NULL; return wi; } INT16 ACSinit (void) { if (NULL == DIAHELP. create (NULL)) { /* erzeuge gleich das Fenster */ #ifdef __ACS_MODULE__ ACSmoduleterm (); #endif return FAIL; } return OK; } NULL, rezept_service, rezept_make , Awi_open, Awi_init, &REZEPTDIA , NULL, 0, 0, -1, 0xfef, { 0, 0, 120, 50}, {0, 0, 0, 0}, {0, 0, 0, 0}, {-1, -1, -1, -1}, 0, 0, 0xf0f0, TEXT_06 , TEXT_04 , 10000, 0x3, 0, -1, NULL, NULL, rezept_key , Awi_obchange, Awi_redraw, Awi_topped, Awi_closed, Awi_fulled, Awi_arrowed, Awi_hslid, Awi_vslid, Awi_sized, Awi_moved}; Adescr ACSdescr = { "ACS 2.0", 200, -4, -4, 0x3b, " REZEPTE ", &DESKTOP, NULL, { { 0, NULL}, { 2, NULL}, { 3, NULL}, { 4, NULL}, { 1, NULL}, { 5, NULL}, { 6, NULL}, { 7, NULL}, { 0, NULL}, { 0, NULL}, { 0, NULL}, { 0, NULL}, { 0, NULL}, { 0, NULL}, { 0, NULL},/* This file was created with ACS 2.0 (c) Stefan Bachert 1991, 1992 The contents is based on file: E:\ACS.BSP\DEMO_C.AM\DIAHELP\DIAHELP.ACS compiled at: Fri Dec 04 16:08:30 1992 */ /* ALERTBOXES */ extern char ERR_NOTREE [72]; /* STRINGS */ /* ICONS */ extern ICONBLK ICON; /* MENU TREES */ /* OBJECT TREES */ extern OBJECT BUTTONS; extern OBJECT DEEP; extern OBJECT INPUTFIELD; extern OBJECT PANELS; extern OBJECT ROOT_MODAL; extern OBJECT ROOT_NONMODAL; extern OBJECT TEXTFIELD; /* WINDOWS */ extern Adescr ACSdescr; /* ANSI-C Prototypes */ extern INT16 CDECL A_3Dbutton (PARMBLK* pb); extern INT16 CDECL A_ftext (PARMBLK* pb); extern INT16 Auo_string (OBJECT* entry, INT16 task, void* in_out); /* This file was created with ACS 2.0 (c) Stefan Bachert 1991, 1992 The contents are based on file: E:\ACS.BSP\DEMO_C.AM\DIAHELP\DIAHELP.ACS compiled at: Fri Dec 04 16:08:30 1992 */ /* ANSI-C Prototypes */ static INT16 Auo_ftext (OBJECT* entry, INT16 task, void* in_out); static void jsr (void); static Awindow* make_dh (void* para); static void rts (void); static INT16 service_dh (Awindow* wi, INT16 task, void *in_out); static void top (void); /* ALERT BOXES */ char ERR_NOTREE [] = "[3][| Hier wurde es versumt | den nchsten Dialog| einzutragen.][ OK ]"; /* STRINGS */ static char NULL_STRING [] = ""; static char TEXT_003 [] = "OK"; static char TEXT_01 [] = " Start HOME"; static char TEXT_02 [] = " Aktion "; static char TEXT_026 [] = "Information"; static char TEXT_03 [] = " ber mich ..."; static char TEXT_04 [] = "--------------------"; static char TEXT_05 [] = " DIALOG HELPSYSTEM "; static char TEXT_06 [] = " Zurck UNDO"; static char TEXT_07 [] = "Dieses Hilfesystem arbeitet mit Dialogen. Es ist sehr einfach mit ACS 2.00 zu erstellen und zu modifizieren"; static char TEXT_08 [] = "Knpfe"; static char TEXT_09 [] = "Texte"; static char TEXT_10 [] = "WURZEL Modal"; static char TEXT_11 [] = "3D STYLE GUIDE"; static char TEXT_12 [] = "BUTTONS"; static char TEXT_13 [] = "EINGABEFELDER"; static char TEXT_14 [] = "Die Rahmen von Buttons sollten einen Offset von 1 und eine Dicke von 1 erhalten. DEFAULT-Buttons werden automatisch um einen Pixel dicker."; static char TEXT_15 [] = "Editfelder"; static char TEXT_16 [] = "Zurck"; static char TEXT_17 [] = "Wurzel unmodal"; static char TEXT_18 [] = "HELP"; static char TEXT_19 [] = "In diesem Hilfesystem wird erlutert wie die 3D-Effekte erstellt werden. Sie sind als Anregung zu verstehen"; static char TEXT_20 [] = "Beispiele"; static char TEXT_21 [] = "Wurzel modal"; static char TEXT_22 [] = "Beispiel"; static char TEXT_23 [] = "SOSO"; static char TEXT_24 [] = "Vertiefung"; static char TEXT_25 [] = "abcdefghi"; static char TEXT_26 [] = "PROMPT"; static char TEXT_27 [] = "_________"; static char TEXT_28 [] = "XXXXXXXXX"; static char TEXT_29 [] = "FELDER"; static char TEXT_30 [] = "Die modale Wurzel ist ein 3D-Button ohne Rahmen. Dazu zieht man einen 3D-Button auf die BOX. Anschliessend lscht man die BOX."; static char TEXT_31 [] = "Die Rahmen von Buttons haben einen Offset von 1 und eine Dicke von 1. DEFAULT-Buttons werden automatisch um einen Pixel dicker. Buttons haben einen erhabenen 3D Effekt"; static char TEXT_32 [] = "Editfelder liegen in einer Vertiefung. Der Prompt sollte ausserhalb des Textfeldes sein."; static char TEXT_33 [] = "VERTIEFUNG"; static char TEXT_34 [] = "="; static char TEXT_35 [] = "+"; static char TEXT_36 [] = "IBOX"; static char TEXT_37 [] = "3D"; static char TEXT_38 [] = "Die nichtmodale Wurzel besteht aus einer IBOX mit einem Pixel Aussenrahmen und darauf einen 3D-Button mit Offset -2 und Dicke 2."; static char TEXT_39 [] = "Der Rahmen der Vertiefung hat den Offset 2 und die Dicke 1."; static char TEXT_40 [] = "TEXTE"; static char TEXT_41 [] = "Texte liegen in einer Vertiefung. Darauf wird eine weise BOX gelegt und dann das FTEXT-Objekt. Der FTEXT hat links und rechts eine Spalte weniger als die BOX."; static char TEXT_42 [] = "WURZEL Non-Modal"; static char TEXT_43 [] = "BOX"; static char TEXT_44 [] = "ACS ist soo super!"; /* TEDINFOS */ static TEDINFO TEDINFO_01 = {TEXT_026, NULL_STRING, NULL_STRING, 3, 6, 2, 0x1071, 0, 0, 12, 1}; static TEDINFO TEDINFO_02 = {TEXT_11, NULL_STRING, NULL_STRING, 3, 6, 2, 0x1100, 0, -1, 15, 1}; static TEDINFO TEDINFO_03 = {TEXT_12, NULL_STRING, NULL_STRING, 3, 6, 2, 0x1100, 0, -1, 8, 1}; static TEDINFO TEDINFO_04 = {TEXT_13, NULL_STRING, NULL_STRING, 3, 6, 2, 0x1100, 0, -1, 14, 1}; static TEDINFO TEDINFO_05 = {TEXT_20, NULL_STRING, NULL_STRING, 3, 6, 2, 0x1100, 0, -1, 10, 1}; static TEDINFO TEDINFO_06 = {TEXT_22, NULL_STRING, NULL_STRING, 3, 6, 2, 0x1100, 0, -1, 9, 1}; static TEDINFO TEDINFO_07 = {TEXT_25, TEXT_27, TEXT_28, 3, 6, 2, 0x1180, 0, 0, 10, 10}; static TEDINFO TEDINFO_08 = {TEXT_29, NULL_STRING, NULL_STRING, 3, 6, 2, 0x1100, 0, -1, 7, 1}; static TEDINFO TEDINFO_09 = {TEXT_10, NULL_STRING, NULL_STRING, 3, 6, 2, 0x1100, 0, -1, 13, 1}; static TEDINFO TEDINFO_10 = {TEXT_36, NULL_STRING, NULL_STRING, 3, 6, 2, 0x1100, 0, -1, 5, 1}; static TEDINFO TEDINFO_11 = {TEXT_33, NULL_STRING, NULL_STRING, 3, 6, 2, 0x1100, 0, -1, 11, 1}; static TEDINFO TEDINFO_12 = {TEXT_40, NULL_STRING, NULL_STRING, 3, 6, 2, 0x1100, 0, -1, 6, 1}; static TEDINFO TEDINFO_13 = {TEXT_42, NULL_STRING, NULL_STRING, 3, 6, 2, 0x1100, 0, -1, 17, 1}; static TEDINFO TEDINFO_14 = {TEXT_43, NULL_STRING, NULL_STRING, 3, 6, 2, 0x1180, 0, 0, 4, 1}; /* AUSERBLK */ static AUSERBLK A_3DBUTTON01 = {A_3Dbutton, 0xa02191a1L , Auo_string , NULL, NULL, NULL}; static AUSERBLK A_3DBUTTON02 = {A_3Dbutton, 0x29e201f8L , Auo_string , NULL, NULL, NULL}; static AUSERBLK A_3DBUTTON03 = {A_3Dbutton, 0x29110178L , Auo_string , TEXT_003 , NULL, NULL}; static AUSERBLK A_3DBUTTON04 = {A_3Dbutton, 0x29110178L , Auo_string , TEXT_09 , NULL, NULL}; static AUSERBLK A_3DBUTTON05 = {A_3Dbutton, 0xa9110178L , Auo_string , TEXT_24 , NULL, NULL}; static AUSERBLK A_3DBUTTON06 = {A_3Dbutton, 0x29110178L , Auo_string , TEXT_08 , NULL, NULL}; static AUSERBLK A_3DBUTTON07 = {A_3Dbutton, 0x29110178L , Auo_string , TEXT_17 , NULL, NULL}; static AUSERBLK A_3DBUTTON08 = {A_3Dbutton, 0x29110178L , Auo_string , TEXT_21 , NULL, NULL}; static AUSERBLK A_3DBUTTON09 = {A_3Dbutton, 0x29110178L , Auo_string , TEXT_23 , NULL, NULL}; static AUSERBLK A_3DBUTTON10 = {A_3Dbutton, 0x20219178L , Auo_string , NULL, NULL, NULL}; static AUSERBLK A_3DBUTTON11 = {A_3Dbutton, 0x29010178L , Auo_string , NULL, NULL, NULL}; static AUSERBLK A_3DBUTTON12 = {A_3Dbutton, 0x29e20178L , Auo_string , TEXT_37 , NULL, NULL}; static AUSERBLK A_3DBUTTON13 = {A_3Dbutton, 0x29110178L , Auo_string , TEXT_15 , NULL, NULL}; static AUSERBLK A_3DBUTTON14 = {A_3Dbutton, 0xa9110178L , Auo_string , TEXT_16 , NULL, NULL}; static AUSERBLK A_3DBUTTON15 = {A_3Dbutton, 0x20019178L , Auo_string , NULL, NULL, NULL}; static AUSERBLK A_3DBUTTON16 = {A_3Dbutton, 0x29110178L , Auo_string , TEXT_24 , NULL, NULL}; static AUSERBLK A_3DBUTTON17 = {A_3Dbutton, 0x29e20178L , Auo_string , NULL, NULL, NULL}; static AUSERBLK A_3DBUTTON18 = {A_3Dbutton, 0x29000178L , Auo_string , NULL, NULL, NULL}; static AUSERBLK A_3DBUTTON19 = {A_3Dbutton, 0x20219178L , Auo_string , TEXT_37 , NULL, NULL}; static AUSERBLK A_FTEXT01 = {A_ftext, 0x118000L , Auo_ftext , TEXT_07 , NULL, NULL}; static AUSERBLK A_FTEXT02 = {A_ftext, 0x110000L , Auo_ftext , TEXT_14 , NULL, NULL}; static AUSERBLK A_FTEXT03 = {A_ftext, 0x110000L , Auo_ftext , TEXT_30 , NULL, NULL}; static AUSERBLK A_FTEXT04 = {A_ftext, 0x110000L , Auo_ftext , TEXT_19 , NULL, NULL}; static AUSERBLK A_FTEXT05 = {A_ftext, 0x110000L , Auo_ftext , TEXT_32 , NULL, NULL}; static AUSERBLK A_FTEXT06 = {A_ftext, 0x110000L , Auo_ftext , TEXT_31 , NULL, NULL}; static AUSERBLK A_FTEXT07 = {A_ftext, 0x110000L , Auo_ftext , TEXT_39 , NULL, NULL}; static AUSERBLK A_FTEXT08 = {A_ftext, 0x110000L , Auo_ftext , TEXT_38 , NULL, NULL}; static AUSERBLK A_FTEXT09 = {A_ftext, 0x110000L , Auo_ftext , TEXT_41 , NULL, NULL}; static AUSERBLK A_FTEXT10 = {A_ftext, 0x11800dL , Auo_ftext , TEXT_44 , NULL, NULL}; /* ICONS */ static INT16 _MSK_ICON [] = { 0x007f, 0xf000, 0x00ff, 0xf800, 0x01ff, 0xfc00, 0x01ff, 0xfe00, 0x01ff, 0xfe00, 0x01f9, 0xfe00, 0x01f1, 0xfe00, 0x00f1, 0xfe00, 0x0063, 0xfe00, 0x0007, 0xfe00, 0x000f, 0xfe00, 0x001f, 0xfe00, 0x001f, 0xfc00, 0x001f, 0xf800, 0x001f, 0xf000, 0x001f, 0xe000, 0x000f, 0xe000, 0x0007, 0xc000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000f, 0x8000, 0x001f, 0xc000, 0x001f, 0xe000, 0x001f, 0xe000, 0x000f, 0xe000, 0x0007, 0xc000, 0x0000, 0x0000, 0x0000, 0x0000}; static INT16 _DAT_ICON [] = { 0x007f, 0xf000, 0x0080, 0x0800, 0x0100, 0x0400, 0x010f, 0x0600, 0x011f, 0x0600, 0x0139, 0x0600, 0x0131, 0x0600, 0x00f1, 0x0600, 0x0063, 0x0600, 0x0006, 0x0600, 0x000c, 0x0600, 0x0018, 0x0e00, 0x0010, 0x1c00, 0x0010, 0x3800, 0x0010, 0x7000, 0x0010, 0x6000, 0x000f, 0xe000, 0x0007, 0xc000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000f, 0x8000, 0x0010, 0x4000, 0x0010, 0x6000, 0x0010, 0x6000, 0x000f, 0xe000, 0x0007, 0xc000, 0x0000, 0x0000, 0x0000, 0x0000}; ICONBLK ICON = { _MSK_ICON, _DAT_ICON, TEXT_18, 0x1000, 0, 0, 20, 0, 32, 28, 0, 32, 72, 8}; /* MENU TREES */ static OBJECT _MENU = { -1, 1, 5, 25, 0x0, 0x0, 0x00000000L , 0, 0, 90, 25 }; static OBJECT _01__MENU = { 5, 2, 2, 20, 0x0, 0x0, 0x00001100L , 0, 0, 90, 513 }; static OBJECT _02__MENU = { 1, 3, 4, 25, 0x0, 0x0, 0x00000000L , 2, 0, 14, 769 }; static OBJECT _03__MENU = { 4, -1, -1, 32, 0x0, 0x2000, (long) NULL_STRING , 0, 0, 6, 769 }; static OBJECT _04__MENU = { 2, -1, -1, 32, 0x0, 0x0, (long) TEXT_02 , 6, 0, 8, 769 }; static OBJECT _05__MENU = { 0, 6, 15, 25, 0x0, 0x0, 0x00000000L , 0, 769, 80, 19 }; static OBJECT _06__MENU = { 15, 7, 14, 20, 0x0, 0x0, 0x00ff1100L , 2, 0, 20, 8 }; static OBJECT _07__MENU = { 8, -1, -1, 28, 0x0, 0x2000, (long) TEXT_03 , 0, 0, 20, 1 }; static OBJECT _08__MENU = { 9, -1, -1, 28, 0x0, 0x2008, (long) TEXT_04 , 0, 1, 20, 1 }; static OBJECT _09__MENU = { 10, -1, -1, 28, 0x0, 0x2000, (long) NULL_STRING , 0, 2, 20, 1 }; static OBJECT _10__MENU = { 11, -1, -1, 28, 0x0, 0x2000, (long) NULL_STRING , 0, 3, 20, 1 }; static OBJECT _11__MENU = { 12, -1, -1, 28, 0x0, 0x2000, (long) NULL_STRING , 0, 4, 20, 1 }; static OBJECT _12__MENU = { 13, -1, -1, 28, 0x0, 0x2000, (long) NULL_STRING , 0, 5, 20, 1 }; static OBJECT _13__MENU = { 14, -1, -1, 28, 0x0, 0x2000, (long) NULL_STRING , 0, 6, 20, 1 }; static OBJECT _14__MENU = { 6, -1, -1, 28, 0x0, 0x2000, (long) NULL_STRING , 0, 7, 20, 1 }; static OBJECT _15__MENU = { 5, 16, 18, 20, 0x0, 0x0, 0x00ff1101L , 8, 0, 15, 2 }; static OBJECT _16__MENU = { 18, -1, -1, 28, 0x0, 0x0, (long) TEXT_01 , 0, 0, 15, 1 }; static AOBJECT _16a_MENU = {top , NULL , 0x8000, 0x8047, NULL , NULL , 0x0, 0 }; static OBJECT _18__MENU = { 15, -1, -1, 28, 0x0, 0x0, (long) TEXT_06 , 0, 1, 15, 1 }; static AOBJECT _18a_MENU = {rts , NULL , 0x8020, 0x8061, NULL , NULL , 0x0, 0 }; /* OBJECT TREES */ OBJECT BUTTONS = { -1, 1, 9, 24, 0x0, 0x10, (long) &A_3DBUTTON11 , 0, 0, 42, 14 }; static OBJECT _01_BUTTONS = { 2, -1, -1, 21, 0x0, 0x0, (long) &TEDINFO_03 , 3, 0, 34, 2 }; static OBJECT _02_BUTTONS = { 5, 3, 3, 24, 0x0, 0x10, (long) &A_3DBUTTON10 , 3, 2, 36, 5 }; static OBJECT _03_BUTTONS = { 2, 4, 4, 20, 0x0, 0x500, 0x00001101L , 0, 0, 36, 5 }; static OBJECT _04_BUTTONS = { 3, -1, -1, 24, 0x0, 0x500, (long) &A_FTEXT06 , 1, 0, 34, 5 }; static OBJECT _05_BUTTONS = { 6, -1, -1, 21, 0x0, 0x0, (long) &TEDINFO_05 , 3, 7, 19, 2 }; static OBJECT _06_BUTTONS = { 9, 7, 8, 24, 0x0, 0x10, (long) &A_3DBUTTON15 , 3, 9, 19, 4 }; static OBJECT _07_BUTTONS = { 8, -1, -1, 24, 0x1, 0x10, (long) &A_3DBUTTON03 , 2, 1, 4, 1 }; static OBJECT _08_BUTTONS = { 6, -1, -1, 24, 0x1, 0x10, (long) &A_3DBUTTON09 , 10, 1, 6, 2 }; static OBJECT _09_BUTTONS = { 0, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON14 , 32, 9, 7, 2 }; static AOBJECT _09aBUTTONS = {rts , NULL , 0x8020, 0x0, NULL , NULL , 0x0, 0 }; OBJECT DEEP = { -1, 1, 8, 24, 0x0, 0x10, (long) &A_3DBUTTON11 , 0, 0, 34, 10 }; static OBJECT _01_DEEP = { 2, -1, -1, 21, 0x0, 0x0, (long) &TEDINFO_11 , 2, 0, 31, 2 }; static OBJECT _02_DEEP = { 5, 3, 3, 24, 0x0, 0x10, (long) &A_3DBUTTON10 , 2, 2, 30, 3 }; static OBJECT _03_DEEP = { 2, 4, 4, 20, 0x0, 0x500, 0x00001101L , 0, 0, 30, 3 }; static OBJECT _04_DEEP = { 3, -1, -1, 24, 0x0, 0x500, (long) &A_FTEXT07 , 1, 0, 28, 3 }; static OBJECT _05_DEEP = { 7, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON14 , 25, 6, 7, 2 }; static AOBJECT _05aDEEP = {rts , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _07_DEEP = { 8, -1, -1, 24, 0x0, 0x10, (long) &A_3DBUTTON10 , 2, 7, 19, 2 }; static OBJECT _08_DEEP = { 0, -1, -1, 21, 0x20, 0x0, (long) &TEDINFO_06 , 2, 5, 19, 2 }; OBJECT INPUTFIELD = { -1, 1, 12, 24, 0x0, 0x10, (long) &A_3DBUTTON11 , 0, 0, 40, 12 }; static OBJECT _01_INPUTFIELD = { 2, -1, -1, 21, 0x0, 0x0, (long) &TEDINFO_04 , 3, 0, 34, 2 }; static OBJECT _02_INPUTFIELD = { 5, 3, 3, 24, 0x0, 0x10, (long) &A_3DBUTTON10 , 3, 2, 34, 3 }; static OBJECT _03_INPUTFIELD = { 2, 4, 4, 20, 0x0, 0x500, 0x00001101L , 0, 0, 34, 3 }; static OBJECT _04_INPUTFIELD = { 3, -1, -1, 24, 0x0, 0x500, (long) &A_FTEXT05 , 1, 0, 32, 3 }; static OBJECT _05_INPUTFIELD = { 6, -1, -1, 21, 0x0, 0x0, (long) &TEDINFO_06 , 3, 6, 19, 2 }; static OBJECT _06_INPUTFIELD = { 10, 7, 7, 24, 0x0, 0x10, (long) &A_3DBUTTON15 , 3, 8, 20, 3 }; static OBJECT _07_INPUTFIELD = { 6, 8, 9, 24, 0x0, 0x10, (long) &A_3DBUTTON10 , 2, 1, 16, 1 }; static OBJECT _08_INPUTFIELD = { 9, -1, -1, 28, 0x0, 0x0, (long) TEXT_26 , 0, 0, 6, 1 }; static OBJECT _09_INPUTFIELD = { 7, -1, -1, 30, 0x8, 0x0, (long) &TEDINFO_07 , 7, 0, 9, 1 }; static OBJECT _10_INPUTFIELD = { 12, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON14 , 30, 6, 7, 2 }; static AOBJECT _10aINPUTFIELD = {rts , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _12_INPUTFIELD = { 0, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON05 , 27, 9, 10, 2 }; static AOBJECT _12aINPUTFIELD = {jsr , NULL , 0x8020, 0x0, &DEEP , NULL , 0x0, 0 }; OBJECT PANELS = { -1, 1, 10, 24, 0x0, 0x10, (long) &A_3DBUTTON11 , 0, 0, 39, 14 }; static OBJECT _01_PANELS = { 2, -1, -1, 21, 0x0, 0x0, (long) &TEDINFO_05 , 2, 7, 19, 2 }; static OBJECT _02_PANELS = { 5, 3, 4, 24, 0x0, 0x10, (long) &A_3DBUTTON15 , 2, 9, 19, 4 }; static OBJECT _03_PANELS = { 4, -1, -1, 24, 0x1, 0x10, (long) &A_3DBUTTON03 , 2, 1, 4, 1 }; static OBJECT _04_PANELS = { 2, -1, -1, 24, 0x1, 0x10, (long) &A_3DBUTTON09 , 10, 1, 6, 2 }; static OBJECT _05_PANELS = { 7, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON14 , 28, 9, 7, 2 }; static AOBJECT _05aPANELS = {rts , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _07_PANELS = { 10, 8, 8, 24, 0x0, 0x10, (long) &A_3DBUTTON10 , 3, 2, 34, 5 }; static OBJECT _08_PANELS = { 7, 9, 9, 20, 0x0, 0x500, 0x00001101L , 0, 0, 34, 5 }; static OBJECT _09_PANELS = { 8, -1, -1, 24, 0x0, 0x500, (long) &A_FTEXT02 , 1, 0, 32, 5 }; static OBJECT _10_PANELS = { 0, -1, -1, 21, 0x20, 0x0, (long) &TEDINFO_08 , 3, 0, 34, 2 }; OBJECT ROOT_MODAL = { -1, 1, 13, 24, 0x0, 0x10, (long) &A_3DBUTTON18 , 0, 0, 40, 13 }; static OBJECT _01_ROOT_MODAL = { 2, -1, -1, 21, 0x0, 0x0, (long) &TEDINFO_09 , 3, 0, 34, 2 }; static OBJECT _02_ROOT_MODAL = { 5, 3, 3, 24, 0x0, 0x10, (long) &A_3DBUTTON10 , 3, 2, 34, 5 }; static OBJECT _03_ROOT_MODAL = { 2, 4, 4, 20, 0x0, 0x500, 0x00001101L , 0, 0, 34, 5 }; static OBJECT _04_ROOT_MODAL = { 3, -1, -1, 24, 0x0, 0x500, (long) &A_FTEXT08 , 1, 0, 32, 5 }; static OBJECT _05_ROOT_MODAL = { 7, 6, 6, 25, 0x0, 0x0, 0x00ff1101L , 3, 9, 6, 3 }; static OBJECT _06_ROOT_MODAL = { 5, -1, -1, 21, 0x0, 0x0, (long) &TEDINFO_10 , 0, 0, 6, 3 }; static OBJECT _07_ROOT_MODAL = { 8, -1, -1, 24, 0x0, 0x10, (long) &A_3DBUTTON12 , 12, 9, 6, 3 }; static OBJECT _08_ROOT_MODAL = { 10, 9, 9, 25, 0x0, 0x0, 0x00ff1101L , 21, 9, 6, 3 }; static OBJECT _09_ROOT_MODAL = { 8, -1, -1, 24, 0x0, 0x10, (long) &A_3DBUTTON17 , 0, 0, 6, 3 }; static OBJECT _10_ROOT_MODAL = { 12, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON14 , 30, 9, 7, 2 }; static AOBJECT _10aROOT_MODAL = {rts , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _12_ROOT_MODAL = { 13, -1, -1, 28, 0x0, 0x0, (long) TEXT_35 , 10, 10, 1, 1 }; static OBJECT _13_ROOT_MODAL = { 0, -1, -1, 28, 0x20, 0x0, (long) TEXT_34 , 19, 10, 1, 1 }; OBJECT ROOT_NONMODAL = { -1, 1, 5, 24, 0x0, 0x10, (long) &A_3DBUTTON11 , 0, 0, 38, 11 }; static OBJECT _01_ROOT_NONMODAL = { 4, 2, 2, 24, 0x0, 0x10, (long) &A_3DBUTTON10 , 2, 2, 34, 5 }; static OBJECT _02_ROOT_NONMODAL = { 1, 3, 3, 20, 0x0, 0x500, 0x00001101L , 0, 0, 34, 5 }; static OBJECT _03_ROOT_NONMODAL = { 2, -1, -1, 24, 0x0, 0x500, (long) &A_FTEXT03 , 1, 0, 32, 5 }; static OBJECT _04_ROOT_NONMODAL = { 5, -1, -1, 21, 0x0, 0x0, (long) &TEDINFO_13 , 1, 0, 36, 2 }; static OBJECT _05_ROOT_NONMODAL = { 0, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON14 , 15, 8, 7, 2 }; static AOBJECT _05aROOT_NONMODAL = {rts , NULL , 0x8020, 0x0, NULL , NULL , 0x0, 0 }; OBJECT TEXTFIELD = { -1, 1, 14, 24, 0x0, 0x10, (long) &A_3DBUTTON11 , 0, 0, 40, 17 }; static OBJECT _01_TEXTFIELD = { 2, -1, -1, 21, 0x0, 0x0, (long) &TEDINFO_12 , 2, 0, 36, 2 }; static OBJECT _02_TEXTFIELD = { 5, 3, 3, 24, 0x0, 0x10, (long) &A_3DBUTTON10 , 2, 2, 36, 5 }; static OBJECT _03_TEXTFIELD = { 2, 4, 4, 20, 0x0, 0x500, 0x00001101L , 0, 0, 36, 5 }; static OBJECT _04_TEXTFIELD = { 3, -1, -1, 24, 0x0, 0x500, (long) &A_FTEXT09 , 1, 0, 34, 5 }; static OBJECT _05_TEXTFIELD = { 6, -1, -1, 28, 0x0, 0x0, (long) TEXT_35 , 12, 10, 1, 1 }; static OBJECT _06_TEXTFIELD = { 7, -1, -1, 28, 0x0, 0x0, (long) TEXT_35 , 24, 10, 1, 1 }; static OBJECT _07_TEXTFIELD = { 8, -1, -1, 24, 0x0, 0x0, (long) &A_FTEXT10 , 26, 9, 7, 3 }; static OBJECT _08_TEXTFIELD = { 9, -1, -1, 28, 0x0, 0x0, (long) TEXT_34 , 12, 14, 1, 1 }; static OBJECT _09_TEXTFIELD = { 12, 10, 10, 24, 0x0, 0x10, (long) &A_3DBUTTON10 , 14, 13, 9, 3 }; static OBJECT _10_TEXTFIELD = { 9, 11, 11, 20, 0x0, 0x0, 0x00001101L , 0, 0, 9, 3 }; static OBJECT _11_TEXTFIELD = { 10, -1, -1, 24, 0x0, 0x0, (long) &A_FTEXT10 , 1, 0, 7, 3 }; static OBJECT _12_TEXTFIELD = { 13, -1, -1, 24, 0x0, 0x10, (long) &A_3DBUTTON19 , 2, 9, 9, 3 }; static OBJECT _13_TEXTFIELD = { 14, -1, -1, 22, 0x0, 0x0, (long) &TEDINFO_14 , 14, 9, 9, 3 }; static OBJECT _14_TEXTFIELD = { 0, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON14 , 31, 14, 7, 2 }; static AOBJECT _14aTEXTFIELD = {rts , NULL , 0x8020, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _INFOBOX = { -1, 1, 1, 25, 0x0, 0x0, 0x00ff1141L , 0, 0, 30, 11 }; static OBJECT _01__INFOBOX = { 0, 2, 7, 24, 0x0, 0x510, (long) &A_3DBUTTON02 , 0, 0, 30, 11 }; static OBJECT _02__INFOBOX = { 4, 3, 3, 24, 0x0, 0x110, (long) &A_3DBUTTON01 , 2, 1, 26, 1 }; static OBJECT _03__INFOBOX = { 2, -1, -1, 22, 0x2040, 0x100, (long) &TEDINFO_01 , 0, 0, 26, 1 }; static OBJECT _04__INFOBOX = { 7, 5, 5, 24, 0x0, 0x510, (long) &A_3DBUTTON01 , 2, 3, 26, 5 }; static OBJECT _05__INFOBOX = { 4, 6, 6, 20, 0x0, 0x500, 0x00001101L , 0, 0, 26, 5 }; static OBJECT _06__INFOBOX = { 5, -1, -1, 24, 0x0, 0x500, (long) &A_FTEXT01 , 1, 0, 24, 5 }; static OBJECT _07__INFOBOX = { 1, -1, -1, 24, 0x7, 0xc10, (long) &A_3DBUTTON03 , 12, 9, 6, 1 }; static AOBJECT _07a_INFOBOX = {NULL , NULL , 0x8020, 0x8818, NULL , NULL , 0x0, 0 }; static OBJECT _START = { -1, 1, 15, 24, 0x0, 0x10, (long) &A_3DBUTTON11 , 0, 0, 52, 14 }; static OBJECT _01__START = { 2, -1, -1, 21, 0x0, 0x0, (long) &TEDINFO_02 , 10, 0, 34, 2 }; static OBJECT _02__START = { 5, 3, 3, 24, 0x0, 0x10, (long) &A_3DBUTTON10 , 10, 2, 34, 5 }; static OBJECT _03__START = { 2, 4, 4, 20, 0x0, 0x500, 0x00001101L , 0, 0, 34, 5 }; static OBJECT _04__START = { 3, -1, -1, 24, 0x0, 0x500, (long) &A_FTEXT04 , 1, 0, 32, 5 }; static OBJECT _05__START = { 7, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON07 , 2, 8, 14, 2 }; static AOBJECT _05a_START = {jsr , NULL , 0x8000, 0x0, &ROOT_NONMODAL, NULL , 0x0, 0 }; static OBJECT _07__START = { 9, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON06 , 19, 8, 14, 2 }; static AOBJECT _07a_START = {jsr , NULL , 0x8000, 0x0, &BUTTONS , NULL , 0x0, 0 }; static OBJECT _09__START = { 11, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON16 , 36, 8, 14, 2 }; static AOBJECT _09a_START = {jsr , NULL , 0x8000, 0x0, &DEEP , NULL , 0x0, 0 }; static OBJECT _11__START = { 13, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON08 , 2, 11, 14, 2 }; static AOBJECT _11a_START = {jsr , NULL , 0x8000, 0x0, &ROOT_MODAL , NULL , 0x0, 0 }; static OBJECT _13__START = { 15, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON04 , 19, 11, 14, 2 }; static AOBJECT _13a_START = {jsr , NULL , 0x8000, 0x0, &TEXTFIELD , NULL , 0x0, 0 }; static OBJECT _15__START = { 0, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON13 , 36, 11, 14, 2 }; static AOBJECT _15a_START = {jsr , NULL , 0x8020, 0x0, &INPUTFIELD , NULL , 0x0, 0 }; /* WINDOWS */ Awindow DIAHELP = { NULL, service_dh , make_dh , Awi_open, Awi_init, &_START , NULL, 0, 0, -1, 0xfef, { 0, 0, 120, 50}, {0, 0, 0, 0}, {0, 0, 0, 0}, {-1, -1, -1, -1}, 0, 0, 0xf8f8, TEXT_05 , NULL_STRING , 10000, 0x3, 0, -1, &ICON , &_MENU , Awi_keys, Awi_obchange, Awi_redraw, Awi_topped, Awi_closed, Awi_fulled, Awi_arrowed, Awi_hslid, Awi_vslid, Awi_sized, Awi_moved}; Adescr ACSdescr = { "ACS 2.0", 200, -4, -4, 0x13, "", &DESKTOP, NULL, { { 0, NULL}, { 2, NULL}, { 3, NULL}, { 4, NULL}, { 1, NULL}, { 5, NULL}, { 6, NULL}, { 7, NULL}, { 0, NULL}, { 0, NULL}, { 0, NULL}, { 0, NULL}, { 0, NULL}, { 0, NULL}, { 0, NULL}, { 0, NULL}, { 0, NULL}, { 0, NULL}, { 0, NULL}, { 0, NULL}, { 0, NULL}, { 0, NULL}, { 0, NULL}, { 0, NULL}, { 0, NULL}, { 0, NULL}, { 0, NULL}, { 0, NULL}, { 0, NULL}, { 0, NULL}, { 0, NULL}, { 0, NULL} } }; ; ACS Example Program (c) 1991, 1992 Stefan Bachert ; ..\..\AM\DIAHELP.AM ; Nachladbar .C [-D__ACS_MODULE__] .L [-S=0] = ; list of modules follows... acs_load.O ; startup code DIAHELP.C (DIAHELP.H) ; depends also upon surface definition ;PCBGILIB.LIB ; BGI library ;PCFLTLIB.LIB ; floating point library PCSTDLIB.LIB ; standard library ;PCEXTLIB.LIB ; extended library PCTOSLIB.LIB ; TOS library PCGEMLIB.LIB ; AES and VDI library ;PCLNALIB.LIB ; LINE-A library ; THIS IS THE END ; static OBJECT _01_WORLD = { 2, -1, -1, 28, 0x0, 0x0, (long) TEXT_005 , 5, 1, 6, 1 }; static OBJECT _02_WORLD = { 0, -1, -1, 28, 0x20, 0x0, (long) TEXT_001 , 5, 3, 5, 1 }; /* WINDOWS */ Awindow HELLO = { NULL, Awi_service, hello_make , Awi_open, Awi_init, &WORLD , NULL, 0, 0, -1, 0xb, { 0, 0, 34, 14}, {0, 0, 0, 0}, {0, 0, 0, 0}, {-1, -1,.ACS9|A>CG;<VD?6ACS 2.0 ACS ACCESSORY 3O3H8&BUTTONS&DEEP&INPUTFIELDZ&ROOT_MODAL&ROOT_NONMODAL&TEXTFIELD|0x110000L0x118000Lp 0x11800dL 0x20019178L 0x20219178L 0x29000178LB 0x29010178L0x29110178L0x29e20178Ld0x29e201f8L0xa02191a1L0xa9110178LzALERT LISTO39ZA_3DBUTTON01'4A_3DBUTTON02'4<A_3DBUTTON03'4XA_3DBUTTON04'4bhA_3DBUTTON05'4qHA_3DBUTTON06'4aA_3DBUTTON07'4j*tA_3DBUTTON08'4n A_3DBUTTON09'4pVA_3DBUTTON10 ' 46A_3DBUTTON11' 4A_3DBUTTON12'4~b A_3DBUTTON13'4h!A_3DBUTTON14'4iD"A_3DBUTTON15' 4$#A_3DBUTTON16'4qp$A_3DBUTTON17'4P%A_3DBUTTON18' 4&A_3DBUTTON19' 4~R'A_3Dbutton2(A_FTEXT0123`~)A_FTEXT0223g^*A_FTEXT0323w+A_FTEXT0423l@,A_FTEXT0523y -A_FTEXT0623xl.A_FTEXT0723L/A_FTEXT08230A_FTEXT0923.x1A_FTEXT102 32A_ftext 3Auo_ftext P4Auo_string500BUTTONS1#J *J"$$-"L "  ! ߄6DATA LISTrݼ7DEEPT_01/D " R.!Mܒ8DIAHELP1#txx2^@':B9HHERR_NOTREE_C[3][| Hier wurde es versumt | den nchsten Dialog| einzutragen.][ OK ]dQ:ICON018"k  Hc91c 8p`@``X;ICON LISToS:<IMAGE LIST=INPUTFIELDt* ( K""", M "  sN  ! |>MENU LISToS2?MOUSEFORM LIST(@NULL_STRING"hղA$$OBJECTTREE LIST#57=BEFW0B00PANELS01_3tJ 'L"  !  "") O"ҜCPOPUP LISTDllREFERENCE LIST '234EROOT_MODALLt: %( P"""/  Q   $ !  | {   :FPPROOT_NONMODAL#d& ""* T$! f G88TEDINFO LISTHIJKLMNOPQRSTU  BHTEDINFO_01[@@q   ITEDINFO_02d@@  fJTEDINFO_03e@@  KTEDINFO_04f@@ @ LTEDINFO_05m@@   MTEDINFO_06o@@  d NTEDINFO_07rtu  @OTEDINFO_08v@@PTEDINFO_09c@@ dQTEDINFO_10}@@RTEDINFO_11z@@ >STEDINFO_12@@TTEDINFO_13@@bUTEDINFO_14@@TVTEXT LIST@XYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~WHHTEXTFIELD_tz(S$$$0"| | 1  {      1 & U !dXTEXT_003OKLYTEXT_01 Start HOMEZ TEXT_02 Aktion H[ TEXT_026Information0\TEXT_03 ber mich ...~]TEXT_04--------------------b^TEXT_05 DIALOG HELPSYSTEM _TEXT_06 Zurck UNDOB`llTEXT_07Dieses Hilfesystem arbeitet mit Dialogen. Es ist sehr einfach mit ACS 2.00 zu erstellen und zu modifizierenaTEXT_08KnpfeFbTEXT_09Texte0c TEXT_10WURZEL ModaldTEXT_113D STYLE GUIDE*teTEXT_12BUTTONSfTEXT_13EINGABEFELDER6gTEXT_14Die Rahmen von Buttons sollten einen Offset von 1 und eine Dicke von 1 erhalten. DEFAULT-Buttons werden automatisch um einen Pixel dicker.h TEXT_15Editfelder4~iTEXT_16ZurckjTEXT_17Wurzel unmodalzkTEXT_18HELPlllTEXT_19In diesem Hilfesystem wird erlutert wie die 3D-Effekte erstellt werden. Sie sind als Anregung zu verstehen`m TEXT_20BeispieleJn TEXT_21Wurzel modalo TEXT_22BeispielLpTEXT_23SOSO8q TEXT_24Vertiefungr TEXT_25abcdefghi8sTEXT_26PROMPT&t TEXT_27_________u TEXT_28XXXXXXXXX&pvTEXT_29FELDERTwTEXT_30Die modale Wurzel ist ein 3D-Button ohne Rahmen. Dazu zieht man einen 3D-Button auf die BOX. Anschliessend lscht man die BOX.ZxTEXT_31Die Rahmen von Buttons haben einen Offset von 1 und eine Dicke von 1. DEFAULT-Buttons werden automatisch um einen Pixel dicker. Buttons haben einen erhabenen 3D EffektyYYTEXT_32Editfelder liegen in einer Vertiefung. Der Prompt sollte ausserhalb des Textfeldes sein.2@z TEXT_33VERTIEFUNG126{TEXT_34=11|TEXT_35+1@1}TEXT_36IBOX014~TEXT_373D00`TEXT_38Die nichtmodale Wurzel besteht aus einer IBOX mit einem Pixel Aussenrahmen und darauf einen 3D-Button mit Offset -2 und Dicke 2.//<<TEXT_39Der Rahmen der Vertiefung hat den Offset 2 und die Dicke 1./0/zTEXT_40TEXTE.>.TEXT_41Texte liegen in einer Vertiefung. Darauf wird eine weise BOX gelegt und dann das FTEXT-Objekt. Der FTEXT hat links und rechts eine Spalte weniger als die BOX.-.$TEXT_42WURZEL Non-Modal--TEXT_43BOX--hTEXT_44ACS ist soo super!,X,ttUSERBLK LIST !"#$%&()*+,-./01,,LWINDOW LISTs8)*:_INFOBOXO3$A   @H(  %%_MENU1CZZ @ ZP \  ]  @  @  @  @ @ @YG_a"#>hh_START1J 4I " ""+ #$     $ "jsr"`make_dh"rts!service_dhtop; ACS Example Program (c) 1991, 1992 Stefan Bachert ; ..\..\AM\DIAHELP.PRG ; Als Programm .L [-S=8192] = ; list of modules follows... pcstart.o DIAHELP.C (DIAHELP.H) ; depends also upon surface definition acs.lib ;PCBGILIB.LIB ; BGI library ;PCFLTLIB.LIB ; floating point library PCSTDLIB.LIB ; standard library ;PCEXTLIB.LIB ; extended library PCTOSLIB.LIB ; TOS library PCGEMLIB.LIB ; AES and VDI library PCLNALIB.LIB ; LINE-A library ; THIS IS THE END S and VDI library PCLNALIB.LIB ; LINE-A library ; THIS IS THE END THE END NULL , NULL , 0x8000, 0x0, NULL , NULL , 0x0, OBJ_3 }; static OBJECT _07_DRAGS = { 0, -1, -1, 26, 0x2000, 0x0, (long) TEXT_004 , 13, 5, 7, 3 }; static AOBJECT _07aDRAGS = {NULL , NULL , 0x8020, 0x0, NULL , NULL , 0x0, OBJ_4 }; /* WINDOWS */ Awindow DEMO = { NULL, menu_service, m.ACSȘr~q28($)-!"/7*'ACS 1.0f DIGITAL UHR (ACS)O380x118000Lp0x29110178L@0x29c401f8L`0x29e201f8Lo0xa02191a1LALERT LIST *N 09(g_CBA_3DBUTTON01 A_3DBUTTON02 n8 A_3DBUTTON03 2mn A_3DBUTTON05 m A_3Dbuttonmmd A_FTEXT01 4l A_ftextlAuo_ftextl<Auo_stringi 00CONTROLn i i_cA0  0    & %    ,   + xD3_FRAME.DATA LIST:DIGIT_0 '  oS"b1 ?_8888888@@8888888_?FDIGIT_1n "b1 88888888888888RDIGIT_2_____ &DIGIT_190"b1 ?8888888?__?^DIGIT_3p@w"b1 ?8888888?8888888?jDIGIT_4XXXXXXXXXXXXX )__"b1 @8888888_?8888888vDIGIT_5 n IKO"b1 ?__?8888888?DIGIT_6P"b1 ?__?_8888888_?DIGIT_7>3s8"b1 ?88888888888888DIGIT_8 nNa"b1 ?_8888888_?_8888888_?DIGIT_9 U@g$S@g4S@g`@BAp"L S"b1 ?_8888888_?8888888?DIGIT_COLONnABBRUCH"b1 DIGI_UHRLTEN nCDROM.ACSt}9:; "01'6HOUR_1 @0Ȗ > HOUR_2*!00ICON LIST` SJn`,r$‚g _C6r"IMAGE LISTB9 RCf zBF`@``D#INFO_BOXC A   @.   $MENU LIST)K`RI )fp`&P%MIN_1**U5&MIN_2obe Tn Optione8'MOUSEFORM LISTE 0HrD R((OBJECTTREE LIST$Qjb(H|Os#)POPUP LIST S)fp`B@ k1@*0REFERENCE LISTHB@|@m o 9:;+SEC_1 ^In Probe ~,SEC_2obe Tn Optione(r-TEDINFO LIST J N$@ K N..TEDINFO_01511q P/TEXT LISTHN &H09(g09012345:0TEXT_001 DIGITAL UHR 1TEXT_002F2TEXT_003vDESKTOP.AH)PROTOCOK43 TEXT_008Zxͮ' DIGI UHRP4GGTEXT_01Diese Digitaluhr wurde als nachladbares Modul fr ACS 2.00 geschrieben<5 TEXT_026DOBUSRM.CyoEDALED.CInformation^6BBUHR_ICON |30r($oZ "3 0H?@?7USERBLK LIST 0pLNu/ / $H&I 8WINDOW LIST0<+`N j0(`g jX9digi_serviceNn Neu :digi_uhr________@L23456;init_uhr(XXXXXXXXXXXXXXXXXXXX/* This file was created with ACS 2.0 (c) Stefan Bachert 1991, 1992 The contents are based on file: E:\ACS\AM\DIGI_UHR.ACS compiled at: Fri Nov 20 11:39:58 1992 */ /* ANSI-C Prototypes */ static INT16 Auo_ftext (OBJECT* entry, INT16 task, void* in_out); static INT16 digi_service (Awindow* wi, INT16 task, void *in_out); static Awindow* digi_uhr (void* para); static INT16 init_uhr (Awindow* wi); /* STRINGS */ static char TEXT_001 [] = " DIGITAL UHR "; static char TEXT_002 [] = ""; static char TEXT_003 [] = "OK"; static char TEXT_008 [] = "DIGI UHR"; static char TEXT_01 [] = "Diese Digitaluhr wurde als nachladbares Modul fr ACS 2.00 geschrieben"; static char TEXT_026 [] = "Information"; /* TEDINFOS */ static TEDINFO TEDINFO_01 = {TEXT_026, TEXT_002, TEXT_002, 3, 6, 2, 0x1071, 0, 0, 12, 1}; /* AUSERBLK */ static AUSERBLK A_3DBUTTON01 = {A_3Dbutton, 0xa02191a1L , Auo_string , NULL, NULL, NULL}; static AUSERBLK A_3DBUTTON02 = {A_3Dbutton, 0x29e201f8L , Auo_string , NULL, NULL, NULL}; static AUSERBLK A_3DBUTTON03 = {A_3Dbutton, 0x29110178L , Auo_string , TEXT_003 , NULL, NULL}; static AUSERBLK A_3DBUTTON05 = {A_3Dbutton, 0x29c401f8L , Auo_string , NULL, NULL, NULL}; static AUSERBLK A_FTEXT01 = {A_ftext, 0x118000L , Auo_ftext , TEXT_01 , NULL, NULL}; /* ICONS */ static INT16 _MSK_DIGIT_0 [] = { 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}; static INT16 _DAT_DIGIT_0 [] = { 0x0000, 0x0000, 0x0000, 0x0000, 0x1fc0, 0x3fe0, 0x5fd0, 0xe038, 0xe038, 0xe038, 0xe038, 0xe038, 0xe038, 0xe038, 0x4010, 0x0000, 0x4010, 0xe038, 0xe038, 0xe038, 0xe038, 0xe038, 0xe038, 0xe038, 0x5fd0, 0x3fe0, 0x1fc0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}; ICONBLK DIGIT_0 = { _MSK_DIGIT_0, _DAT_DIGIT_0, TEXT_002, 0x100, 0, 0, 0, 0, 16, 32, 0, 22, 16, 8}; static INT16 _MSK_DIGIT_1 [] = { 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}; static INT16 _DAT_DIGIT_1 [] = { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0010, 0x0000, 0x0010, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}; ICONBLK DIGIT_1 = { _MSK_DIGIT_1, _DAT_DIGIT_1, TEXT_002, 0x100, 0, 0, 0, 0, 16, 32, 0, 22, 16, 8}; static INT16 _MSK_DIGIT_2 [] = { 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}; static INT16 _DAT_DIGIT_2 [] = { 0x0000, 0x0000, 0x0000, 0x0000, 0x1fc0, 0x3fe0, 0x1fd0, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x1fd0, 0x3fe0, 0x5fc0, 0xe000, 0xe000, 0xe000, 0xe000, 0xe000, 0xe000, 0xe000, 0x5fc0, 0x3fe0, 0x1fc0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}; ICONBLK DIGIT_2 = { _MSK_DIGIT_2, _DAT_DIGIT_2, TEXT_002, 0x100, 0, 0, 0, 0, 16, 32, 0, 22, 16, 8}; static INT16 _MSK_DIGIT_3 [] = { 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}; static INT16 _DAT_DIGIT_3 [] = { 0x0000, 0x0000, 0x0000, 0x0000, 0x1fc0, 0x3fe0, 0x1fd0, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x1fd0, 0x3fe0, 0x1fd0, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x1fd0, 0x3fe0, 0x1fc0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}; ICONBLK DIGIT_3 = { _MSK_DIGIT_3, _DAT_DIGIT_3, TEXT_002, 0x100, 0, 0, 0, 0, 16, 32, 0, 22, 16, 8}; static INT16 _MSK_DIGIT_4 [] = { 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}; static INT16 _DAT_DIGIT_4 [] = { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4010, 0xe038, 0xe038, 0xe038, 0xe038, 0xe038, 0xe038, 0xe038, 0x5fd0, 0x3fe0, 0x1fd0, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}; ICONBLK DIGIT_4 = { _MSK_DIGIT_4, _DAT_DIGIT_4, TEXT_002, 0x100, 0, 0, 0, 0, 16, 32, 0, 22, 16, 8}; static INT16 _MSK_DIGIT_5 [] = { 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}; static INT16 _DAT_DIGIT_5 [] = { 0x0000, 0x0000, 0x0000, 0x0000, 0x1fc0, 0x3fe0, 0x5fc0, 0xe000, 0xe000, 0xe000, 0xe000, 0xe000, 0xe000, 0xe000, 0x5fc0, 0x3fe0, 0x1fd0, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x1fd0, 0x3fe0, 0x1fc0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}; ICONBLK DIGIT_5 = { _MSK_DIGIT_5, _DAT_DIGIT_5, TEXT_002, 0x100, 0, 0, 0, 0, 16, 32, 0, 22, 16, 8}; static INT16 _MSK_DIGIT_6 [] = { 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}; static INT16 _DAT_DIGIT_6 [] = { 0x0000, 0x0000, 0x0000, 0x0000, 0x1fc0, 0x3fe0, 0x5fc0, 0xe000, 0xe000, 0xe000, 0xe000, 0xe000, 0xe000, 0xe000, 0x5fc0, 0x3fe0, 0x5fd0, 0xe038, 0xe038, 0xe038, 0xe038, 0xe038, 0xe038, 0xe038, 0x5fd0, 0x3fe0, 0x1fc0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}; ICONBLK DIGIT_6 = { _MSK_DIGIT_6, _DAT_DIGIT_6, TEXT_002, 0x100, 0, 0, 0, 0, 16, 32, 0, 22, 16, 8}; static INT16 _MSK_DIGIT_7 [] = { 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}; static INT16 _DAT_DIGIT_7 [] = { 0x0000, 0x0000, 0x0000, 0x0000, 0x1fc0, 0x3fe0, 0x1fd0, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0010, 0x0000, 0x0010, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}; ICONBLK DIGIT_7 = { _MSK_DIGIT_7, _DAT_DIGIT_7, TEXT_002, 0x100, 0, 0, 0, 0, 16, 32, 0, 22, 16, 8}; static INT16 _MSK_DIGIT_8 [] = { 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}; static INT16 _DAT_DIGIT_8 [] = { 0x0000, 0x0000, 0x0000, 0x0000, 0x1fc0, 0x3fe0, 0x5fd0, 0xe038, 0xe038, 0xe038, 0xe038, 0xe038, 0xe038, 0xe038, 0x5fd0, 0x3fe0, 0x5fd0, 0xe038, 0xe038, 0xe038, 0xe038, 0xe038, 0xe038, 0xe038, 0x5fd0, 0x3fe0, 0x1fc0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}; ICONBLK DIGIT_8 = { _MSK_DIGIT_8, _DAT_DIGIT_8, TEXT_002, 0x100, 0, 0, 0, 0, 16, 32, 0, 22, 16, 8}; static INT16 _MSK_DIGIT_9 [] = { 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}; static INT16 _DAT_DIGIT_9 [] = { 0x0000, 0x0000, 0x0000, 0x0000, 0x1fc0, 0x3fe0, 0x5fd0, 0xe038, 0xe038, 0xe038, 0xe038, 0xe038, 0xe038, 0xe038, 0x5fd0, 0x3fe0, 0x1fd0, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x1fd0, 0x3fe0, 0x1fc0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}; ICONBLK DIGIT_9 = { _MSK_DIGIT_9, _DAT_DIGIT_9, TEXT_002, 0x100, 0, 0, 0, 0, 16, 32, 0, 22, 16, 8}; static INT16 _MSK_DIGIT_COLON [] = { 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}; static INT16 _DAT_DIGIT_COLON [] = { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0700, 0x0700, 0x0700, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0700, 0x0700, 0x0700, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}; ICONBLK DIGIT_COLON = { _MSK_DIGIT_COLON, _DAT_DIGIT_COLON, TEXT_002, 0x100, 0, 0, 0, 0, 16, 32, 0, 22, 16, 8}; static INT16 _MSK_UHR_ICON [] = { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00ff, 0xffff, 0xfe00, 0x00ff, 0xffff, 0xff00, 0x00ff, 0xffff, 0xff80, 0x00ff, 0xffff, 0xff80, 0x00ff, 0xffff, 0xff80, 0x00ff, 0xffff, 0xff80, 0x00ff, 0xffff, 0xff80, 0x00ff, 0xffff, 0xff80, 0x00ff, 0xffff, 0xff80, 0x00ff, 0xffff, 0xff80, 0x00ff, 0xffff, 0xff80, 0x00ff, 0xffff, 0xff80, 0x00ff, 0xffff, 0xff80, 0x00ff, 0xffff, 0xff80, 0x00ff, 0xffff, 0xff80, 0x00ff, 0xffff, 0xff80, 0x00ff, 0xffff, 0xff80, 0x00ff, 0xffff, 0xff80, 0x007f, 0xffff, 0xff80, 0x003f, 0xffff, 0xff80, 0x0000, 0x0000, 0x0000}; static INT16 _DAT_UHR_ICON [] = { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00ff, 0xffff, 0xfe00, 0x00ff, 0xffff, 0xff00, 0x00c0, 0x0000, 0x0680, 0x00c0, 0x0000, 0x0680, 0x00df, 0x1819, 0xf680, 0x00df, 0x1819, 0xf680, 0x00c1, 0x1998, 0x1680, 0x00c1, 0x1998, 0x1680, 0x00df, 0x1819, 0xf680, 0x00df, 0x1819, 0xf680, 0x00d0, 0x1999, 0x0680, 0x00d0, 0x1999, 0x0680, 0x00df, 0x1819, 0xf680, 0x00df, 0x1819, 0xf680, 0x00c0, 0x0000, 0x0680, 0x00c0, 0x0000, 0x0680, 0x00ff, 0xffff, 0xfe80, 0x00ff, 0xffff, 0xfe80, 0x0040, 0x0000, 0x0180, 0x003f, 0xffff, 0xff80, 0x0000, 0x0000, 0x0000}; ICONBLK UHR_ICON = { _MSK_UHR_ICON, _DAT_UHR_ICON, TEXT_008, 0x1000, 0, 0, 12, 0, 48, 24, 0, 28, 72, 8}; /* OBJECT TREES */ OBJECT CONTROL = { -1, 1, 1, 25, 0x0, 0x10, 0x00001141L , 0, 0, 18, 12288 }; static OBJECT _01_CONTROL = { 0, 2, 9, 24, 0x1, 0x10, (long) &A_3DBUTTON05 , 0, 0, 18, 12288 }; static OBJECT _02_CONTROL = { 3, -1, -1, 31, 0x0, 0x0, (long) &DIGIT_3 , 1, 2048, 2, 8192 }; static OBJECT _03_CONTROL = { 4, -1, -1, 31, 0x0, 0x0, (long) &DIGIT_4 , 3, 2048, 2, 8192 }; static OBJECT _04_CONTROL = { 5, -1, -1, 31, 0x0, 0x0, (long) &DIGIT_COLON , 5, 2048, 2, 8192 }; static OBJECT _05_CONTROL = { 6, -1, -1, 31, 0x0, 0x0, (long) &DIGIT_5 , 7, 2048, 2, 8192 }; static OBJECT _06_CONTROL = { 7, -1, -1, 31, 0x0, 0x0, (long) &DIGIT_6 , 9, 2048, 2, 8192 }; static OBJECT _07_CONTROL = { 8, -1, -1, 31, 0x0, 0x0, (long) &DIGIT_COLON , 11, 2048, 2, 8192 }; static OBJECT _08_CONTROL = { 9, -1, -1, 31, 0x0, 0x0, (long) &DIGIT_7 , 13, 2048, 2, 8192 }; static OBJECT _09_CONTROL = { 1, -1, -1, 31, 0x20, 0x0, (long) &DIGIT_8 , 15, 2048, 2, 8192 }; OBJECT INFO_BOX = { -1, 1, 1, 25, 0x0, 0x0, 0x00ff1141L , 0, 0, 28, 10 }; static OBJECT _01_INFO_BOX = { 0, 2, 7, 24, 0x0, 0x510, (long) &A_3DBUTTON02 , 0, 0, 28, 10 }; static OBJECT _02_INFO_BOX = { 4, 3, 3, 24, 0x0, 0x110, (long) &A_3DBUTTON01 , 2, 1, 24, 1 }; static OBJECT _03_INFO_BOX = { 2, -1, -1, 22, 0x2040, 0x100, (long) &TEDINFO_01 , 0, 0, 24, 1 }; static OBJECT _04_INFO_BOX = { 7, 5, 5, 24, 0x0, 0x510, (long) &A_3DBUTTON01 , 2, 3, 24, 4 }; static OBJECT _05_INFO_BOX = { 4, 6, 6, 20, 0x0, 0x500, 0x00001101L , 0, 0, 24, 4 }; static OBJECT _06_INFO_BOX = { 5, -1, -1, 24, 0x0, 0x500, (long) &A_FTEXT01 , 1, 0, 22, 4 }; static OBJECT _07_INFO_BOX = { 1, -1, -1, 24, 0x7, 0xc10, (long) &A_3DBUTTON03 , 11, 8, 6, 1 }; static AOBJECT _07aINFO_BOX = {NULL , NULL , 0x8020, 0x8818, NULL , NULL , 0x0, 0 }; /* WINDOWS */ Awindow DIGI_UHR = { NULL, digi_service, digi_uhr , Awi_open, init_uhr , &CONTROL , NULL, 0, 0, -1, 0xb, { 0, 0, 34, 14}, {0, 0, 0, 0}, {0, 0, 0, 0}, {-1, -1, -1, -1}, 0, 0, 0xf0f0, TEXT_001 , TEXT_002 , 10000, 0x7, 0, -1, &UHR_ICON , NULL, Awi_keys, Awi_obchange, Awi_redraw, Awi_topped, Awi_closed, Awi_fulled, Awi_arrowed, Awi_hslid, Awi_vslid, Awi_sized, Awi_moved}; tatic OBJECT _05__START = { 7, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON07 , 2, 8, 14, 2 }; static AOBJECT _05a_START = {jsr , NULL , 0x8000, 0x0, &ROOT_NONMODAL, NULL , 0x0, 0 }; static OBJECT _07__START = { 9, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON06 , 19, 8, 14, 2 }; static AOBJECT _07a_START = {jsr , NULL , 0x8000, 0x0, &BUTTONS , NULL , 0x0, 0 }; static OBJECT _09__START = { 11, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON16 , 36, 8, 14, 2 }; static AOBJECT _09a_START = {jsr , NULL , 0x8000, 0x0, &DEEP , NULL , 0x0, 0 }; static OBJECT _11__START = { 13, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON08 , 2, 11, 14, 2 }; static AOBJECT _11a_START ; ACS Example Program (c) 1991, 1992 Stefan Bachert ; ..\..\AM\DIGI_UHR.AM ; Nachladbar .L [-S=0] = ; list of modules follows... acs_load.O ; startup code DIGI_UHR.C (DIGI_UHR.H) ; depends also upon surface definition ;PCBGILIB.LIB ; BGI library ;PCFLTLIB.LIB ; floating point library PCSTDLIB.LIB ; standard library ;PCEXTLIB.LIB ; extended library PCTOSLIB.LIB ; TOS library PCGEMLIB.LIB ; AES and VDI library ;PCLNALIB.LIB ; LINE-A library ; THIS IS THE END HIS IS THE END ; static OBJECT _01_WORLD = { 2, -1, -1, 28, 0x0, 0x0, (long) TEXT_005 , 5, 1, 6, 1 }; static OBJECT _02_WORLD = { 0, -1, -1, 28, 0x20, 0x0, (long) TEXT_001 , 5, 3, 5, 1 }; /* WINDOWS */ Awindow HELLO = { NULL, Awi_service, hello_make , Awi_open, Awi_init, &WORLD , NULL, 0, 0, -1, 0xb, { 0, 0, 34, 14}, {0, 0, 0, 0}, {0, 0, 0, 0}, {-1, -1,/* Beispielapplikation Digital-Uhr "DIGI_UHR" als nachladbares Modul 18.11.92 Stefan Bachert */ #define __ACS_MODULE__ #include #include #include #include "digi_uhr.h" static Awindow* digi_uhr (void* not_used); static INT16 init_uhr (Awindow* window); static INT16 digi_service (Awindow* wi, int task, void* in_out); #include "digi_uhr.ah" static void set_digit (Awindow *window, INT16 index, INT16 digit) /* * Setzt Digit */ { OBJECT *work; INT16 *olddata, *data; work = window-> work; olddata = work [index]. ob_spec. iconblk-> ib_pdata; switch (digit) { case 0: data = DIGIT_0. ib_pdata; break; case 1: data = DIGIT_1. ib_pdata; break; case 2: data = DIGIT_2. ib_pdata; break; case 3: data = DIGIT_3. ib_pdata; break; case 4: data = DIGIT_4. ib_pdata; break; case 5: data = DIGIT_5. ib_pdata; break; case 6: data = DIGIT_6. ib_pdata; break; case 7: data = DIGIT_7. ib_pdata; break; case 8: data = DIGIT_8. ib_pdata; break; case 9: data = DIGIT_9. ib_pdata; break; default: return; } if (olddata != data) { /* nderung */ work [index]. ob_spec. iconblk-> ib_pdata = data; (window-> obchange) (window, index, work [index]. ob_state); } } static INT16 init_uhr (Awindow *window) /* * Frischt die Anzeige auf */ { static INT16 skipper; static unsigned long prev_time = 0; unsigned long act_time; INT16 t; window-> state |= AWS_LATEUPDATE; /* immer wieder aufrufen */ if ((skipper ++ & 1) != 0) return OK; /* nur jedes zweite Mal */ act_time = Gettime (); /* Zeit holen ?? Tastatur hngt ?? */ if (prev_time == act_time) return OK; prev_time = act_time; if (window-> work [D3_FRAME]. ob_state & SELECTED) { t = (INT16) (80 + (act_time >> 25)) % 100;/* Jahr */ set_digit (window, SEC_1, t % 10); set_digit (window, SEC_2, t / 10); t = (INT16) (act_time >> 21) & 0xf; /* Monat */ set_digit (window, MIN_1, t % 10); set_digit (window, MIN_2, t / 10); t = (INT16) (act_time >> 16) & 0x1f; /* Tag */ set_digit (window, HOUR_1, t % 10); set_digit (window, HOUR_2, t / 10); } else { t = (INT16) (act_time & 0x1f) << 1; /* Sekunden */ set_digit (window, SEC_1, t % 10); set_digit (window, SEC_2, t / 10); t = (INT16) (act_time >> 5) & 0x3f; /* Minuten */ set_digit (window, MIN_1, t % 10); set_digit (window, MIN_2, t / 10); t = (INT16) (act_time >> 11) & 0x1f; /* Stunden */ set_digit (window, HOUR_1, t % 10); set_digit (window, HOUR_2, t / 10); }; return OK; } static Awindow* digi_uhr (void *not_used) /* * Erzeuge Uhrfenster */ { Awindow *wi; wi = Awi_create (&DIGI_UHR); (wi-> open) (wi); return wi; } static INT16 digi_service (Awindow* wi, int task, void* in_out) /* * */ { switch (task) { case AS_TERM: Awi_delete (wi); ACSmoduleterm (); break; case AS_INFO: /* Info zeigen */ A_dialog (&INFO_BOX); break; default: return FALSE; }; return TRUE; } INT16 ACSinit (void) /* * */ { digi_uhr (NULL); return OK; }rk-> ob_x += window-> wi_work. x; work-> ob_y += window-> wi_work. y; val = graf_slidebox (work, area, ev_obnr, 1); work-> ob_x = x; work-> ob_y = y; vsl-> pos = (INT16) ((val * vsl-> full) / 1000); vsl_update (vsl, top); } /* This file was created with ACS 2.0 (c) Stefan Bachert 1991, 1992 The contents is based on file: E:\ACS\AM\DIGI_UHR.ACS compiled at: Fri Nov 20 11:39:56 1992 */ /* STRINGS */ /* ICONS */ extern ICONBLK DIGIT_0; extern ICONBLK DIGIT_1; extern ICONBLK DIGIT_2; extern ICONBLK DIGIT_3; extern ICONBLK DIGIT_4; extern ICONBLK DIGIT_5; extern ICONBLK DIGIT_6; extern ICONBLK DIGIT_7; extern ICONBLK DIGIT_8; extern ICONBLK DIGIT_9; extern ICONBLK DIGIT_COLON; extern ICONBLK UHR_ICON; /* OBJECT TREES */ extern OBJECT CONTROL; #define D3_FRAME ( 1) #define HOUR_2 ( 2) #define HOUR_1 ( 3) #define MIN_2 ( 5) #define MIN_1 ( 6) #define SEC_2 ( 8) #define SEC_1 ( 9) extern OBJECT INFO_BOX; /* WINDOWS */ extern Awindow DIGI_UHR; /* ANSI-C Prototypes */ extern INT16 CDECL A_3Dbutton (PARMBLK* pb); extern INT16 CDECL A_ftext (PARMBLK* pb); extern INT16 Auo_string (OBJECT* entry, INT16 task, void* in_out); .ACSȸU9`jS,325 9-/8V71*ACS 1.0d ACS-RechnerY_3O38S80x118000LR0x29110178LR0x29c10178LRZ0x29e20178LR0x29e201f8LQ0xa0219178L0xa02191a1LQ20xa9a10178LP ALERT LISTEP AT_STRINGP4P~ A_3DBUTTON01$(BOP A_3DBUTTON02$(O A_3DBUTTON03$(IO`BA_3DBUTTON04$(NO@A_3DBUTTON05$(ONNA_3DBUTTON06$(PN"NlA_3DBUTTON07$(JMNA_3DBUTTON08$(MMNMA_3DBUTTON09$(HLM.A_3DBUTTON10$(KLzLA_3DBUTTON11$(NLLZA_3DBUTTON12$(G0A_3DBUTTON13$(R\A_3DBUTTON14$(S<A_3DBUTTON15$(EA_3DBUTTON16$(LhA_3DBUTTON17$(A_3DBUTTON18$(=JA_3DBUTTON19$(F*A_3DBUTTON20$(TvA_3DBUTTON21$(Q V A_3DBUTTON22$(D!A_3DBUTTON23$("A_3DBUTTON24$(>d#A_3DBUTTON26$($A_3Dbutton%A_FTEXT02&'Uf&A_ftext'Auo_ftext(Auo_string)CALC_DISPLAY>*DATA LIST$+ERR_DIV0h Ø oDIVISION DURCH 0,FENSTERO36.x-ICON LISTE.2.IC_CALC 6ʀ P' $@ H??????????????????????????  /(((/ 'y$I&$I&'y 'y$I&$I&'y '$@&$@&' ?/IMAGE LISTE0INFOBOX_CA #  @;% " B1MAUS LISTE~2MEN LISTEO3~~3OBJEKT LISTE_304yDt4PANEL_0013J !) 0:baS c l~ i* ^7 _8  `9  d/  [4\5 ]6 j+ X1 Y2 Z3 h- W0 e. f=x5POPUP LISTExxd6RECHNER01  nSTRUKTURO3txkg4 "?<'.w<7 REFERENZEN $&'(WXYZ[\]^_`abcdefghijklv~v8llSTRING LISTE+<=>?@ABCDEFGHIJKLMNOPQRSTUv$vn9TEDI LISTE:;uv:TEDINFO_01A<<uHu;TEDINFO_02C<<q tu><TEXT_002@0R@tt=TEXT_003 ACtHt>TEXT_004OKst6? TEXT_005 RECHNER ss@TEXT_0068 ~`ff` ``fn` ``RECHNERs0szATEXT_0112345678901234rs&BTEXT_02r~rC TEXT_026Informationr*rtDTEXT_03qr ETEXT_04*qqFTEXT_057q.qxGTEXT_068pq$HTEXT_079ppITEXT_084p2p|JTEXT_095op(KTEXT_106ooLTEXT_111o6oMTEXT_122no,NTEXT_133nnOTEXT_14/n:nPTEXT_15+mn0QTEXT_16-mmRTEXT_170m>mSTEXT_18.lm4TTEXT_19=l@lUWWTEXT_21Dieser Taschenrechner ist ein nachladbares Modul des ACS 2.00. Die Anzeige ist ziehbarfVhUSERBLK LISTE  !"#%Wcalc_0 GXcalc_1x{ Ycalc_2x{ >Zcalc_3x{ [calc_4n Kn Optione\calc_5XnMausindex:_n`]calc_6x{ ^calc_7x{ _calc_8n Kn Optione`calc_9{ 8acalc_acbcalc_acceptccalc_back:@0^Zdcalc_div@  ecalc_dotx{ fcalc_isx{ |gcalc_make{ 2hcalc_minus{ icalc_mulx{ jcalc_plusUU:UUUUUUUTkcalc_service  xlcalc_sign{ /* This file was created with ACS 2.0 (c) Stefan Bachert 1991, 1992 The contents are based on file: E:\ACS\AM\RECHNER.ACS compiled at: Mon Nov 30 15:16:32 1992 */ /* ANSI-C Prototypes */ static INT16 Auo_ftext (OBJECT* entry, INT16 task, void* in_out); static void calc_0 (void); static void calc_1 (void); static void calc_2 (void); static void calc_3 (void); static void calc_4 (void); static void calc_5 (void); static void calc_6 (void); static void calc_7 (void); static void calc_8 (void); static void calc_9 (void); static void calc_ac (void); static void calc_accept (void); static void calc_back (void); static void calc_div (void); static void calc_dot (void); static void calc_is (void); static Awindow* calc_make (void* para); static void calc_minus (void); static void calc_mul (void); static void calc_plus (void); static INT16 calc_service (Awindow* wi, INT16 task, void *in_out); static void calc_sign (void); /* STRINGS */ char ERR_DIV0 [] = "DIVISION DURCH 0"; static char TEXT_002 [] = ""; static char TEXT_003 [] = "AC"; static char TEXT_004 [] = "OK"; static char TEXT_005 [] = " RECHNER "; static char TEXT_006 [] = "RECHNER"; static char TEXT_01 [] = "12345678901234"; static char TEXT_02 [] = ""; static char TEXT_026 [] = "Information"; static char TEXT_03 [] = ""; static char TEXT_04 [] = "*"; static char TEXT_05 [] = "7"; static char TEXT_06 [] = "8"; static char TEXT_07 [] = "9"; static char TEXT_08 [] = "4"; static char TEXT_09 [] = "5"; static char TEXT_10 [] = "6"; static char TEXT_11 [] = "1"; static char TEXT_12 [] = "2"; static char TEXT_13 [] = "3"; static char TEXT_14 [] = "/"; static char TEXT_15 [] = "+"; static char TEXT_16 [] = "-"; static char TEXT_17 [] = "0"; static char TEXT_18 [] = "."; static char TEXT_19 [] = "="; static char TEXT_21 [] = "Dieser Taschenrechner ist ein nachladbares Modul des ACS 2.00. Die Anzeige ist ziehbar"; /* TEDINFOS */ static TEDINFO TEDINFO_01 = {TEXT_01, TEXT_002, TEXT_002, 3, 6, 2, 0x1180, 0, 0, 15, 1}; static TEDINFO TEDINFO_02 = {TEXT_026, TEXT_002, TEXT_002, 3, 6, 2, 0x1071, 0, 0, 12, 1}; /* AUSERBLK */ static AUSERBLK A_3DBUTTON01 = {A_3Dbutton, 0x29c10178L , Auo_string , TEXT_02 , NULL, NULL}; static AUSERBLK A_3DBUTTON02 = {A_3Dbutton, 0x29e20178L , Auo_string , NULL, NULL, NULL}; static AUSERBLK A_3DBUTTON03 = {A_3Dbutton, 0x29c10178L , Auo_string , TEXT_08 , NULL, NULL}; static AUSERBLK A_3DBUTTON04 = {A_3Dbutton, 0xa9a10178L , Auo_string , NULL, NULL, NULL}; static AUSERBLK A_3DBUTTON05 = {A_3Dbutton, 0x29c10178L , Auo_string , TEXT_14 , NULL, NULL}; static AUSERBLK A_3DBUTTON06 = {A_3Dbutton, 0x29c10178L , Auo_string , TEXT_15 , NULL, NULL}; static AUSERBLK A_3DBUTTON07 = {A_3Dbutton, 0x29c10178L , Auo_string , TEXT_09 , NULL, NULL}; static AUSERBLK A_3DBUTTON08 = {A_3Dbutton, 0x29c10178L , Auo_string , TEXT_12 , NULL, NULL}; static AUSERBLK A_3DBUTTON09 = {A_3Dbutton, 0x29c10178L , Auo_string , TEXT_07 , NULL, NULL}; static AUSERBLK A_3DBUTTON10 = {A_3Dbutton, 0x29c10178L , Auo_string , TEXT_10 , NULL, NULL}; static AUSERBLK A_3DBUTTON11 = {A_3Dbutton, 0x29c10178L , Auo_string , TEXT_13 , NULL, NULL}; static AUSERBLK A_3DBUTTON12 = {A_3Dbutton, 0x29c10178L , Auo_string , TEXT_06 , NULL, NULL}; static AUSERBLK A_3DBUTTON13 = {A_3Dbutton, 0x29c10178L , Auo_string , TEXT_17 , NULL, NULL}; static AUSERBLK A_3DBUTTON14 = {A_3Dbutton, 0x29c10178L , Auo_string , TEXT_18 , NULL, NULL}; static AUSERBLK A_3DBUTTON15 = {A_3Dbutton, 0x29c10178L , Auo_string , TEXT_04 , NULL, NULL}; static AUSERBLK A_3DBUTTON16 = {A_3Dbutton, 0x29c10178L , Auo_string , TEXT_11 , NULL, NULL}; static AUSERBLK A_3DBUTTON17 = {A_3Dbutton, 0xa02191a1L , Auo_string , NULL, NULL, NULL}; static AUSERBLK A_3DBUTTON18 = {A_3Dbutton, 0x29c10178L , Auo_string , TEXT_003 , NULL, NULL}; static AUSERBLK A_3DBUTTON19 = {A_3Dbutton, 0x29c10178L , Auo_string , TEXT_05 , NULL, NULL}; static AUSERBLK A_3DBUTTON20 = {A_3Dbutton, 0x29c10178L , Auo_string , TEXT_19 , NULL, NULL}; static AUSERBLK A_3DBUTTON21 = {A_3Dbutton, 0x29c10178L , Auo_string , TEXT_16 , NULL, NULL}; static AUSERBLK A_3DBUTTON22 = {A_3Dbutton, 0x29c10178L , Auo_string , TEXT_03 , NULL, NULL}; static AUSERBLK A_3DBUTTON23 = {A_3Dbutton, 0xa0219178L , Auo_string , NULL, NULL, NULL}; static AUSERBLK A_3DBUTTON24 = {A_3Dbutton, 0x29110178L , Auo_string , TEXT_004 , NULL, NULL}; static AUSERBLK A_3DBUTTON26 = {A_3Dbutton, 0x29e201f8L , Auo_string , NULL, NULL, NULL}; static AUSERBLK A_FTEXT02 = {A_ftext, 0x118000L , Auo_ftext , TEXT_21 , NULL, NULL}; /* ICONS */ static INT16 _MSK_IC_CALC [] = { 0x3fff, 0xfffc, 0x3fff, 0xfffe, 0x3fff, 0xfffe, 0x3fff, 0xfffe, 0x3fff, 0xfffe, 0x3fff, 0xfffe, 0x3fff, 0xfffe, 0x3fff, 0xfffe, 0x3fff, 0xfffe, 0x3fff, 0xfffe, 0x3fff, 0xfffe, 0x3fff, 0xfffe, 0x3fff, 0xfffe, 0x3fff, 0xfffe, 0x3fff, 0xfffe, 0x3fff, 0xfffe, 0x3fff, 0xfffe, 0x3fff, 0xfffe, 0x3fff, 0xfffe, 0x3fff, 0xfffe, 0x3fff, 0xfffe, 0x3fff, 0xfffe, 0x3fff, 0xfffe, 0x3fff, 0xfffe, 0x3fff, 0xfffe, 0x1fff, 0xfffe}; static INT16 _DAT_IC_CALC [] = { 0x3fff, 0xfffc, 0x2000, 0x0006, 0x2000, 0x0006, 0x2fff, 0xfff6, 0x2800, 0x0016, 0x2800, 0x00d6, 0x2800, 0x0016, 0x2fff, 0xfff6, 0x2000, 0x0006, 0x279e, 0x79e6, 0x2492, 0x4926, 0x2492, 0x4926, 0x279e, 0x79e6, 0x2000, 0x0006, 0x279e, 0x79e6, 0x2492, 0x4926, 0x2492, 0x4926, 0x279e, 0x79e6, 0x2000, 0x0006, 0x279e, 0x7fe6, 0x2492, 0x4026, 0x2492, 0x4026, 0x279e, 0x7fe6, 0x2000, 0x0006, 0x3fff, 0xfffe, 0x1fff, 0xfffe}; ICONBLK IC_CALC = { _MSK_IC_CALC, _DAT_IC_CALC, TEXT_006, 0x1000, 0, 0, 19, 0, 32, 26, 0, 28, 72, 8}; /* OBJECT TREES */ static OBJECT INFOBOX = { -1, 1, 1, 25, 0x0, 0x0, 0x00ff1141L , 0, 0, 28, 11 }; static OBJECT _01_INFOBOX = { 0, 2, 7, 24, 0x0, 0x510, (long) &A_3DBUTTON26 , 0, 0, 28, 11 }; static OBJECT _02_INFOBOX = { 4, 3, 3, 24, 0x0, 0x110, (long) &A_3DBUTTON17 , 2, 1, 24, 1 }; static OBJECT _03_INFOBOX = { 2, -1, -1, 22, 0x2040, 0x100, (long) &TEDINFO_02 , 0, 0, 24, 1 }; static OBJECT _04_INFOBOX = { 7, 5, 5, 24, 0x0, 0x510, (long) &A_3DBUTTON17 , 2, 3, 24, 5 }; static OBJECT _05_INFOBOX = { 4, 6, 6, 20, 0x0, 0x500, 0x00001101L , 0, 0, 24, 5 }; static OBJECT _06_INFOBOX = { 5, -1, -1, 24, 0x0, 0x500, (long) &A_FTEXT02 , 1, 0, 22, 5 }; static OBJECT _07_INFOBOX = { 1, -1, -1, 24, 0x7, 0xc10, (long) &A_3DBUTTON24 , 11, 9, 6, 1 }; static AOBJECT _07aINFOBOX = {NULL , NULL , 0x8020, 0x8818, NULL , NULL , 0x0, 0 }; OBJECT PANEL = { -1, 1, 41, 24, 0x0, 0x10, (long) &A_3DBUTTON02 , 0, 0, 18, 14 }; static OBJECT _01_PANEL = { 5, 2, 2, 24, 0x0, 0x10, (long) &A_3DBUTTON04 , 0, 0, 18, 3 }; static OBJECT _02_PANEL = { 1, 3, 3, 24, 0x0, 0x10, (long) &A_3DBUTTON23 , 2, 1, 14, 1 }; static OBJECT _03_PANEL = { 2, -1, -1, 22, 0x3000, 0x0, (long) &TEDINFO_01 , 0, 0, 14, 1 }; static AOBJECT _03aPANEL = {NULL , calc_accept , 0x8000, 0x0, NULL , NULL , 0x0, AT_STRING }; static OBJECT _05_PANEL = { 7, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON18 , 1, 3, 4, 2 }; static AOBJECT _05aPANEL = {calc_ac , NULL , 0x8000, 0x8053, NULL , NULL , 0x0, 0 }; static OBJECT _07_PANEL = { 9, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON01 , 5, 3, 4, 2 }; static AOBJECT _07aPANEL = {calc_back , NULL , 0x8000, 0x800e, NULL , NULL , 0x0, 0 }; static OBJECT _09_PANEL = { 11, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON22 , 9, 3, 4, 2 }; static AOBJECT _09aPANEL = {calc_sign , NULL , 0x8000, 0x7e, NULL , NULL , 0x0, 0 }; static OBJECT _11_PANEL = { 13, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON15 , 13, 3, 4, 2 }; static AOBJECT _11aPANEL = {calc_mul , NULL , 0x8000, 0x2a, NULL , NULL , 0x0, 0 }; static OBJECT _13_PANEL = { 15, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON19 , 1, 5, 4, 2 }; static AOBJECT _13aPANEL = {calc_7 , NULL , 0x8000, 0x37, NULL , NULL , 0x0, 0 }; static OBJECT _15_PANEL = { 17, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON12 , 5, 5, 4, 2 }; static AOBJECT _15aPANEL = {calc_8 , NULL , 0x8000, 0x38, NULL , NULL , 0x0, 0 }; static OBJECT _17_PANEL = { 19, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON09 , 9, 5, 4, 2 }; static AOBJECT _17aPANEL = {calc_9 , NULL , 0x8000, 0x39, NULL , NULL , 0x0, 0 }; static OBJECT _19_PANEL = { 21, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON05 , 13, 5, 4, 2 }; static AOBJECT _19aPANEL = {calc_div , NULL , 0x8000, 0x2f, NULL , NULL , 0x0, 0 }; static OBJECT _21_PANEL = { 23, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON03 , 1, 7, 4, 2 }; static AOBJECT _21aPANEL = {calc_4 , NULL , 0x8000, 0x34, NULL , NULL , 0x0, 0 }; static OBJECT _23_PANEL = { 25, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON07 , 5, 7, 4, 2 }; static AOBJECT _23aPANEL = {calc_5 , NULL , 0x8000, 0x35, NULL , NULL , 0x0, 0 }; static OBJECT _25_PANEL = { 27, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON10 , 9, 7, 4, 2 }; static AOBJECT _25aPANEL = {calc_6 , NULL , 0x8000, 0x36, NULL , NULL , 0x0, 0 }; static OBJECT _27_PANEL = { 29, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON06 , 13, 7, 4, 2 }; static AOBJECT _27aPANEL = {calc_plus , NULL , 0x8000, 0x2b, NULL , NULL , 0x0, 0 }; static OBJECT _29_PANEL = { 31, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON16 , 1, 9, 4, 2 }; static AOBJECT _29aPANEL = {calc_1 , NULL , 0x8000, 0x31, NULL , NULL , 0x0, 0 }; static OBJECT _31_PANEL = { 33, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON08 , 5, 9, 4, 2 }; static AOBJECT _31aPANEL = {calc_2 , NULL , 0x8000, 0x32, NULL , NULL , 0x0, 0 }; static OBJECT _33_PANEL = { 35, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON11 , 9, 9, 4, 2 }; static AOBJECT _33aPANEL = {calc_3 , NULL , 0x8000, 0x33, NULL , NULL , 0x0, 0 }; static OBJECT _35_PANEL = { 37, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON21 , 13, 9, 4, 2 }; static AOBJECT _35aPANEL = {calc_minus , NULL , 0x8000, 0x2d, NULL , NULL , 0x0, 0 }; static OBJECT _37_PANEL = { 39, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON13 , 1, 11, 4, 2 }; static AOBJECT _37aPANEL = {calc_0 , NULL , 0x8000, 0x30, NULL , NULL , 0x0, 0 }; static OBJECT _39_PANEL = { 41, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON14 , 5, 11, 4, 2 }; static AOBJECT _39aPANEL = {calc_dot , NULL , 0x8000, 0x2e, NULL , NULL , 0x0, 0 }; static OBJECT _41_PANEL = { 0, -1, -1, 24, 0x7, 0x10, (long) &A_3DBUTTON20 , 9, 11, 8, 2 }; static AOBJECT _41aPANEL = {calc_is , NULL , 0x8020, 0x3d, NULL , NULL , 0x0, 0 }; /* WINDOWS */ Awindow RECHNER = { NULL, calc_service, calc_make , Awi_open, Awi_init, &PANEL , NULL, 0, 0, -1, 0xb, { 0, 0, 34, 20}, {0, 0, 0, 0}, {0, 0, 0, 0}, {-1, -1, -1, -1}, 0, 0, 0xf0f0, TEXT_005 , TEXT_002 , 10000, 0x3, 0, -1, &IC_CALC , NULL, Awi_keys, Awi_obchange, Awi_redraw, Awi_topped, Awi_closed, Awi_fulled, Awi_arrowed, Awi_hslid, Awi_vslid, Awi_sized, Awi_moved}; /* ANSI-C Routines */ /* 'Auo_ftext' Not defined yet by user */ /* 'calc_0' Not defined yet by user */ /* 'calc_1' Not defined yet by user */ /* 'calc_2' Not defined yet by user */ /* 'calc_3' Not defined yet by user */ /* 'calc_4' Not defined yet by user */ /* 'calc_5' Not defined yet by user */ /* 'calc_6' Not defined yet by user */ /* 'calc_7' Not defined yet by user */ /* 'calc_8' Not defined yet by user */ /* 'calc_9' Not defined yet by user */ /* 'calc_ac' Not defined yet by user */ /* 'calc_accept' Not defined yet by user */ /* 'calc_back' Not defined yet by user */ /* 'calc_div' Not defined yet by user */ /* 'calc_dot' Not defined yet by user */ /* 'calc_is' Not defined yet by user */ /* 'calc_make' Not defined yet by user */ /* 'calc_minus' Not defined yet by user */ /* 'calc_mul' Not defined yet by user */ /* 'calc_plus' Not defined yet by user */ /* 'calc_service' Not defined yet by user */ /* 'calc_sign' Not defined yet by user */ /* This file was created with ACS 2.0 (c) Stefan Bachert 1991, 1992 The contents is based on file: E:\ACS\AM\RECHNER.ACS compiled at: Mon Nov 30 15:16:30 1992 */ /* STRINGS */ extern char ERR_DIV0 [17]; /* ICONS */ extern ICONBLK IC_CALC; /* OBJECT TREES */ extern OBJECT PANEL; #define CALC_DISPLAY ( 3) /* WINDOWS */ extern Awindow RECHNER; /* ANSI-C Prototypes */ extern INT16 CDECL A_3Dbutton (PARMBLK* pb); extern INT16 CDECL A_ftext (PARMBLK* pb); extern INT16 Auo_string (OBJECT* entry, INT16 task, void* in_out); = Awi_create (&REZEPT); if (wi == NULL) return NULL; wi-> user = data; strcpy (data-> file, file); wiob. window = wi; data-> edit = entry = wi-> work + ZUTATEN; wiob. entry = entry; wiob. obnr = ZUTATEN; Auo_editor (entry, AUO_SELF, &wiob); /* WICHTIG */ Auo_editor (entry, AUO_EDCHARSELECT, NULL); Auo_editor (entry, AUO_EDCURSOR, &block); Auo_editor (entry, AUO_EDCURON, NULL); Auo_editor (entry, Beispielapplikation TASCHENRECHNER ================================== Beliebig viele Taschenrechner knnen durch Anklicken des 'NEU'-Icons geffnet werden. Wird ein Icon eines geschlossenen Rechner auf den 'Papierkorb' gezogen verschwindet er vollstndig aus dem System. Der Taschenrechner beachtet die Regel 'Punkt vor Strich'. Er kann sowohl mit der Maus als auch mit der Tastatur bedient werden. Die meisten Tasten stimmen mit der Tastatur berein. Nachfolgend die Liste der Ausnahmen: 'AC' DELETE alles lschen '<=' Backspace letztes Zeichen zurcknehmen '+/-' ~ (Tilde) '=' ENTER Als Besonderheit kann das Display auch das Display eines anderen Rechners gezogen werden, der dann diesen Wert als Eingabe annimmt. Das Display kann auch auf den 'Papierkorb' gezogen werden. Dies wird als 'ALL CLEAR' 'AC' verstanden., 1, 2049, 8, 1 }; static OBJECT _61_PANEL = { 0, 63, 64, 24, 0x5, 0x10, (long) &A_3DBUTTON03 , 38, 13, 10, 3 }; static AOBJECT _61aPANEL ; ACS Beispiel Program (c) 1991 Stefan Bachert ; ..\..\AM\RECHNER.AM ; loadable Module = ; list of modules follows... ACS_LOAD.O ; startup code RECHNER.C (RECHNER.H) ; ;PCBGILIB.LIB ; BGI library PCFLTLIB.LIB ; floating point library PCSTDLIB.LIB ; standard library ;PCEXTLIB.LIB ; extended library PCTOSLIB.LIB ; TOS library PCGEMLIB.LIB ; AES and VDI library PCLNALIB.LIB ; LINE-A library ; THIS IS THE ENDSF1r"N 1H&!FbFG6,D\@Nڄ $G|DB/* Beispielapplikation fr ACS "Taschenrechner" 17.11.92 Stefan Bachert */ #define __ACS_MODULE__ #include #include #include #include #include #include "rechner.h" static void calc_0 (void); static void calc_1 (void); static void calc_2 (void); static void calc_3 (void); static void calc_4 (void); static void calc_5 (void); static void calc_6 (void); static void calc_7 (void); static void calc_8 (void); static void calc_9 (void); static void calc_ac (void); static void calc_back (void); static void calc_div (void); static void calc_mul (void); static void calc_plus (void); static void calc_minus (void); static void calc_is (void); static void calc_sign (void); static void calc_accept (void); static void calc_dot (void); static Awindow *calc_make (void *x); static INT16 calc_service (Awindow *window, INT16 task, void *in_out); #include /* * User Struktur */ #define DISPLAY_SIZE (14) typedef struct { double val [2]; char op [2]; char display [DISPLAY_SIZE + 2]; } CALC; static void update (Awindow *window) /* * Frischt das Display auf */ { CALC *user; char *p; user = window-> user; p = window-> work [CALC_DISPLAY]. ob_spec. tedinfo-> te_ptext; strcpy (p, user-> display); while (*p == ' ') p ++; ((AOBJECT *) window-> work + CALC_DISPLAY + 1)-> userp1 = p; (window-> obchange) (window, CALC_DISPLAY, -1); } static void new_digit (char digit) /* * bertrage das Digit in das Display */ { CALC *user; char *p; user = ev_window-> user; if (user-> op [0] == 'E') return; /* Fehler passiert */ if (user-> display [1] != ' ') return; /* display voll */ p = user-> display; while (*p == ' ') p ++; if (*p != '0') { /* nullen nicht schieben */ strcpy (user-> display, user-> display + 1); }; user-> display [DISPLAY_SIZE - 1] = digit; update (ev_window); } static void calc_0 (void) { new_digit ('0'); }; static void calc_1 (void) { new_digit ('1'); }; static void calc_2 (void) { new_digit ('2'); }; static void calc_3 (void) { new_digit ('3'); }; static void calc_4 (void) { new_digit ('4'); }; static void calc_5 (void) { new_digit ('5'); }; static void calc_6 (void) { new_digit ('6'); }; static void calc_7 (void) { new_digit ('7'); }; static void calc_8 (void) { new_digit ('8'); }; static void calc_9 (void) { new_digit ('9'); }; static void calc_dot (void) { CALC *user; user = ev_window-> user; if (strchr (user-> display, '.') != NULL) return; /* nur ein . */ new_digit ('.'); } static void cleardisp (Awindow *window) /* * Lsche nur display */ { CALC *user; user = window-> user; strncpy (user-> display, " 0", DISPLAY_SIZE); user-> display [DISPLAY_SIZE] = '\0'; } static void clear (Awindow *window) /* * Lsche alles */ { CALC *user; INT16 i; cleardisp (window); user = window-> user; for (i = 0; i < sizeof (user-> op); i ++) { user-> val [i] = 0.0; user-> op [i] = '='; }; } static double oper (Awindow *window, double v2) /* * Fhre operation durch */ { CALC *user; double v1; char op; INT16 i; user = window-> user; v1 = user-> val [0]; op = user-> op [0]; for (i = 0; i < sizeof (user-> op) - 1; i ++) { /* stack korrektur */ user-> val [i] = user-> val [i + 1]; user-> op [i] = user-> op [i + 1]; }; user-> op [sizeof (user-> op) - 1] = '='; switch (op) { case '+': return v1 + v2; case '-': return v1 - v2; case '*': return v1 * v2; case '/': if (v2 != 0.0) return v1 / v2; }; strncpy (user-> display, ERR_DIV0, DISPLAY_SIZE); update (window); user-> op [0] = 'E'; return 0.0; } static void doit (char op) /* * bearbeitet die operationen */ { double new; char string [40]; INT16 dec, sign; CALC *user; INT16 i, delta; Awindow *window; window = ev_window; user = window-> user; if (user-> op [0] == 'E') return; /* Fehler passiert */ if (user-> display [DISPLAY_SIZE - 1] == ' ') { switch (user-> op [0]) { /* kein neues Display */ case '*': case '/': if (op == '*' || op == '/') { user-> op [0] = op; return; }; new = 1.0; break; case '+': case '-': /* neutrales Element */ if (op == '+' || op == '-') { user-> op [0] = op; return; }; new = 0.0; break; /* neutrales Element */ case '=': if (op == '=') return; /* sinnlos */ new = user-> val [0]; /* letzter wert */ }; } else { new = strtod (user-> display, NULL); }; while (TRUE) { if (op == '+' || op == '-' || op == '=') { if (user-> op [0] == '=') { break; } else { new = oper (window, new); if (user-> op [0] == 'E') return; /* Fehler */ }; } else if (op == '*' || op == '/') { if (user-> op [0] == '*' || user-> op [0] == '/') { /* ausfhren */ new = oper (window, new); if (user-> op [0] == 'E') return; /* Fehler */ } else { /* +, -, = zuvor also stapeln */ for (i = ((INT16) sizeof (user-> op)) - 1; i > 0; i --) { user-> val [i] = user-> val [i - 1]; user-> op [i] = user-> op [i - 1]; }; break; }; } else { /* gibt (noch) nicht */ break; }; }; user-> val [0] = new; user-> op [0] = op; ftoa (&new, string + 1, DISPLAY_SIZE, 1, &dec, &sign); if (sign == 0) *string = ' '; else *string = '-'; if (dec > 0) { delta = DISPLAY_SIZE - dec - 1; if (delta < 0) { strcpy (string + 1, "OVERFLOW"); } else { memcpy (string + 2 + dec, string + 1 + dec, delta); string [dec + 1] = '.'; } } else { dec = -dec; delta = DISPLAY_SIZE - dec - 2; if (delta <= 0) { /* Underflow */ strcpy (string, " .000000000000000"); new = 0.0; } else { memcpy (string + 2 + dec, string + 1, delta + 1); string [1] = '.'; memset (string + 2, '0', dec); } } delta = DISPLAY_SIZE; do { string [delta] = '\0'; delta --; } while (string [delta] == '0'); if (string [delta] == '.') { if (delta <= 1) { string [delta] = '0'; } else { string [delta --] = '\0'; } } strcpy (user-> display, " "); delta = DISPLAY_SIZE - delta - 1; if (delta < 0) delta = 0; strncpy (user-> display + delta, string, DISPLAY_SIZE - delta); user-> display [DISPLAY_SIZE] = '\0'; update (window); cleardisp (window); } static void calc_ac (void) /* * Lsche */ { clear (ev_window); update (ev_window); } static void calc_back (void) /* * Schritt zurck */ { CALC *user; char temp [32]; user = ev_window-> user; if (user-> display [DISPLAY_SIZE - 1] == ' ') return; /* display leer */ strcpy (temp, user-> display); strcpy (user-> display + 1, temp); user-> display [0] = ' '; user-> display [DISPLAY_SIZE] = '\0'; update (ev_window); } static void calc_sign (void) /* * Vorzeichen wechsel */ { CALC *user; char *p; Awindow *window; window = ev_window; user = window-> user; if (user-> op [0] == 'E') return; /* Fehler passiert */ if (user-> display [DISPLAY_SIZE - 1] == ' ') { /* leeres Display */ strcpy (user-> display, window-> work [CALC_DISPLAY]. ob_spec. tedinfo-> te_ptext); }; p = user-> display; while (*p == ' ') p ++; if (*p == '0') return; /* 0 im display */ if (*p == '-') { /* ist negativ */ *p = ' '; /* kein Vorzeichen */ } else { /* wird negativ */ *(p - 1) = '-'; }; update (window); } static void calc_div (void) { doit ('/'); }; static void calc_mul (void) { doit ('*'); }; static void calc_plus (void) { doit ('+'); }; static void calc_minus (void) { doit ('-'); }; static void calc_is (void) { doit ('='); }; static void calc_accept (void) /* * bernehme gezogene Werte */ { Awindow *wi; AOBJECT *aob; CALC *user; INT16 nr; wi = Aselect. window; if (wi == ev_window) return; /* vom eigene Fenster -> unfug */ Adr_start (); nr = Adr_next (); if (nr >= 0) { /* Es muss eigentlich immer was da sein */ aob = (AOBJECT *) wi-> work + nr + 1; if (aob-> type == AT_STRING) { /* ist von ein String */ Adr_del (wi, nr); /* entferne aus liste */ user = ev_window-> user; strncpy (user-> display, aob-> userp1, DISPLAY_SIZE); /* bernehme Wert */ update (ev_window); }; }; } static Awindow *calc_make (void *not_used) /* * Erzeuge Fenster */ { Awindow *wi; CALC *user; user = Ax_malloc (sizeof (CALC)); /* benutzerobjekt */ if (user == NULL) return NULL; wi = Awi_create (&RECHNER); /* erzeuge */ if (wi == NULL) return NULL; wi-> user = user; clear (wi); update (wi); if (application) { (wi-> open) (wi); /* ffne gleich */ }; return wi; } static void term (Awindow *window) /* * Gebe alles wieder frei */ { Ax_free (window-> user); Awi_delete (window); ACSmoduleterm (); } static INT16 calc_service (Awindow *window, INT16 task, void *in_out) /* * Service routine */ { switch (task) { /* welche Routine */ case AS_TERM: term (window); break; case AS_INFO: A_dialog (&INFOBOX); break; case AS_DELETE: /* auf papierkorb gezogen */ Adr_unselect (); /* deselectieren */ clear (window); /* wie AC */ update (window); break; default: return FALSE; /* kein Wert */ }; return TRUE; /* wurde durchgefhrt */ } INT16 ACSinit (void) /* * */ { RECHNER. create (NULL); return OK; } .ACSȸAmL?$#ACS 2.0 ACS ACCESSORY #O38?F? DATANCE_01_Cstatic long editors = 0; >0x118000L>0x29110178L>h0x29e201f8L>0xa02191a1L==FFACSinitE_01_CINT16 ACSinit (void) { STARTER. create (NULL); return OK; } =<ALERT LIST<=A_3DBUTTON01  create routine */ { Awindow* wi; wi = Awi_create (&STARTER); if (wi == NULL) { ACSmoduleterm (); return NULL; } return wi; } lxl&%%starter_open_Cstatic INT16 starter_open (Awindow* windows) /* wi-> open routine */ { Awindow* wi; wi = EDITOR. create (NULL); if (wi != NULL) { (wi-> service) (wi, AS_EDLOADFILE, NULL); (wi-> service) (wi, AS_EDWINDOW, windows); (wi-> open) (wi); editors ++; } return FAIL; } j'uustarter_service_Cstatic INT16 starter_service (Awindow* wi, INT16 task, void* in_out) /* wi-> service routine */ { switch (task) { case AS_TERM: if (appexit || editors == 0) { Awi_delete (wi); ACSmoduleterm (); } break; case AS_INFO: A_dialog (&INFOBOX); break; case AS_EDTERM: editors --; break; default: return FALSE; } return TRUE; } /* This file was created with ACS 2.0 (c) Stefan Bachert 1991, 1992 The contents are based on file: E:\ACS\AM\EDIT.ACS compiled at: Tue Nov 24 13:50:00 1992 */ /* ANSI-C Prototypes */ static INT16 Auo_ftext (OBJECT* entry, INT16 task, void* in_out); static Awindow* starter_make (void* para); static INT16 starter_open (Awindow* wi); static INT16 starter_service (Awindow* wi, INT16 task, void *in_out); /* STRINGS */ static char TEXT_01 [] = "EDITOR"; static char TEXT_013 [] = "OK"; static char TEXT_02 [] = "Ein Doppelklick auf diese Ikone erzeugt einen weiteren Texteditor. Ein Modul von ACS 2.00"; static char TEXT_04 [] = ""; static char TEXT_06 [] = "Information"; /* TEDINFOS */ static TEDINFO TEDINFO_03 = {TEXT_06, TEXT_04, TEXT_04, 3, 6, 2, 0x1071, 0, 0, 12, 1}; /* AUSERBLK */ static AUSERBLK A_3DBUTTON01 = {A_3Dbutton, 0x29e201f8L , Auo_string , NULL, NULL, NULL}; static AUSERBLK A_3DBUTTON02 = {A_3Dbutton, 0xa02191a1L , Auo_string , NULL, NULL, NULL}; static AUSERBLK A_3DBUTTON03 = {A_3Dbutton, 0x29110178L , Auo_string , TEXT_013 , NULL, NULL}; static AUSERBLK A_FTEXT02 = {A_ftext, 0x118000L , Auo_ftext , TEXT_02 , NULL, NULL}; /* ICONS */ static INT16 _MSK_EDIT_ICON [] = { 0x0fff, 0xffff, 0xff00, 0x0fff, 0xffff, 0xff80, 0x0fff, 0xffff, 0xfffc, 0x0fff, 0xffff, 0xfffc, 0x0fff, 0xffff, 0xfffc, 0x0fff, 0xffff, 0xfffc, 0x0fff, 0xffff, 0xfffc, 0x0fff, 0xffff, 0xfffc, 0x0fff, 0xffff, 0xfffc, 0x0fff, 0xffff, 0xfffc, 0x0fff, 0xffff, 0xfffc, 0x0fff, 0xffff, 0xfffc, 0x0fff, 0xffff, 0xfffc, 0x0fff, 0xffff, 0xfffc, 0x0fff, 0xffff, 0xfffc, 0x0fff, 0xffff, 0xfffc, 0x0fff, 0xffff, 0xfffc, 0x0fff, 0xffff, 0xfffc, 0x0fff, 0xffff, 0xfffc, 0x0fff, 0xffff, 0xfffc, 0x0fff, 0xffff, 0xfffc, 0x0fff, 0xffff, 0xfffc, 0x0fff, 0xffff, 0xfffc, 0x0fff, 0xffff, 0xfffc, 0x0fff, 0xffff, 0xfffc, 0x0fff, 0xffff, 0xfffc, 0x0fff, 0xffff, 0xfffc, 0x0fff, 0xffff, 0xfffc, 0x0fff, 0xffff, 0xfffc, 0x03ff, 0xffff, 0xfffc, 0x03ff, 0xffff, 0xfffc}; static INT16 _DAT_EDIT_ICON [] = { 0x0fff, 0xffff, 0xff00, 0x0800, 0x0000, 0x0180, 0x0800, 0x0000, 0x017c, 0x08f9, 0x9fdf, 0x7524, 0x08f9, 0x9fdf, 0x75f4, 0x0800, 0x0000, 0x0014, 0x0800, 0x0000, 0x0014, 0x08fd, 0xdf75, 0xe794, 0x0800, 0x0000, 0x0014, 0x0800, 0x0000, 0x0014, 0x08e7, 0xcf9e, 0x7d94, 0x0800, 0x0000, 0x0014, 0x0800, 0x0000, 0x0014, 0x08df, 0x79ef, 0xcf14, 0x0800, 0x0000, 0x0014, 0x0800, 0x0000, 0x0014, 0x08f7, 0xbf3d, 0xdf14, 0x0800, 0x0000, 0x0014, 0x0800, 0x0000, 0x0014, 0x08fc, 0xf7d7, 0x7c14, 0x0800, 0x0000, 0x0014, 0x0800, 0x0000, 0x0014, 0x08f7, 0xdefe, 0xed94, 0x0800, 0x0000, 0x0014, 0x0800, 0x0000, 0x0014, 0x08eb, 0xc000, 0x0014, 0x0800, 0x0000, 0x0014, 0x0800, 0x0000, 0x0014, 0x0fff, 0xffff, 0xfff4, 0x0200, 0x0000, 0x0004, 0x03ff, 0xffff, 0xfffc}; static ICONBLK EDIT_ICON = { _MSK_EDIT_ICON, _DAT_EDIT_ICON, TEXT_01, 0x1000, 0, 0, 12, 0, 48, 31, 0, 32, 72, 8}; /* OBJECT TREES */ static OBJECT INFOBOX = { -1, 1, 1, 25, 0x0, 0x0, 0x00ff1141L , 0, 0, 28, 11 }; static OBJECT _01_INFOBOX = { 0, 2, 7, 24, 0x0, 0x10, (long) &A_3DBUTTON01 , 0, 0, 28, 11 }; static OBJECT _02_INFOBOX = { 4, 3, 3, 24, 0x0, 0x10, (long) &A_3DBUTTON02 , 2, 1, 24, 1 }; static OBJECT _03_INFOBOX = { 2, -1, -1, 22, 0x2040, 0x0, (long) &TEDINFO_03 , 0, 0, 24, 1 }; static OBJECT _04_INFOBOX = { 7, 5, 5, 24, 0x0, 0x10, (long) &A_3DBUTTON02 , 2, 3, 24, 5 }; static OBJECT _05_INFOBOX = { 4, 6, 6, 20, 0x0, 0x0, 0x00001101L , 0, 0, 24, 5 }; static OBJECT _06_INFOBOX = { 5, -1, -1, 24, 0x0, 0x0, (long) &A_FTEXT02 , 1, 0, 22, 5 }; static OBJECT _07_INFOBOX = { 1, -1, -1, 24, 0x7, 0x10, (long) &A_3DBUTTON03 , 11, 9, 6, 1 }; static AOBJECT _07aINFOBOX = {NULL , NULL , 0x8020, 0x8818, NULL , NULL , 0x0, 0 }; /* WINDOWS */ Awindow STARTER = { NULL, starter_service, starter_make, starter_open, Awi_init, NULL, NULL, 0, 0, -1, 0xfff, { 0, 0, 120, 50}, {0, 0, 0, 0}, {0, 0, 0, 0}, {-1, -1, -1, -1}, 0, 0, 0xf0f0, TEXT_04 , TEXT_04 , 10000, 0x1, 0, -1, &EDIT_ICON , NULL, Awi_keys, Awi_obchange, Awi_redraw, Awi_topped, Awi_closed, Awi_fulled, Awi_arrowed, Awi_hslid, Awi_vslid, Awi_sized, Awi_moved}; /* ANSI-C Routines */ static long editors = 0; INT16 ACSinit (void) { STARTER. create (NULL); return OK; } /* 'Auo_ftext' Not defined yet by user */ static Awindow* starter_make (void* para) /* wi-> create routine */ { Awindow* wi; wi = Awi_create (&STARTER); if (wi == NULL) { ACSmoduleterm (); return NULL; } return wi; } static INT16 starter_open (Awindow* windows) /* wi-> open routine */ { Awindow* wi; wi = EDITOR. create (NULL); if (wi != NULL) { (wi-> service) (wi, AS_EDLOADFILE, NULL); (wi-> service) (wi, AS_EDWINDOW, windows); (wi-> open) (wi); editors ++; } return FAIL; } static INT16 starter_service (Awindow* wi, INT16 task, void* in_out) /* wi-> service routine */ { switch (task) { case AS_TERM: if (appexit || editors == 0) { Awi_delete (wi); ACSmoduleterm (); } break; case AS_INFO: A_dialog (&INFOBOX); break; case AS_EDTERM: editors --; break; default: return FALSE; } return TRUE; } _editor (entry, AUO_EDCURON, NULL); Auo_editor (entry, AUO_EDCURSHOW, NULL); Auo_editor (entry, AUO_EDWRAP, &wrap); wiob. entry = wi-> work + ZUBEREITH; wiob. obnr = ZUBEREITH; Auo_editor (entry, AUO_EDHORSLIDER, &wiob); wiob. entry = wi-> work + ZUBEREITV; wiob. obnr = ZUBEREITV; Auo_editor (entry, AUO_EDVERSLIDER, &wiob); load (file, wi-> work + ZUTATEN, wi-> work + ZUBEREIT); (wi-> open) (wi); /* ffne gleich, auch als accessory */ return wi; } INT16 ACSinit0; ACS Example Program (c) 1991 Stefan Bachert ; ..\..\AM\EDIT.AM ; name of executable program .L [-S=0] = ; list of modules follows... acs_load.O ; startup code EDIT.C (EDIT.H) ; depends also upon surface definition acsplus.lib ;ACSPLUS.LIB ; ACS Plus ;PCBGILIB.LIB ; BGI library ;PCFLTLIB.LIB ; floating point library PCSTDLIB.LIB ; standard library ;PCEXTLIB.LIB ; extended library PCTOSLIB.LIB ; TOS library PCGEMLIB.LIB ; AES and VDI library PCLNALIB.LIB ; LINE-A library ; THIS IS THE END =' ENTER Als Besonderheit kann das Display auch das Display eines anderen Rechners gezogen werden, der dann diesen Wert als Eingabe annimmt. Das Display kann auch auf den 'Papierkorb' gezogen werden. Dies wird als 'ALL CLEAR' 'AC' verstanden., 1, 2049, 8, 1 }; static OBJECT _61_PANEL = { 0, 63, 64, 24, 0x5, 0x10, (long) &A_3DBUTTON03 , 38, 13, 10, 3 }; static AOBJECT _61aPANEL /* "EDITOR" */ #define __ACS_MODULE__ #include #include #include "edit.h" #include "edit.ah" 89i8^DC 漹&16inқwmuP~J5gCR@vn!]| D@Mt vٖFmpE fDGJB]Quh1j}maWbUuFhɉ A qB QEPQD AW A bCy=0 ukd]MD؁@MTh^t /0 @Elx—bVє!!A|%%~K?U8Ba Ue!AWzU"A&vWrjPc]\WUagAoN) DQUevYRvl\uMi%a eR9wfƒ#/RECHNER.PRJI; B.LIB ; LINE-A library ; THIS IS THE END HIS IS THE END ; static OBJECT _01_WORLD = { 2, -1, -1, 28, 0x0, 0x0, (long) TEXT_005 , 5, 1, 6, 1 }; static OBJECT _02_WORLD = { 0, -1, -1, 28, 0x20, 0x0, (long) TEXT_001 , 5, 3, 5, 1 }; /* WINDOWS */ Awindow HELLO = { NULL, Awi_service, hello_make , Awi_open, Awi_init, &WORLD , NULL, 0, 0, -1, 0xb, { 0, 0, 34, 14}, {0, 0, 0, 0}, {0, 0, 0, 0}, {-1, -1,/* This file was created with ACS 2.0 (c) Stefan Bachert 1991, 1992 The contents is based on file: E:\ACS\AM\EDIT.ACS compiled at: Tue Nov 24 13:50:00 1992 */ /* STRINGS */ /* ICONS */ /* OBJECT TREES */ /* WINDOWS */ /* ANSI-C Prototypes */ extern INT16 CDECL A_3Dbutton (PARMBLK* pb); extern INT16 CDECL A_ftext (PARMBLK* pb); extern INT16 Auo_string (OBJECT* entry, INT16 task, void* in_out); "WRæT<БC 4> kmtX+W]7eϖILD1}BJECT *work; INT16 *olddata, *data; work = window-> work; olddata = work [index]. ob_spec. iconblk-> ib_pdata; switch (digit) { case 0: data = DIGIT_0. ib_pdata; break; case 1: data = DIGIT_1. ib_pdata; break; case 2: data = DIGIT_2. ib_pdata; break; case 3: data = DIGIT_3. ib_pdata; break; case 4: data = DIGIT_4. ib_pdata; break; case 5: data = DIGIT_5. ib_pdata; break; case 6: data = DIGIT_6. ib_pdata; break; case 7: data = DIGIT_7. ib_pdata; break; case 8: data = DIGI; ACS Example Program (c) 1991 Stefan Bachert ; ..\..\AM\SYSFONT.AM ; name of executable program .L [-S=0] = ; list of modules follows... acs_load.O ; startup code SYSFONT.C (SYSFONT.H) ; depends also upon surface definition ACSPLUS.LIB ; ACS Plus ;PCBGILIB.LIB ; BGI library ;PCFLTLIB.LIB ; floating point library PCSTDLIB.LIB ; standard library ;PCEXTLIB.LIB ; extended library PCTOSLIB.LIB ; TOS library PCGEMLIB.LIB ; AES and VDI library PCLNALIB.LIB ; LINE-A library ; THIS IS THE END define HOUR_2 ( 2) #define HOUR_1 ( 3) #define MIN_2 ( 5) #define MIN_1 ( 6) #define SEC_2 ( 8) #define SEC_1 ( 9) extern OBJECT INFO_BOX; /* WINDOWS */ extern Awindow DIGI_UHR; /* ANSI-C Prototypes */ extern INT16 CDECL A_3Dbutton (PARMBLK* pb); extern INT16 CDECL A_ftext (PARMBLK* pb); extern INT16 Auo_string (OBJECT* entr/* This file was created with ACS 2.0 (c) Stefan Bachert 1991, 1992 The contents are based on file: E:\ACS.BSP\DEMO_C.AM\SYSFONT\SYSFONT.ACS compiled at: Thu Dec 10 13:46:20 1992 */ /* ANSI-C Prototypes */ static void ibm (void); static void small (void); /* STRINGS */ static char TEXT_01 [] = "Systemfonts setzen"; static char TEXT_02 [] = ""; static char TEXT_03 [] = "OK"; static char TEXT_05 [] = "IBM Font"; static char TEXT_06 [] = "Small Font"; /* TEDINFOS */ static TEDINFO TEDINFO_01 = {TEXT_01, TEXT_02, TEXT_02, 3, 6, 2, 0x1071, 0, 0, 19, 1}; /* AUSERBLK */ static AUSERBLK A_3DBUTTON01 = {A_3Dbutton, 0x20219178L , Auo_string , NULL, NULL, NULL}; static AUSERBLK A_3DBUTTON02 = {A_3Dbutton, 0x29e20178L , Auo_string , NULL, NULL, NULL}; static AUSERBLK A_3DBUTTON03 = {A_3Dbutton, 0xa9110178L , Auo_string , TEXT_03 , NULL, NULL}; static AUSERBLK A_3DBUTTON04 = {A_3Dbutton, 0xa9110178L , Auo_string , TEXT_05 , NULL, NULL}; static AUSERBLK A_3DBUTTON05 = {A_3Dbutton, 0xa9110178L , Auo_string , TEXT_06 , NULL, NULL}; /* OBJECT TREES */ static OBJECT CHOOSE = { -1, 1, 1, 25, 0x0, 0x0, 0x00ff1100L , 0, 0, 26, 9 }; static OBJECT _01_CHOOSE = { 0, 2, 8, 24, 0x0, 0x10, (long) &A_3DBUTTON02 , 0, 0, 26, 9 }; static OBJECT _02_CHOOSE = { 4, 3, 3, 24, 0x0, 0x10, (long) &A_3DBUTTON01 , 2, 1, 22, 1 }; static OBJECT _03_CHOOSE = { 2, -1, -1, 22, 0x2040, 0x0, (long) &TEDINFO_01 , 0, 0, 22, 1 }; static OBJECT _04_CHOOSE = { 6, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON04 , 2, 3, 10, 2 }; static AOBJECT _04aCHOOSE = {ibm , NULL , 0x8000, 0x8817, NULL , NULL , 0x0, 0 }; static OBJECT _06_CHOOSE = { 8, -1, -1, 24, 0x5, 0x10, (long) &A_3DBUTTON05 , 14, 3, 10, 2 }; static AOBJECT _06aCHOOSE = {small , NULL , 0x8000, 0x881f, NULL , NULL , 0x0, 0 }; static OBJECT _08_CHOOSE = { 1, -1, -1, 24, 0x7, 0x10, (long) &A_3DBUTTON03 , 8, 6, 10, 2 }; static AOBJECT _08aCHOOSE = {NULL , NULL , 0x8020, 0x8818, NULL , NULL , 0x0, 0 }; /* ANSI-C Routines */ INT16 ACSinit (void) { A_dialog (&CHOOSE); ACSmoduleterm (); form_dial (FMD_FINISH, desk. x, desk. y, desk. w, desk. h, desk. x, desk. y, desk. w, desk. h); return OK; } static void ibm (void) /* Click routine */ { A_fontsel (&ACSblk-> fontid, &ACSblk-> fheight, TRUE); } static void small (void) /* Click routine */ { A_fontsel (&ACSblk-> fontsid, &ACSblk-> fsheight, TRUE); } .ACSȸMACS 2.0 ACS ACCESSORY ?SO38L0x20219178L0x29e20178L0xa9110178L o`ACSinitE_01O3INT16 ACSinit (void) { A_dialog (&CHOOSE); ACSmoduleterm (); form_dial (FMD_FINISH, desk. x, desk. y, desk. w, desk. h, desk. x, desk. y, desk. w, desk. h); return OK; }  ^ALERT LIST  >A_3DBUTTON01    A_3DBUTTON02    jA_3DBUTTON03    A_3DBUTTON04   L A_3DBUTTON05    A_3Dbutton Auo_string ( CHOOSE01c   @     ! DATA LISTJICON LIST_CIMAGE LISTMENU LIST_ClMOUSEFORM LIST`OBJECTTREE LISToS POPUP LISTO3Z REFERENCE LIST?# !NTEDINFO LISTTEDINFO_01q0zTEXT LISTTEXT_01Systemfonts setzenvTEXT_02 jTEXT_03OK TEXT_05IBM Fontf TEXT_06Small Font:JUSERBLK LIST BWINDOW LISTAg ppibmO3static void ibm (void) /* Click routine */ { A_fontsel (&ACSblk-> fontid, &ACSblk-> fheight, TRUE); } m!sssmallO3static void small (void) /* Click routine */ { A_fontsel (&ACSblk-> fontsid, &ACSblk-> fsheight, TRUE); } xB,D"H$b `,h$&j .ZR&..0 $ (  \r d lB\2Z ,> $ \XL @ .NR" >( d (":B: ^x 0T *<0&8 4B @ (& .* J 4 & t  ~h 0$ 8D 0 >0(: 04:!VALv=Pzz BZAl T2C6seGXǿE}ITpb ;)B <*IP MGC`Ǽ? Q#define __ACS_MODULE__ #include #include #include "sysfont.h" #include "sysfont.ah" am .L [-S=0] = ; list of modules follows... acs_load.O ; startup code EDIT.C (EDIT.H) ; depends also upon surface definition acsplus.lib ;ACSPLUS.LIB ; ACS Plus ;PCBGILIB.LIB ; BGI library ;PCFLTLIB.LIB ; floating point library PCSTDLIB.LIB ; standard library ;PCEXTLIB.LIB ; extended library PCTOSLIB.LIB ; TOS library PCGEMLIB.LIB ; AES and VDI library PCLNALIB.LIB ; LINE-A library ; THIS IS THE END =' ENTER Als Besonderheit kann das Display auch das Display eines anderen Rechners gezogen werden, der dann diesen Wert als Eingabe annimmt. Das Display kann auch auf den 'Papierkorb' gezogen werden. Dies wird als 'ALL CLEAR' 'AC' verstanden., 1, 2049, 8, 1 }; static OBJECT _61_PANEL = { 0, 63, 64, 24, 0x5, 0x10, (long) &A_3DBUTTON03 , 38, 13, 10, 3 }; static AOBJECT _61aPANEL /* This file was created with ACS 2.0 (c) Stefan Bachert 1991, 1992 The contents is based on file: E:\ACS.BSP\DEMO_C.AM\SYSFONT\SYSFONT.ACS compiled at: Thu Dec 10 13:46:20 1992 */ /* STRINGS */ /* OBJECT TREES */ /* ANSI-C Prototypes */ extern INT16 CDECL A_3Dbutton (PARMBLK* pb); extern INT16 Auo_string (OBJECT* entry, INT16 task, void* in_out); rjPc]\WUagAoN) DQUevYRvl\uMi%a eR9wfƒ#/RECHNER.PRJI; B.LIB ; LINE-A library ; THIS IS THE END HIS IS THE END ; static OBJECT _01_WORLD = { 2, -1, -1, 28, 0x0, 0x0, (long) TEXT_005 , 5, 1, 6, 1 }; static OBJECT _02_WORLD = { 0, -1, -1, 28, 0x20, 0x0, (long) TEXT_001 , 5, 3, 5, 1 }; /* WINDOWS */ Awindow HELLO = { NULL, Awi_service, hello_make , Awi_open, Awi_init, &WORLD , NULL, 0, 0, -1, 0xb, { 0, 0, 34, 14}, {0, 0, 0, 0}, {0, 0, 0, 0}, {-1, -1,/* This file was created with ACS 2.0 (c) Stefan Bachert 1991, 1992 The contents are based on file: E:\ACS.BSP\DEMO_C.AM\MEMWATCH.\MEMWATCH.ACS compiled at: Fri Dec 04 16:19:24 1992 */ /* ANSI-C Prototypes */ static INT16 Auo_ftext (OBJECT* entry, INT16 task, void* in_out); static INT16 init_mem (Awindow* wi); static Awindow* make_mem (void* para); static INT16 service_mem (Awindow* wi, INT16 task, void *in_out); /* STRINGS */ static char TEXT_001 [] = " MEM WATCH "; static char TEXT_002 [] = "123456789012"; static char TEXT_01 [] = "MEM-WATCH, ein Speicherwchter als ACS 2.00 Modul. Zeigt die ersten 16 Speicherblcke an."; static char TEXT_010 [] = ""; static char TEXT_011 [] = "OK"; static char TEXT_012 [] = "MEM WATCH"; static char TEXT_026 [] = "Information"; /* TEDINFOS */ static TEDINFO TEDINFO_01 = {TEXT_026, TEXT_010, TEXT_010, 3, 6, 2, 0x1071, 0, 0, 12, 1}; /* AUSERBLK */ static AUSERBLK A_3DBUTTON01 = {A_3Dbutton, 0xa02291a1L , Auo_string , NULL, NULL, NULL}; static AUSERBLK A_3DBUTTON02 = {A_3Dbutton, 0x29d301f8L , Auo_string , NULL, NULL, NULL}; static AUSERBLK A_3DBUTTON03 = {A_3Dbutton, 0x29220178L , Auo_string , TEXT_011 , NULL, NULL}; static AUSERBLK A_FTEXT01 = {A_ftext, 0x118000L , Auo_ftext , TEXT_01 , NULL, NULL}; /* ICONS */ static INT16 _MSK_MEM_ICON [] = { 0x0000, 0x0010, 0x4450, 0x0000, 0x0000, 0x0088, 0x8822, 0x0000, 0x0000, 0x0110, 0x5444, 0x4000, 0x0000, 0x20aa, 0xaaa2, 0xa800, 0x0001, 0x51ff, 0xff14, 0x5480, 0x0002, 0x3fff, 0xfffe, 0x9280, 0x0011, 0x7fff, 0xffff, 0xf498, 0x002b, 0xffff, 0xffff, 0xfd30, 0x001f, 0xffff, 0xffff, 0xffa4, 0x003f, 0xffff, 0xffff, 0xffeb, 0x00ff, 0xffff, 0xffff, 0xfff7, 0x03ff, 0xffff, 0xffff, 0xfffc, 0x07ff, 0xffff, 0xffff, 0xfffe, 0x1fff, 0xffff, 0xffff, 0xffff, 0x3fff, 0xffff, 0xffff, 0xffff, 0x7fff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfffd, 0xffff, 0xffff, 0xffff, 0xfff8, 0x7fff, 0xffff, 0xffff, 0xffe3, 0x0fff, 0xffff, 0xffff, 0xffc3, 0x01ff, 0xffff, 0xffff, 0xfe30, 0x003f, 0xffff, 0xffff, 0xe1bc, 0x001d, 0xffff, 0xffff, 0x3480, 0x0038, 0xffff, 0xfff1, 0x92c0, 0x0000, 0xfbff, 0xfd24, 0xd600, 0x0001, 0xb378, 0xb5a6, 0x5000}; static INT16 _DAT_MEM_ICON [] = { 0x0000, 0x0010, 0x4450, 0x0000, 0x0000, 0x0088, 0x8822, 0x0000, 0x0000, 0x0110, 0x5444, 0x4000, 0x0000, 0x20aa, 0xaaa2, 0xa800, 0x0001, 0x51ff, 0xff14, 0x5480, 0x0002, 0x3fff, 0xfffe, 0x9280, 0x0011, 0x7fff, 0xffff, 0xf498, 0x002a, 0xffef, 0xefe7, 0xfd30, 0x001f, 0x1f03, 0xf1f0, 0x3fa4, 0x0038, 0x1ec3, 0xfef0, 0x03eb, 0x00e0, 0x1803, 0xfc30, 0x00f7, 0x0380, 0x3ae7, 0xfeb8, 0x003c, 0x0600, 0x307f, 0xfc18, 0x001e, 0x1c00, 0x2aff, 0xfea8, 0x000f, 0x3000, 0x207f, 0xfc08, 0x0007, 0x6000, 0x2aff, 0xfea8, 0x0007, 0x8000, 0x201f, 0xf008, 0x0007, 0x8000, 0x3aaf, 0xeab8, 0x0007, 0x8000, 0x1000, 0x0010, 0x000d, 0xc000, 0x1eaa, 0xaaf0, 0x0038, 0x7800, 0x0c00, 0x0060, 0x0063, 0x0f00, 0x06aa, 0xaac0, 0x03c3, 0x01e0, 0x0380, 0x0380, 0x1e30, 0x003e, 0x00fe, 0xfe01, 0xe1bc, 0x001d, 0xf81f, 0xf03f, 0x3480, 0x0038, 0xffc7, 0xc7f1, 0x92c0, 0x0000, 0xfbbf, 0xfd24, 0xd600, 0x0001, 0xb378, 0xb5a6, 0x5000}; ICONBLK MEM_ICON = { _MSK_MEM_ICON, _DAT_MEM_ICON, TEXT_012, 0x1000, 0, 0, 4, 0, 64, 28, 0, 32, 72, 8}; /* OBJECT TREES */ OBJECT INFOBOX = { -1, 1, 1, 25, 0x0, 0x0, 0x00ff1141L , 0, 0, 30, 11 }; static OBJECT _01_INFOBOX = { 0, 2, 7, 24, 0x0, 0x510, (long) &A_3DBUTTON02 , 0, 0, 30, 11 }; static OBJECT _02_INFOBOX = { 4, 3, 3, 24, 0x0, 0x110, (long) &A_3DBUTTON01 , 2, 1, 26, 1 }; static OBJECT _03_INFOBOX = { 2, -1, -1, 22, 0x2040, 0x100, (long) &TEDINFO_01 , 0, 0, 26, 1 }; static OBJECT _04_INFOBOX = { 7, 5, 5, 24, 0x0, 0x510, (long) &A_3DBUTTON01 , 2, 3, 26, 5 }; static OBJECT _05_INFOBOX = { 4, 6, 6, 20, 0x0, 0x500, 0x00001101L , 0, 0, 26, 5 }; static OBJECT _06_INFOBOX = { 5, -1, -1, 24, 0x0, 0x500, (long) &A_FTEXT01 , 1, 0, 24, 5 }; static OBJECT _07_INFOBOX = { 1, -1, -1, 24, 0x7, 0xc10, (long) &A_3DBUTTON03 , 12, 9, 6, 1 }; static AOBJECT _07aINFOBOX = {NULL , NULL , 0x8020, 0x8818, NULL , NULL , 0x0, 0 }; OBJECT WATCH = { -1, 1, 16, 20, 0x0, 0x0, 0x00001100L , 0, 0, 26, 8 }; static OBJECT _01_WATCH = { 2, -1, -1, 28, 0x0, 0x0, (long) TEXT_002 , 0, 0, 12, 1 }; static OBJECT _02_WATCH = { 3, -1, -1, 28, 0x0, 0x0, (long) TEXT_002 , 0, 1, 12, 1 }; static OBJECT _03_WATCH = { 4, -1, -1, 28, 0x0, 0x0, (long) TEXT_002 , 0, 2, 12, 1 }; static OBJECT _04_WATCH = { 5, -1, -1, 28, 0x0, 0x0, (long) TEXT_002 , 0, 3, 12, 1 }; static OBJECT _05_WATCH = { 6, -1, -1, 28, 0x0, 0x0, (long) TEXT_002 , 0, 4, 12, 1 }; static OBJECT _06_WATCH = { 7, -1, -1, 28, 0x0, 0x0, (long) TEXT_002 , 0, 5, 12, 1 }; static OBJECT _07_WATCH = { 8, -1, -1, 28, 0x0, 0x0, (long) TEXT_002 , 0, 6, 12, 1 }; static OBJECT _08_WATCH = { 9, -1, -1, 28, 0x0, 0x0, (long) TEXT_002 , 0, 7, 12, 1 }; static OBJECT _09_WATCH = { 10, -1, -1, 28, 0x0, 0x0, (long) TEXT_002 , 14, 0, 12, 1 }; static OBJECT _10_WATCH = { 11, -1, -1, 28, 0x0, 0x0, (long) TEXT_002 , 14, 1, 12, 1 }; static OBJECT _11_WATCH = { 12, -1, -1, 28, 0x0, 0x0, (long) TEXT_002 , 14, 2, 12, 1 }; static OBJECT _12_WATCH = { 13, -1, -1, 28, 0x0, 0x0, (long) TEXT_002 , 14, 3, 12, 1 }; static OBJECT _13_WATCH = { 14, -1, -1, 28, 0x0, 0x0, (long) TEXT_002 , 14, 4, 12, 1 }; static OBJECT _14_WATCH = { 15, -1, -1, 28, 0x0, 0x0, (long) TEXT_002 , 14, 5, 12, 1 }; static OBJECT _15_WATCH = { 16, -1, -1, 28, 0x0, 0x0, (long) TEXT_002 , 14, 6, 12, 1 }; static OBJECT _16_WATCH = { 0, -1, -1, 28, 0x20, 0x0, (long) TEXT_002 , 14, 7, 12, 1 }; /* WINDOWS */ Awindow MEM = { NULL, service_mem , make_mem , Awi_open, init_mem , &WATCH , NULL, 0, 0, -1, 0x1eb, { 0, 0, 15, 10}, {0, 0, 0, 0}, {0, 0, 0, 0}, {-1, -1, -1, -1}, 0, 0, 0xf0f0, TEXT_001 , TEXT_010 , 10000, 0xb, 0, -1, &MEM_ICON , NULL, Awi_keys, Awi_obchange, Awi_redraw, Awi_topped, Awi_closed, Awi_fulled, Awi_arrowed, Awi_hslid, Awi_vslid, Awi_sized, Awi_moved}; ; ACS Example Program (c) 1991, 1992 Stefan Bachert ; ..\..\AM\MEMWATCH.AM ; Nachladbar .L [-S=0] = ; list of modules follows... acs_load.O ; startup code MEMWATCH.C (MEMWATCH.H) ; depends also upon surface definition ;PCBGILIB.LIB ; BGI library ;PCFLTLIB.LIB ; floating point library PCSTDLIB.LIB ; standard library ;PCEXTLIB.LIB ; extended library PCTOSLIB.LIB ; TOS library PCGEMLIB.LIB ; AES and VDI library ;PCLNALIB.LIB ; LINE-A library ; THIS IS THE END /* "MEM WATCH" als nachladbares Modul 13.10.92 Stefan Bachert */ #define __ACS_MODULE__ #include #include #include #include #include static INT16 service_mem (Awindow* wi, int task, void* in_out); static Awindow* make_mem (void* not_used); static INT16 init_mem (Awindow* window); #include #define N (16) typedef struct { void* address; long size; } MEMW; static MEMW mems [N]; static INT16 init_mem (Awindow *window) /* * Frischt die Anzeige auf */ { static INT16 skipper; char st [16]; long size; INT16 i, obnr, chg; OBJECT* work; window-> state |= AWS_LATEUPDATE; /* immer wieder aufrufen */ if ((skipper ++ & 3) != 0) return OK; /* nur jedes 16. Mal */ chg = FALSE; for (i = 0; i < N; i ++) { size = (long) Malloc (-1); if (size > 0) { if (mems [i]. size != size) chg = TRUE; mems [i]. size = size; mems [i]. address = Malloc (size); } else { mems [i]. size = 0; } } for (i = N - 1; i >= 0; i --) { size = mems [i]. size; if (size > 0) { Mfree (mems [i]. address); } } if (! chg) return OK; work = window-> work; for (i = 0; i < N; i ++) { size = mems [i]. size; sprintf (st, "%2d:%8ld ", i + 1, size); switch (i) { case 0: obnr = MEM1; break; case 1: obnr = MEM2; break; case 2: obnr = MEM3; break; case 3: obnr = MEM4; break; case 4: obnr = MEM5; break; case 5: obnr = MEM6; break; case 6: obnr = MEM7; break; case 7: obnr = MEM8; break; case 8: obnr = MEM9; break; case 9: obnr = MEM10; break; case 10: obnr = MEM11; break; case 11: obnr = MEM12; break; case 12: obnr = MEM13; break; case 13: obnr = MEM14; break; case 14: obnr = MEM15; break; case 15: obnr = MEM16; break; default: obnr = MEM16; break; } strcpy (work [obnr]. ob_spec. free_string, st); } (window-> obchange) (window, 0, -1); return OK; } static Awindow* make_mem (void *not_used) /* * Erzeuge Memory Watch */ { Awindow *wi; wi = Awi_create (&MEM); (wi-> open) (wi); return wi; } static INT16 service_mem (Awindow* wi, int task, void* in_out) /* * */ { switch (task) { case AS_TERM: /* nur bei Systemterminierung Fenster freigeben */ Awi_delete (wi); ACSmoduleterm (); break; case AS_INFO: /* Info zeigen */ A_dialog (&INFOBOX); break; default: return FALSE; }; return TRUE; } INT16 ACSinit (void) /* * */ { make_mem (NULL); return OK; }/* This file was created with ACS 2.0 (c) Stefan Bachert 1991, 1992 The contents is based on file: E:\ACS.BSP\DEMO_C.AM\MEMWATCH.\MEMWATCH.ACS compiled at: Fri Dec 04 16:19:24 1992 */ /* STRINGS */ /* ICONS */ extern ICONBLK MEM_ICON; /* OBJECT TREES */ extern OBJECT INFOBOX; extern OBJECT WATCH; #define MEM1 ( 1) #define MEM2 ( 2) #define MEM3 ( 3) #define MEM4 ( 4) #define MEM5 ( 5) #define MEM6 ( 6) #define MEM7 ( 7) #define MEM8 ( 8) #define MEM9 ( 9) #define MEM10 ( 10) #define MEM11 ( 11) #define MEM12 ( 12) #define MEM13 ( 13) #define MEM14 ( 14) #define MEM15 ( 15) #define MEM16 ( 16) /* WINDOWS */ extern Awindow MEM; /* ANSI-C Prototypes */ extern INT16 CDECL A_3Dbutton (PARMBLK* pb); extern INT16 CDECL A_ftext (PARMBLK* pb); extern INT16 Auo_string (OBJECT* entry, INT16 task, void* in_out); .ACSȈU5&$')+3(%ACS 2.0 ACS ACCESSORY O380x118000Lf0x29220178L0x29d301f8L0xa02291a1LALERT LISToShA_3DBUTTON01  A_3DBUTTON02  JA_3DBUTTON03  0 A_3Dbutton A_FTEXT01  .L A_ftext Auo_ftext Auo_stringnDATA LISTbICON LISTc#IMAGE LISTINFOBOXc$A   @*   &MEM_001o#tx8764 ,/' #MEM1HMEM10MEM11MEM12jMEM13 MEM14~MEM15~MEM16~BMEM2}MEM3}MEM4}dMEM5}MEM6| MEM7|!MEM8|<"MEM9z3#MEM_ICON8"1@ HDP"TD@ QT?+0??0?48$xPDP"TD@ QT?*0?80:<0*0 `* : 8x `c0>?48$xPz^$MENU LISTz%MOUSEFORM LISTyz&OBJECTTREE LIST4yp'POPUP LISTxy<(,,REFERENCE LISTO3 678xx)TEDINFO LIST*x.xx*TEDINFO_012//q wx +TEXT LIST,-./012wbw, TEXT_001 MEM WATCH wwL- TEXT_002123456789012vVv.ZZTEXT_01MEM-WATCH, ein Speicherwchter als ACS 2.00 Modul. Zeigt die ersten 16 Speicherblcke an.vvL/TEXT_010uu0TEXT_011OKuPu1 TEXT_012MEM WATCHtu<2 TEXT_026Informationtt3USERBLK LIST @4WATCH01#- - - - - -  - ! - " -  -  -  - - - - - 45WINDOW LISToS6init_memV7make_mem8service_mem.ACSȘ4)ACS 2.0 ACS ACCESSORY S#x_C80x118000LQ 0x21000178L@0x29110178LI0x29e201f8LH 0xa02191a1L.0xa02191b1LQjALERT LISToSJQA_3DBUTTON01 #A@K> A_3DBUTTON03 <A A_3DBUTTON05 HT A_3DBUTTON06 H A_3DBUTTON07  A_3DbuttonhA_FTEXT01%A_ftextAuo_ftext@Auo_stringDATA LIST: NDISP01    &3+'-'2'.'$  0 , ^* 1  99ICON LISTc9jIMAGE LIST7XS^INFOBOX A     @   56BBKEY_ICON("" 0H$p$88$88$8$8$p$$$$$ @?5zMENU LIST_C50MOUSEFORM LIST45 OBJECTTREE LIST34POPUP LIST4J84REFERENCE LIST 56733TEDINFO LIST3B3TEDINFO_01(!!q 23$$TEXT LIST?# !"#$%&'(2l2 TEXT_001 TASTENKODE 22b!TEXT_00212" TEXT_003TASTENKODE1d1#TEXT_004OK1 1V$TEXT_007SCAN:0z0%@@TEXT_01Zeigt den SCAN- und ACSII-Code an. Ein weiteres ACS 2.00 Modul.0 0j&TEXT_010ASCII:/0'TEXT_02---/l/( TEXT_026Information/IN)USERBLK LIST .*VALT.n+VASCII.$,VCTRL--VHASCII-.VHSCAN,,/VIEWKEYo#x76 " !'5,f0VLSHIFT,1VRSHIFT+2VSCAN+3VUPDATE+2+|4WINDOW LISTS/*5key_keys *6make_keys7service_keys4, 2 }; static AOBJECT _11a_START /* This file was created with ACS 2.0 (c) Stefan Bachert 1991, 1992 The contents are based on file: E:\ACS\AM\VIEWKEY.ACS compiled at: Wed Nov 25 11:38:52 1992 */ /* ANSI-C Prototypes */ static INT16 Auo_ftext (OBJECT* entry, INT16 task, void* in_out); static void key_keys (Awindow* wi, INT16 kstate, INT16 key); static Awindow* make_keys (void* para); static INT16 service_keys (Awindow* wi, INT16 task, void *in_out); /* STRINGS */ static char TEXT_001 [] = " TASTENKODE "; static char TEXT_002 [] = ""; static char TEXT_003 [] = "TASTENKODE"; static char TEXT_004 [] = "OK"; static char TEXT_007 [] = "SCAN:"; static char TEXT_01 [] = "Zeigt den SCAN- und ACSII-Code an. Ein weiteres ACS 2.00 Modul."; static char TEXT_010 [] = "ASCII:"; static char TEXT_02 [] = "---"; static char TEXT_026 [] = "Information"; /* TEDINFOS */ static TEDINFO TEDINFO_01 = {TEXT_026, TEXT_002, TEXT_002, 3, 6, 2, 0x1071, 0, 0, 12, 1}; /* AUSERBLK */ static AUSERBLK A_3DBUTTON01 = {A_3Dbutton, 0x29110178L , Auo_string , TEXT_004 , NULL, NULL}; static AUSERBLK A_3DBUTTON03 = {A_3Dbutton, 0xa02191a1L , Auo_string , NULL, NULL, NULL}; static AUSERBLK A_3DBUTTON05 = {A_3Dbutton, 0x29e201f8L , Auo_string , NULL, NULL, NULL}; static AUSERBLK A_3DBUTTON06 = {A_3Dbutton, 0x21000178L , Auo_string , NULL, NULL, NULL}; static AUSERBLK A_3DBUTTON07 = {A_3Dbutton, 0xa02191b1L , Auo_string , NULL, NULL, NULL}; static AUSERBLK A_FTEXT01 = {A_ftext, 0x118000L , Auo_ftext , TEXT_01 , NULL, NULL}; /* ICONS */ static INT16 _MSK_KEY_ICON [] = { 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}; static INT16 _DAT_KEY_ICON [] = { 0xffff, 0xffff, 0xfffc, 0x8000, 0x0000, 0x0006, 0x8fff, 0xfc03, 0x8005, 0x8c00, 0x140f, 0xe005, 0x8bff, 0xe41f, 0xf005, 0x8a00, 0x241c, 0x7005, 0x8a00, 0x2438, 0x3805, 0x8a00, 0x2438, 0x3805, 0x8a00, 0x2400, 0x3805, 0x8a00, 0x2400, 0x3805, 0x8a00, 0x2400, 0x7005, 0x8a00, 0x2400, 0xe005, 0x8a00, 0x2401, 0xc005, 0x8a00, 0x2403, 0x8005, 0x8a00, 0x2403, 0x8005, 0x8a00, 0x2403, 0x8005, 0x8bff, 0xe400, 0x0005, 0x8c00, 0x1403, 0x8005, 0x8800, 0x0c03, 0x8005, 0x8fff, 0xfc03, 0x8005, 0x8000, 0x0000, 0x0005, 0xffff, 0xffff, 0xfffd, 0x4000, 0x0000, 0x0003, 0x3fff, 0xffff, 0xffff}; ICONBLK KEY_ICON = { _MSK_KEY_ICON, _DAT_KEY_ICON, TEXT_003, 0x1000, 0, 0, 12, 0, 48, 24, 0, 28, 72, 8}; /* OBJECT TREES */ OBJECT DISP = { -1, 1, 9, 24, 0x0, 0x10, (long) &A_3DBUTTON06 , 0, 0, 18, 6 }; static OBJECT _01_DISP = { 9, 2, 8, 24, 0x0, 0x10, (long) &A_3DBUTTON03 , 2, 1, 14, 2 }; static OBJECT _02_DISP = { 3, -1, -1, 28, 0x0, 0x0, (long) TEXT_010 , 0, 0, 6, 1 }; static OBJECT _03_DISP = { 8, 4, 7, 20, 0x0, 0x0, 0x00001101L , 7, 0, 7, 2 }; static OBJECT _04_DISP = { 5, -1, -1, 28, 0x0, 0x0, (long) TEXT_02 , 0, 0, 3, 1 }; static OBJECT _05_DISP = { 6, -1, -1, 28, 0x0, 0x0, (long) TEXT_02 , 4, 0, 3, 1 }; static OBJECT _06_DISP = { 7, -1, -1, 28, 0x0, 0x0, (long) TEXT_02 , 0, 1, 3, 1 }; static OBJECT _07_DISP = { 3, -1, -1, 28, 0x0, 0x0, (long) TEXT_02 , 4, 1, 3, 1 }; static OBJECT _08_DISP = { 1, -1, -1, 28, 0x0, 0x0, (long) TEXT_007 , 0, 1, 5, 1 }; static OBJECT _09_DISP = { 0, 10, 13, 24, 0x0, 0x10, (long) &A_3DBUTTON07 , 2, 4, 14, 1 }; static OBJECT _10_DISP = { 11, -1, -1, 27, 0x0, 0x0, 0x01ff1101L , 0, 0, 2, 1 }; static OBJECT _11_DISP = { 12, -1, -1, 27, 0x0, 0x0, 0x5eff1101L , 4, 0, 2, 1 }; static OBJECT _12_DISP = { 13, -1, -1, 27, 0x0, 0x0, 0x07ff1101L , 8, 0, 2, 1 }; static OBJECT _13_DISP = { 9, -1, -1, 27, 0x20, 0x0, 0x01ff1101L , 12, 0, 2, 1 }; OBJECT INFOBOX = { -1, 1, 1, 25, 0x0, 0x0, 0x00ff1141L , 0, 0, 28, 10 }; static OBJECT _01_INFOBOX = { 0, 2, 7, 24, 0x0, 0x510, (long) &A_3DBUTTON05 , 0, 0, 28, 10 }; static OBJECT _02_INFOBOX = { 4, 3, 3, 24, 0x0, 0x110, (long) &A_3DBUTTON03 , 2, 1, 24, 1 }; static OBJECT _03_INFOBOX = { 2, -1, -1, 22, 0x2040, 0x100, (long) &TEDINFO_01 , 0, 0, 24, 1 }; static OBJECT _04_INFOBOX = { 7, 5, 5, 24, 0x0, 0x510, (long) &A_3DBUTTON03 , 2, 3, 24, 4 }; static OBJECT _05_INFOBOX = { 4, 6, 6, 20, 0x0, 0x500, 0x00001101L , 0, 0, 24, 4 }; static OBJECT _06_INFOBOX = { 5, -1, -1, 24, 0x0, 0x500, (long) &A_FTEXT01 , 1, 0, 22, 4 }; static OBJECT _07_INFOBOX = { 1, -1, -1, 24, 0x7, 0xc10, (long) &A_3DBUTTON01 , 11, 8, 6, 1 }; static AOBJECT _07aINFOBOX = {NULL , NULL , 0x8020, 0x8818, NULL , NULL , 0x0, 0 }; /* WINDOWS */ Awindow VIEWKEY = { NULL, service_keys, make_keys , Awi_open, Awi_init, &DISP , NULL, 0, 0, -1, 0xb, { 0, 0, 34, 14}, {0, 0, 0, 0}, {0, 0, 0, 0}, {-1, -1, -1, -1}, 0, 0, 0xfff8, TEXT_001 , TEXT_002 , 10000, 0x103, 0, -1, &KEY_ICON , NULL, key_keys , Awi_obchange, Awi_redraw, Awi_topped, Awi_closed, Awi_fulled, Awi_arrowed, Awi_hslid, Awi_vslid, Awi_sized, Awi_moved}; ; ACS Example Program (c) 1991, 1992 Stefan Bachert ; ..\..\AM\VIEWKEY.AM ; Nachladbar .L [-S=0] = ; list of modules follows... acs_load.O ; startup code VIEWKEY.C (VIEWKEY.H); depends also upon surface definition ;PCBGILIB.LIB ; BGI library ;PCFLTLIB.LIB ; floating point library PCSTDLIB.LIB ; standard library ;PCEXTLIB.LIB ; extended library PCTOSLIB.LIB ; TOS library PCGEMLIB.LIB ; AES and VDI library ;PCLNALIB.LIB ; LINE-A library ; THIS IS THE END ; LINE-A library ; THIS IS THE END define HOUR_2 ( 2) #define HOUR_1 ( 3) #define MIN_2 ( 5) #define MIN_1 ( 6) #define SEC_2 ( 8) #define SEC_1 ( 9) extern OBJECT INFO_BOX; /* WINDOWS */ extern Awindow DIGI_UHR; /* ANSI-C Prototypes */ extern INT16 CDECL A_3Dbutton (PARMBLK* pb); extern INT16 CDECL A_ftext (PARMBLK* pb); extern INT16 Auo_string (OBJECT* entr/* This file was created with ACS 2.0 (c) Stefan Bachert 1991, 1992 The contents is based on file: E:\ACS\AM\VIEWKEY.ACS compiled at: Wed Nov 25 11:38:52 1992 */ /* STRINGS */ /* ICONS */ extern ICONBLK KEY_ICON; /* OBJECT TREES */ extern OBJECT DISP; #define VUPDATE ( 3) #define VASCII ( 4) #define VHASCII ( 5) #define VSCAN ( 6) #define VHSCAN ( 7) #define VLSHIFT ( 10) #define VCTRL ( 11) #define VALT ( 12) #define VRSHIFT ( 13) extern OBJECT INFOBOX; /* WINDOWS */ extern Awindow VIEWKEY; /* ANSI-C Prototypes */ extern INT16 CDECL A_3Dbutton (PARMBLK* pb); extern INT16 CDECL A_ftext (PARMBLK* pb); extern INT16 Auo_string (OBJECT* entry, INT16 task, void* in_out); L, NULL, NULL}; static AUSERBLK A_3DBUTTON03 = {A_3Dbutton, 0xa9110178L , Auo_string , TEXT_03 , NULL, NULL}; static AUSERBLK A_3DBUTTON04 = {A_3Dbutton, 0xa9110178L , Auo_string , T/* Stefan Bachert View Key zeigt den gedrckten Tatenkode an */ #define __ACS_MODULE__ #include #include #include "viewkey.h" static Awindow* make_keys (void* not_used); static void key_keys (Awindow *wi, INT16 kstate, INT16 key); static INT16 service_keys (Awindow* wi, INT16 task, void* in_out); #include "viewkey.ah" static void setf (Awindow *wi, INT16 obnr, INT16 state) /* * setzt Select entsprechend */ { if (state) { (wi-> obchange) (wi, obnr, wi-> work [obnr]. ob_state | SELECTED); } else { (wi-> obchange) (wi, obnr, wi-> work [obnr]. ob_state & ~SELECTED); }; } static void key_keys (Awindow *wi, INT16 kstate, INT16 key) /* * Zeigt key an */ { OBJECT *work; unsigned char ascii, scan; ascii = (unsigned char) key; scan = (unsigned char) (key >> 8); work = wi-> work; sprintf (work [VASCII]. ob_spec. free_string, "%3d", ascii); sprintf (work [VHASCII]. ob_spec. free_string, "$%02X", ascii); sprintf (work [VSCAN]. ob_spec. free_string, "%3d", scan); sprintf (work [VHSCAN]. ob_spec. free_string, "$%02X", scan); (wi-> obchange) (wi, VUPDATE, -1); setf (wi, VLSHIFT, kstate & K_LSHIFT); setf (wi, VRSHIFT, kstate & K_RSHIFT); setf (wi, VCTRL, kstate & K_CTRL); setf (wi, VALT, kstate & K_ALT); } static Awindow* make_keys (void *not_used) /* * Erzeuge Uhrfenster */ { Awindow *wi; wi = Awi_create (&VIEWKEY); (wi-> open) (wi); return wi; } static INT16 service_keys (Awindow* wi, INT16 task, void* in_out) /* * */ { switch (task) { case AS_TERM: /* nur bei Systemterminierung Fenster freigeben */ Awi_delete (wi); ACSmoduleterm (); break; case AS_INFO: /* Info zeigen */ A_dialog (&INFOBOX); break; default: return FALSE; }; return TRUE; } INT16 ACSinit (void) /* * */ { make_keys (NULL); return OK; }JICON LIST_C.ACSȈ}<-"$, ACS 2.0 ACS ACCESSORY O3#x_C80x118000LV0x29110178Lz0x29e201f8L0xa02191a1L`ALERT LISToSA_3DBUTTON01  (TA_3DBUTTON02  \A_3DBUTTON04   A_3Dbutton A_FTEXT02  *^ A_ftext Auo_ftext Auo_stringDATA LIST*tICON LISTcIMAGE LISTINFOBOXc A   @#   JJKEYS001o#tx0/! "%&'J^OBBKEY_ICON("' 0H`0003'f,Pf,3,0f,,P'f0003`@?OL1O<L2NL3NL4N^L5NL6XL7WL8W|MENU LISTW2MOUSEFORM LISTVOBJECTTREE LIST_C!VPOPUP LISTVT ,REFERENCE LIST ./0T TT!TABLE01O34 @) .@) .@) .@) .@) .@) .@) .@) .Sl"TEDINFO LIST#SvM#TEDINFO_01+&&q S,M$TEXT LIST%&'()*+]~S%TEXT_001 SONDERZEICHEN ]4J&TEXT_002\R'TEXT_003ZEICHEN\\(TEXT_004OK\@\)TEXT_0070[[*HHTEXT_02Sonderzeichereingabe per Mausklick. Ein weiteres ACS-Modul fr ACS 2.00[H[+ TEXT_026InformationZ,USERBLK LIST ZZ-WINDOW LIST_CZF.keysY/make_keys0service_keys001 , 1, 2048, 8, 1 }; static OBJECT _64_PANEL = { 61, -1, -1, 22, 0x20, 0x0, (long) &TEDI_001 , 1, 2049, 8, 1 }; /* WINDOWS */ Awindow CONTROL = { NULL, Awi_service, make_control, Awi_open, Awi_init, &PANEL , NULL, 0, 0, -1, 0xb, { 0, 0, 99, 99}, {0, 0, 0, 0}, {0, 0, 0, 0}, {-1, -1, -1, -1}, 0, 0, 0xf0f0, TEXT_016 , TEXT_002 , 10000, 0x7, 0, -1, NULL, &_MENU , Awi_keys, Awi_obchange, Awi_redraw, Awi_topped, Awi_closed, Awi_fulled, Awi_arrowed, Awi_hslid, Awi_vslid, Awi_sized, Awi_moved}; Awindow EDIT = { NULL, service_edit, make_edit , Awi_open, Awi_init, &EDITWI , NULL, 0, 0, -1, 0x9, { 0, 0, 99, 99}, {0, 0, 0, 0}, {0, 0, 0, 0}, {-1, -1, -1, -1}, 0/* This file was created with ACS 2.0 (c) Stefan Bachert 1991, 1992 The contents are based on file: E:\ACS\AM\KEYS.ACS compiled at: Fri Nov 20 11:39:34 1992 */ /* ANSI-C Prototypes */ static INT16 Auo_ftext (OBJECT* entry, INT16 task, void* in_out); static void keys (void); static Awindow* make_keys (void* para); static INT16 service_keys (Awindow* wi, INT16 task, void *in_out); /* STRINGS */ static char TEXT_001 [] = " SONDERZEICHEN "; static char TEXT_002 [] = ""; static char TEXT_003 [] = "ZEICHEN"; static char TEXT_004 [] = "OK"; static char TEXT_007 [] = "0"; static char TEXT_02 [] = "Sonderzeichereingabe per Mausklick. Ein weiteres ACS-Modul fr ACS 2.00"; static char TEXT_026 [] = "Information"; /* TEDINFOS */ static TEDINFO TEDINFO_01 = {TEXT_026, TEXT_002, TEXT_002, 3, 6, 2, 0x1071, 0, 0, 12, 1}; /* AUSERBLK */ static AUSERBLK A_3DBUTTON01 = {A_3Dbutton, 0x29110178L , Auo_string , TEXT_004 , NULL, NULL}; static AUSERBLK A_3DBUTTON02 = {A_3Dbutton, 0xa02191a1L , Auo_string , NULL, NULL, NULL}; static AUSERBLK A_3DBUTTON04 = {A_3Dbutton, 0x29e201f8L , Auo_string , NULL, NULL, NULL}; static AUSERBLK A_FTEXT02 = {A_ftext, 0x118000L , Auo_ftext , TEXT_02 , NULL, NULL}; /* ICONS */ static INT16 _MSK_KEY_ICON [] = { 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}; static INT16 _DAT_KEY_ICON [] = { 0xffff, 0xffff, 0xfffc, 0x8000, 0x0000, 0x0006, 0x8000, 0x0000, 0x0005, 0x8000, 0x0000, 0x0005, 0x8000, 0x0000, 0x0005, 0x8660, 0x1fe0, 0x1985, 0x8330, 0x3030, 0x3305, 0x8198, 0x2790, 0x6605, 0x80cc, 0x2c50, 0xcc05, 0x8066, 0x2c11, 0x9805, 0x8033, 0x2c13, 0x3005, 0x8066, 0x2c11, 0x9805, 0x80cc, 0x2c50, 0xcc05, 0x8198, 0x2790, 0x6605, 0x8330, 0x3030, 0x3305, 0x8660, 0x1fe0, 0x1985, 0x8000, 0x0000, 0x0005, 0x8000, 0x0000, 0x0005, 0x8000, 0x0000, 0x0005, 0x8000, 0x0000, 0x0005, 0x8000, 0x0000, 0x0005, 0xffff, 0xffff, 0xfffd, 0x4000, 0x0000, 0x0003, 0x3fff, 0xffff, 0xffff}; ICONBLK KEY_ICON = { _MSK_KEY_ICON, _DAT_KEY_ICON, TEXT_003, 0x1000, 0, 0, 12, 0, 48, 24, 0, 28, 72, 8}; /* OBJECT TREES */ OBJECT INFOBOX = { -1, 1, 1, 25, 0x0, 0x0, 0x00ff1141L , 0, 0, 28, 10 }; static OBJECT _01_INFOBOX = { 0, 2, 7, 24, 0x0, 0x510, (long) &A_3DBUTTON04 , 0, 0, 28, 10 }; static OBJECT _02_INFOBOX = { 4, 3, 3, 24, 0x0, 0x110, (long) &A_3DBUTTON02 , 2, 1, 24, 1 }; static OBJECT _03_INFOBOX = { 2, -1, -1, 22, 0x2040, 0x100, (long) &TEDINFO_01 , 0, 0, 24, 1 }; static OBJECT _04_INFOBOX = { 7, 5, 5, 24, 0x0, 0x510, (long) &A_3DBUTTON02 , 2, 3, 24, 4 }; static OBJECT _05_INFOBOX = { 4, 6, 6, 20, 0x0, 0x500, 0x00001101L , 0, 0, 24, 4 }; static OBJECT _06_INFOBOX = { 5, -1, -1, 24, 0x0, 0x500, (long) &A_FTEXT02 , 1, 0, 22, 4 }; static OBJECT _07_INFOBOX = { 1, -1, -1, 24, 0x7, 0xc10, (long) &A_3DBUTTON01 , 11, 8, 6, 1 }; static AOBJECT _07aINFOBOX = {NULL , NULL , 0x8020, 0x8818, NULL , NULL , 0x0, 0 }; OBJECT TABLE = { -1, 1, 15, 20, 0x0, 0x0, 0x00001100L , 0, 0, 32, 8 }; static OBJECT _01_TABLE = { 3, -1, -1, 28, 0x40, 0x0, (long) TEXT_007 , 0, 0, 32, 1 }; static AOBJECT _01aTABLE = {keys , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _03_TABLE = { 5, -1, -1, 28, 0x40, 0x0, (long) TEXT_007 , 0, 1, 32, 1 }; static AOBJECT _03aTABLE = {keys , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _05_TABLE = { 7, -1, -1, 28, 0x40, 0x0, (long) TEXT_007 , 0, 2, 32, 1 }; static AOBJECT _05aTABLE = {keys , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _07_TABLE = { 9, -1, -1, 28, 0x40, 0x0, (long) TEXT_007 , 0, 3, 32, 1 }; static AOBJECT _07aTABLE = {keys , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _09_TABLE = { 11, -1, -1, 28, 0x40, 0x0, (long) TEXT_007 , 0, 4, 32, 1 }; static AOBJECT _09aTABLE = {keys , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _11_TABLE = { 13, -1, -1, 28, 0x40, 0x0, (long) TEXT_007 , 0, 5, 32, 1 }; static AOBJECT _11aTABLE = {keys , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _13_TABLE = { 15, -1, -1, 28, 0x40, 0x0, (long) TEXT_007 , 0, 6, 32, 1 }; static AOBJECT _13aTABLE = {keys , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _15_TABLE = { 0, -1, -1, 28, 0x40, 0x0, (long) TEXT_007 , 0, 7, 32, 1 }; static AOBJECT _15aTABLE = {keys , NULL , 0x8020, 0x0, NULL , NULL , 0x0, 0 }; /* WINDOWS */ Awindow KEYS = { NULL, service_keys, make_keys , Awi_open, Awi_init, &TABLE , NULL, 0, 0, -1, 0xb, { 0, 0, 34, 14}, {0, 0, 0, 0}, {0, 0, 0, 0}, {-1, -1, -1, -1}, 0, 0, 0xf8f8, TEXT_001 , TEXT_002 , 10000, 0x103, 0, -1, &KEY_ICON , NULL, Awi_keys, Awi_obchange, Awi_redraw, Awi_topped, Awi_closed, Awi_fulled, Awi_arrowed, Awi_hslid, Awi_vslid, Awi_sized, Awi_moved}; POPUP LIST S); ACS Example Program (c) 1991, 1992 Stefan Bachert ; ..\..\AM\KEYS.AM ; nachladbar .L [-S=0] = ; list of modules follows... acs_load.O ; startup code KEYS.C (KEYS.H) ; depends also upon surface definition ;PCBGILIB.LIB ; BGI library ;PCFLTLIB.LIB ; floating point library PCSTDLIB.LIB ; standard library ;PCEXTLIB.LIB ; extended library PCTOSLIB.LIB ; TOS library PCGEMLIB.LIB ; AES and VDI library ;PCLNALIB.LIB ; LINE-A library ; THIS IS THE END 0, 0x0, (long) TEXT_002 , 0, 0, 12, 1 }; static OBJECT _02_WATCH = { 3, -1, -1, 28, 0x0, 0x0, (long) TEXT_002 , 0, 1, 12, 1 }; static OBJECT _03_WATCH = { 4, -1, -1, 28, 0x0, 0x0, (long) TEXT_002 , 0, 2, 12, 1 }; static OBJECT _04_WATCH = { 5, -1, -1, 28, 0x0, 0x0, (long) TEXT_002 , 0, 3, 12, 1 }; static OBJECT _05_WATCH = { 6, -1, -1, 28, 0x0, 0x0, (long) TEXT_002 , 0, /* Keys funktion als nachladbar Modul Erlaubt Sonderzeichen Eingabe 17.9.92 Stefan Bachert */ #define __ACS_MODULE__ #include #include #include static char line1 [] = {0x20,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,0}; static char line2 [] = {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f, 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0}; static char line3 [] = {0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f, 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,0}; static char line4 [] = {0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,0}; static char line5 [] = {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f, 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,0}; static char line6 [] = {0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf, 0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,0}; static char line7 [] = {0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf, 0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf,0}; static char line8 [] = {0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef, 0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff,0}; static void keys (void); static Awindow *make_keys (void *not_used); static INT16 service_keys (Awindow* wi, INT16 task, void* in_out); #include static INT16 service_keys (Awindow* wi, INT16 task, void* in_out) /* * */ { switch (task) { case AS_TERM: Awi_delete (wi); ACSmoduleterm (); break; case AS_INFO: /* Info zeigen */ A_dialog (&INFOBOX); break; default: return FALSE; } return TRUE; } static void keys (void) /* * Key empfangen */ { static INT16 trecord [4] = {0, 3, 0, 0}; INT16 chr, ch; INT16 top, temp, mstate; INT16 pxy [4]; Awindow *wi; wind_get (0, WF_TOP, &top, &temp, &temp, &temp); wi = Awi_wid (top); chr = (ev_mmox - ev_window-> wi_work. x) / gl_wbox; ch = (ev_mmoy - ev_window-> wi_work. y) / gl_hbox; pxy [0] = pxy [2] = chr * gl_wbox + ev_window-> wi_work. x; pxy [1] = pxy [3] = ch * gl_hbox + ev_window-> wi_work. y; pxy [0] += gl_wbox - 1; pxy [1] += gl_hbox - 1; Amo_hide (); vswr_mode (vdi_handle, MD_XOR); vsf_interior (vdi_handle, FIS_SOLID); vsf_color (vdi_handle, BLACK); v_bar (vdi_handle, pxy); /* Invert */ chr += (ch << 5); if (wi != NULL) { /* eigenes Fenster */ (wi-> keys) (wi, 0, chr); } else { trecord [2] = chr; appl_tplay (trecord, 1, 100); }; evnt_timer (150, 0); v_bar (vdi_handle, pxy); /* Normal */ Amo_show (); wind_update (END_UPDATE); do { evnt_timer (40, 0); graf_mkstate (&temp, &temp, &mstate, &temp); } while ((mstate & 1) == 1); wind_update (BEG_UPDATE); } static Awindow *make_keys (void* not_used) /* * Erzeuge Fenster */ { Awindow* wi; OBJECT *table; table = &TABLE; table [L1]. ob_spec. free_string = line1; table [L2]. ob_spec. free_string = line2; table [L3]. ob_spec. free_string = line3; table [L4]. ob_spec. free_string = line4; table [L5]. ob_spec. free_string = line5; table [L6]. ob_spec. free_string = line6; table [L7]. ob_spec. free_string = line7; table [L8]. ob_spec. free_string = line8; wi = Awi_create (&KEYS); if (wi == NULL) return NULL; return wi; } INT16 ACSinit (void) { make_keys (NULL); return OK; }/* This file was created with ACS 2.0 (c) Stefan Bachert 1991, 1992 The contents is based on file: E:\ACS\AM\KEYS.ACS compiled at: Fri Nov 20 11:39:32 1992 */ /* STRINGS */ /* ICONS */ extern ICONBLK KEY_ICON; /* OBJECT TREES */ extern OBJECT INFOBOX; extern OBJECT TABLE; #define L1 ( 1) #define L2 ( 3) #define L3 ( 5) #define L4 ( 7) #define L5 ( 9) #define L6 ( 11) #define L7 ( 13) #define L8 ( 15) /* WINDOWS */ extern Awindow KEYS; /* ANSI-C Prototypes */ extern INT16 CDECL A_3Dbutton (PARMBLK* pb); extern INT16 CDECL A_ftext (PARMBLK* pb); extern INT16 Auo_string (OBJECT* entry, INT16 task, void* in_out); 6. Mal */ chg = FALSE; for (i = 0; i < N; i ++) { size = (long) Malloc (-1); if (size > 0) { if (mems [i]. size != size) chg = TRUE; mems [i]. size = size; mems [i]. address = Malloc (size); } else /* This file was created with ACS 2.0 (c) Stefan Bachert 1991, 1992 The contents is based on file: E:\ACS.BSP\DEMO_C.AM\DITHER\DITHER.ACS compiled at: Wed Dec 16 01:00:52 1992 */ /* STRINGS */ /* OBJECT TREES */ /* ANSI-C Prototypes */ extern INT16 CDECL A_3Dbutton (PARMBLK* pb); extern INT16 CDECL A_checkbox (PARMBLK* pb); extern INT16 Auo_string (OBJECT* entry, INT16 task, void* in_out); ( >!"th!,~X,BH" ,v"S@pC"r""!CL ( 6) #define MEM7 ( 7) #define MEM8 ( 8) #define MEM9 ( 9) #define MEM10 ( 10) #define MEM11 ( 11) #define MEM12 ( 12) #define MEM13 ( 13) #define MEM14 ( 14) #define MEM15 ( 15) #define MEM16 ( 16) /* WINDOWS */ extern Awindow MEM; /* ANSI-C Prototypes */ extern INT16 CDECL A_3Dbutton (PARMBLK* pb); extern INT16 CDECL A_ftext (PARMBLK* pb); extern INT16 Auo_string (OBJECT* .ACSȸ!V^. !#%-"ACS 2.0 ACS ACCESSORY O3O3H0x0L0x29110178L0x29e20178L60x80219078L0xa0219178L0xa02191f8L$n,,ACSinitE_01O3INT16 ACSinit (void) { INT16 old; OBJECT* dia; old = ACSblk-> dither; dia = Aob_create (&CHOOSE); if (dia != NULL) { if (old & 0x100) dia [MUPPER]. ob_state |= SELECTED; if (old & 0x200) dia [MWHITE]. ob_state |= SELECTED; if (old & 0x400) dia [MGREY]. ob_state |= SELECTED; if (DI_OK == A_dialog (dia)) { form_dial (FMD_FINISH, desk. x, desk. y, desk. w, desk. h, desk. x, desk. y, desk. w, desk. h); } else { ACSblk-> dither = old; } Aob_delete (dia); } ACSmoduleterm (); return OK; } ALERT LISTp A_3DBUTTON01P A_3DBUTTON02 A_3DBUTTON03'2| A_3DBUTTON05  A_3DBUTTON06 ^ A_3DBUTTON09& A_3Dbutton  A_CHECKBOX02* @ A_CHECKBOX03+  A_CHECKBOX04, A_checkbox BAuo_string ;OzPPCHOOSE01CD:" % "   @$   21A11 Q1 !1 a1 11q1 /011q12r13s14t15u16v17w18x19y1Az1B{1C|1D}1E~1 F1$#  @0"!@6"@5#CA4C3%@  @ ;PDATA LIST;DI_OK:ICON LIST_C:rIMAGE LIST:(MCANCEL9MENU LIST_C9MGREY9JMOUSEFORM LIST9MUPPER8MWHITE8`8 OBJECTTREE LISToS8!POPUP LISTO37|7"HHREFERENCE LIST?#:/0123456NL7p#TEDINFO LIST$6N$TEDINFO_01())q6J6%TEXT LIST&'()*+,56>&TEXT_003OKO5'TEXT_004AbbruchNOX(TEXT_01Dithermode konfigurieren4O)TEXT_0244*TEXT_04Weiss4,4v+TEXT_05Gross34,TEXT_06Grau3^3-$$USERBLK LIST 3.WINDOW LIST_C12/colorO3static void color (void) /* Click routine */ { Awindow* wi; INT16 col; col = ev_object [ev_obnr]. ob_spec. obspec. interiorcol; ACSblk-> dither = (ACSblk-> dither & ~0xf) | col; wi = ev_window; (wi-> obchange) (wi, 0, -1); } 0D0066greyoSstatic void grey (void) /* Click routine */ { OBJECT* wobnr; Awindow* wi; wobnr = ev_object + ev_obnr; if (wobnr-> ob_state & SELECTED) { ACSblk-> dither &= ~0x400; } else { ACSblk-> dither |= 0x400; } wobnr-> ob_state ^= SELECTED; wi = ev_window; (wi-> obchange) (wi, 0, -1); } //X1parcalloSstatic void parcall (void) /* * Rufe die Clickroutine des Elternteils auf */ { AOBJECT *aob; INT16 obnr; obnr = Aob_up (ev_object, ev_obnr); aob = (AOBJECT *) ev_object + obnr + 1; (aob-> click) (); }-.2patternO3static void pattern (void) /* Click routine */ { Awindow* wi; INT16 pat; pat = ev_object [ev_obnr]. ob_spec. obspec. fillpattern; ACSblk-> dither = (ACSblk-> dither & ~0x70) | (pat << 4); wi = ev_window; (wi-> obchange) (wi, 0, -1); } ,-3replaceO3static void replace (void) /* Click routine */ { Awindow* wi; ACSblk-> dither |= 0x80; wi = ev_window; (wi-> obchange) (wi, 0, -1); } +,44transO3static void trans (void) /* Click routine */ { Awindow* wi; ACSblk-> dither &= ~0x80; wi = ev_window; (wi-> obchange) (wi, 0, -1); } )* 5upper?#static void upper (void) /* Click routine */ { AUSERBLK* auser; OBJECT* wobnr, *canc; Awindow* wi; wobnr = ev_object + ev_obnr; if (wobnr-> ob_state & SELECTED) { ACSblk-> dither &= ~0x100; canc = ev_object + MCANCEL; auser = (AUSERBLK *) canc-> ob_spec. userblk; (auser-> ub_serv) (canc, AUO_SETVAL, "Abbruch"); } else { ACSblk-> dither |= 0x100; } wobnr-> ob_state ^= SELECTED; wi = ev_window; (wi-> obchange) (wi, 0, -1); } (677whiteoSstatic void white (void) /* Click routine */ { OBJECT* wobnr; Awindow* wi; wobnr = ev_object + ev_obnr; if (wobnr-> ob_state & SELECTED) { ACSblk-> dither &= ~0x200; } else { ACSblk-> dither |= 0x200; } wobnr-> ob_state ^= SELECTED; wi = ev_window; (wi-> obchange) (wi, 0, -1); } #define __ACS_MODULE__ #include #include #include "dither.h" #include "dither.ah" G!/R4eXd apQNJc W҅df+1MQwXh0 `v0BRw`& ,/KEYS.PRJJ~; ALQO6pؔEΛ3rA"cR#G =1N3a܀f 2r4P \pr ҄˒"Y Qn\a0rn2Ŕ0aѢW`I37f@yC9 ̼a͝98]t9]. ٨t1m@QP$) SN7da3 oVΩ#'ͤqN he#I$b†YAVD9yx6„qē43 ༡}9t |OBJyQ@@TEXT_01Zeigt den SCAN- und ACSII-Code an. Ein weiteres ACS 2.00 Modul.0 0j&TEXT_010ASCII:/0'TEXT_02---/l/( TEXT_026Information/IN)USERBLK LIST .*VALT.n+; ACS Example Program (c) 1991 Stefan Bachert ; ..\..\AM\DITHER.AM ; name of executable program .L [-S=0] = ; list of modules follows... acs_load.O ; startup code DITHER.C (DITHER.H) ; depends also upon surface definition ;PCBGILIB.LIB ; BGI library ;PCFLTLIB.LIB ; floating point library PCSTDLIB.LIB ; standard library ;PCEXTLIB.LIB ; extended library PCTOSLIB.LIB ; TOS library PCGEMLIB.LIB ; AES and VDI library PCLNALIB.LIB ; LINE-A library ; THIS IS THE END _002 , 0, 0, 12, 1 }; static OBJECT _02_WATCH = { 3, -1, -1, 28, 0x0, 0x0, (long) TEXT_002 , 0, 1, 12, 1 }; static OBJECT _03_WATCH = { 4, -1, -1, 28, 0x0, 0x0, (long) TEXT_002 , 0, 2, 12, 1 }; static OBJECT _04_WATCH = { 5, -1, -1, 28, 0x0, 0x0, (long) TEXT_002 , 0, 3, 12, 1 }; static OBJECT _05_WATCH = { 6, -1, -1, 28, 0x0, 0x0, (long) TEXT_002 , 0,/* This file was created with ACS 2.0 (c) Stefan Bachert 1991, 1992 The contents are based on file: E:\ACS.BSP\DEMO_C.AM\DITHER\DITHER.ACS compiled at: Wed Dec 16 01:00:54 1992 */ /* ANSI-C Prototypes */ static void color (void); static void grey (void); static void parcall (void); static void pattern (void); static void replace (void); static void trans (void); static void upper (void); static void white (void); /* STRINGS */ static char TEXT_003 [] = "OK"; static char TEXT_004 [] = "Abbruch"; static char TEXT_01 [] = "Dithermode konfigurieren"; static char TEXT_02 [] = ""; static char TEXT_04 [] = "Weiss"; static char TEXT_05 [] = "Gross"; static char TEXT_06 [] = "Grau"; /* TEDINFOS */ static TEDINFO TEDINFO_01 = {TEXT_01, TEXT_02, TEXT_02, 3, 6, 2, 0x1071, 0, 0, 25, 1}; /* AUSERBLK */ static AUSERBLK A_3DBUTTON01 = {A_3Dbutton, 0x80219078L , Auo_string , NULL, NULL, NULL}; static AUSERBLK A_3DBUTTON02 = {A_3Dbutton, 0xa0219178L , Auo_string , NULL, NULL, NULL}; static AUSERBLK A_3DBUTTON03 = {A_3Dbutton, 0x29110178L , Auo_string , TEXT_004 , NULL, NULL}; static AUSERBLK A_3DBUTTON05 = {A_3Dbutton, 0xa02191f8L , Auo_string , NULL, NULL, NULL}; static AUSERBLK A_3DBUTTON06 = {A_3Dbutton, 0x29e20178L , Auo_string , NULL, NULL, NULL}; static AUSERBLK A_3DBUTTON09 = {A_3Dbutton, 0x29110178L , Auo_string , TEXT_003 , NULL, NULL}; static AUSERBLK A_CHECKBOX02 = {A_checkbox, 0x0L , Auo_string , TEXT_04 , NULL, NULL}; static AUSERBLK A_CHECKBOX03 = {A_checkbox, 0x0L , Auo_string , TEXT_05 , NULL, NULL}; static AUSERBLK A_CHECKBOX04 = {A_checkbox, 0x0L , Auo_string , TEXT_06 , NULL, NULL}; /* OBJECT TREES */ #define MGREY ( 57) #define MWHITE ( 59) #define MUPPER ( 61) #define MCANCEL ( 67) #define DI_OK ( 69) static OBJECT CHOOSE = { -1, 1, 1, 25, 0x0, 0x0, 0x00ff1100L , 0, 0, 34, 13 }; static OBJECT _01_CHOOSE = { 0, 2, 69, 24, 0x0, 0x10, (long) &A_3DBUTTON06 , 0, 0, 34, 13 }; static OBJECT _02_CHOOSE = { 4, 3, 3, 24, 0x0, 0x10, (long) &A_3DBUTTON05 , 2, 1, 30, 1 }; static OBJECT _03_CHOOSE = { 2, -1, -1, 22, 0x2040, 0x100, (long) &TEDINFO_01 , 0, 0, 30, 1 }; static OBJECT _04_CHOOSE = { 22, 6, 20, 24, 0x0, 0x10, (long) &A_3DBUTTON01 , 2, 4, 8, 4 }; static AOBJECT _04aCHOOSE = {pattern , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _06_CHOOSE = { 8, -1, -1, 20, 0x5, 0x0, 0x00011101L , 0, 0, 4, 1 }; static AOBJECT _06aCHOOSE = {parcall , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _08_CHOOSE = { 10, -1, -1, 20, 0x5, 0x0, 0x00011141L , 4, 0, 4, 1 }; static AOBJECT _08aCHOOSE = {parcall , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _10_CHOOSE = { 12, -1, -1, 20, 0x5, 0x0, 0x00011111L , 0, 1, 4, 1 }; static AOBJECT _10aCHOOSE = {parcall , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _12_CHOOSE = { 14, -1, -1, 20, 0x5, 0x0, 0x00011151L , 4, 1, 4, 1 }; static AOBJECT _12aCHOOSE = {parcall , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _14_CHOOSE = { 16, -1, -1, 20, 0x5, 0x0, 0x00011121L , 0, 2, 4, 1 }; static AOBJECT _14aCHOOSE = {parcall , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _16_CHOOSE = { 18, -1, -1, 20, 0x5, 0x0, 0x00011161L , 4, 2, 4, 1 }; static AOBJECT _16aCHOOSE = {parcall , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _18_CHOOSE = { 20, -1, -1, 20, 0x5, 0x0, 0x00011131L , 0, 3, 4, 1 }; static AOBJECT _18aCHOOSE = {parcall , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _20_CHOOSE = { 4, -1, -1, 20, 0x5, 0x0, 0x00011171L , 4, 3, 4, 1 }; static AOBJECT _20aCHOOSE = {parcall , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _22_CHOOSE = { 56, 24, 54, 24, 0x0, 0x10, (long) &A_3DBUTTON01 , 13, 4, 8, 4 }; static AOBJECT _22aCHOOSE = {color , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _24_CHOOSE = { 26, -1, -1, 27, 0x5, 0x0, 0x300011f0L , 0, 0, 2, 1 }; static AOBJECT _24aCHOOSE = {parcall , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _26_CHOOSE = { 28, -1, -1, 27, 0x5, 0x0, 0x31001071L , 2, 0, 2, 1 }; static AOBJECT _26aCHOOSE = {parcall , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _28_CHOOSE = { 30, -1, -1, 27, 0x5, 0x0, 0x32001072L , 4, 0, 2, 1 }; static AOBJECT _28aCHOOSE = {parcall , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _30_CHOOSE = { 32, -1, -1, 27, 0x5, 0x0, 0x33001073L , 6, 0, 2, 1 }; static AOBJECT _30aCHOOSE = {parcall , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _32_CHOOSE = { 34, -1, -1, 27, 0x5, 0x0, 0x34001074L , 0, 1, 2, 1 }; static AOBJECT _32aCHOOSE = {parcall , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _34_CHOOSE = { 36, -1, -1, 27, 0x5, 0x0, 0x35001075L , 2, 1, 2, 1 }; static AOBJECT _34aCHOOSE = {parcall , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _36_CHOOSE = { 38, -1, -1, 27, 0x5, 0x0, 0x36001076L , 4, 1, 2, 1 }; static AOBJECT _36aCHOOSE = {parcall , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _38_CHOOSE = { 40, -1, -1, 27, 0x5, 0x0, 0x37001077L , 6, 1, 2, 1 }; static AOBJECT _38aCHOOSE = {parcall , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _40_CHOOSE = { 42, -1, -1, 27, 0x5, 0x0, 0x38001078L , 0, 2, 2, 1 }; static AOBJECT _40aCHOOSE = {parcall , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _42_CHOOSE = { 44, -1, -1, 27, 0x5, 0x0, 0x39001079L , 2, 2, 2, 1 }; static AOBJECT _42aCHOOSE = {parcall , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _44_CHOOSE = { 46, -1, -1, 27, 0x5, 0x0, 0x4100107aL , 4, 2, 2, 1 }; static AOBJECT _44aCHOOSE = {parcall , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _46_CHOOSE = { 48, -1, -1, 27, 0x5, 0x0, 0x4200107bL , 6, 2, 2, 1 }; static AOBJECT _46aCHOOSE = {parcall , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _48_CHOOSE = { 50, -1, -1, 27, 0x5, 0x0, 0x4300107cL , 0, 3, 2, 1 }; static AOBJECT _48aCHOOSE = {parcall , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _50_CHOOSE = { 52, -1, -1, 27, 0x5, 0x0, 0x4400107dL , 2, 3, 2, 1 }; static AOBJECT _50aCHOOSE = {parcall , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _52_CHOOSE = { 54, -1, -1, 27, 0x5, 0x0, 0x4500107eL , 4, 3, 2, 1 }; static AOBJECT _52aCHOOSE = {parcall , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _54_CHOOSE = { 22, -1, -1, 27, 0x5, 0x0, 0x4600107fL , 6, 3, 2, 1 }; static AOBJECT _54aCHOOSE = {parcall , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _56_CHOOSE = { 67, 57, 65, 24, 0x0, 0x10, (long) &A_3DBUTTON02 , 24, 4, 8, 4 }; static OBJECT _57_CHOOSE = { 59, -1, -1, 24, 0x40, 0x0, (long) &A_CHECKBOX04 , 0, 0, 7, 1 }; static AOBJECT _57aCHOOSE = {grey , NULL , 0x8000, 0x8822, NULL , NULL , 0x0, 0 }; static OBJECT _59_CHOOSE = { 61, -1, -1, 24, 0x40, 0x0, (long) &A_CHECKBOX02 , 0, 1, 8, 1 }; static AOBJECT _59aCHOOSE = {white , NULL , 0x8000, 0x8811, NULL , NULL , 0x0, 0 }; static OBJECT _61_CHOOSE = { 63, -1, -1, 24, 0x40, 0x0, (long) &A_CHECKBOX03 , 0, 2, 8, 1 }; static AOBJECT _61aCHOOSE = {upper , NULL , 0x8000, 0x881f, NULL , NULL , 0x0, 0 }; static OBJECT _63_CHOOSE = { 65, -1, -1, 27, 0x5, 0x0, 0x43000141L , 0, 3, 4, 1 }; static AOBJECT _63aCHOOSE = {trans , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _65_CHOOSE = { 56, -1, -1, 27, 0x5, 0x0, 0x430001c1L , 4, 3, 4, 1 }; static AOBJECT _65aCHOOSE = {replace , NULL , 0x8000, 0x0, NULL , NULL , 0x0, 0 }; static OBJECT _67_CHOOSE = { 69, -1, -1, 24, 0x4005, 0x0, (long) &A_3DBUTTON03 , 20, 10, 9, 2 }; static AOBJECT _67aCHOOSE = {NULL , NULL , 0x8000, 0x881e, NULL , NULL , 0x0, 0 }; static OBJECT _69_CHOOSE = { 1, -1, -1, 24, 0x4007, 0x0, (long) &A_3DBUTTON09 , 6, 10, 9, 2 }; static AOBJECT _69aCHOOSE = {NULL , NULL , 0x8020, 0x8818, NULL , NULL , 0x0, 0 }; /* ANSI-C Routines */ INT16 ACSinit (void) { INT16 old; OBJECT* dia; old = ACSblk-> dither; dia = Aob_create (&CHOOSE); if (dia != NULL) { if (old & 0x100) dia [MUPPER]. ob_state |= SELECTED; if (old & 0x200) dia [MWHITE]. ob_state |= SELECTED; if (old & 0x400) dia [MGREY]. ob_state |= SELECTED; if (DI_OK == A_dialog (dia)) { form_dial (FMD_FINISH, desk. x, desk. y, desk. w, desk. h, desk. x, desk. y, desk. w, desk. h); } else { ACSblk-> dither = old; } Aob_delete (dia); } ACSmoduleterm (); return OK; } static void color (void) /* Click routine */ { Awindow* wi; INT16 col; col = ev_object [ev_obnr]. ob_spec. obspec. interiorcol; ACSblk-> dither = (ACSblk-> dither & ~0xf) | col; wi = ev_window; (wi-> obchange) (wi, 0, -1); } static void grey (void) /* Click routine */ { OBJECT* wobnr; Awindow* wi; wobnr = ev_object + ev_obnr; if (wobnr-> ob_state & SELECTED) { ACSblk-> dither &= ~0x400; } else { ACSblk-> dither |= 0x400; } wobnr-> ob_state ^= SELECTED; wi = ev_window; (wi-> obchange) (wi, 0, -1); } static void parcall (void) /* * Rufe die Clickroutine des Elternteils auf */ { AOBJECT *aob; INT16 obnr; obnr = Aob_up (ev_object, ev_obnr); aob = (AOBJECT *) ev_object + obnr + 1; (aob-> click) (); } static void pattern (void) /* Click routine */ { Awindow* wi; INT16 pat; pat = ev_object [ev_obnr]. ob_spec. obspec. fillpattern; ACSblk-> dither = (ACSblk-> dither & ~0x70) | (pat << 4); wi = ev_window; (wi-> obchange) (wi, 0, -1); } static void replace (void) /* Click routine */ { Awindow* wi; ACSblk-> dither |= 0x80; wi = ev_window; (wi-> obchange) (wi, 0, -1); } static void trans (void) /* Click routine */ { Awindow* wi; ACSblk-> dither &= ~0x80; wi = ev_window; (wi-> obchange) (wi, 0, -1); } static void upper (void) /* Click routine */ { AUSERBLK* auser; OBJECT* wobnr, *canc; Awindow* wi; wobnr = ev_object + ev_obnr; if (wobnr-> ob_state & SELECTED) { ACSblk-> dither &= ~0x100; canc = ev_object + MCANCEL; auser = (AUSERBLK *) canc-> ob_spec. userblk; (auser-> ub_serv) (canc, AUO_SETVAL, "Abbruch"); } else { ACSblk-> dither |= 0x100; } wobnr-> ob_state ^= SELECTED; wi = ev_window; (wi-> obchange) (wi, 0, -1); } static void white (void) /* Click routine */ { OBJECT* wobnr; Awindow* wi; wobnr = ev_object + ev_obnr; if (wobnr-> ob_state & SELECTED) { ACSblk-> dither &= ~0x200; } else { ACSblk-> dither |= 0x200; } wobnr-> ob_state ^= SELECTED; wi = ev_window; (wi-> obchange) (wi, 0, -1); } 2<0*?bs}TJ's Le ba}50$KU2уN u{/}ɺXd`̣ ӣ[] u3s{ݧ>_}z7UutAd7u:ly4e;n}OA?xOozbcCvEM+0Ls E|An$A 63 ƤDP $DO/>R~a 5Y,( fCKEYS.HJJ /* L 4s@Iæ ;aS& 2d D!S@p1)@Lh&BŒASF1r"N 1IB ; LINE-A library ; THIS IS THE END ; LINE-A library ; THIS IS THE END define HOUR_2 ( 2) #define HOUR_1 ( 3) #define MIN_2 ( 5) #define MIN_1 ( 6) #define SEC_2 ( 8) #define SEC_1 ( 9) extern OBJECT INFO_BOX; /* WINDOWS */ extern Awindow DIGI_UHR; /* ANSI-C Prototypes */ extern INT16 CDECL A_3Dbutton (PARMBLK* pb); extern INT16 CDECL A_ftext (PARMBLK* pb); extern INT16 Auo_string (OBJECT* entrHier befinden sich folgende Beispiele und Ihre programmtechnischen Themem. Es handelt sich durchweg um nachladbare Module DIAHELP ACS als graphisches Hilfesystem. Austausch von Workobjekten DIGI_UHR Digital Zeit und Datums Anzeige Quasimultitasking mit dem AWS_LATEUPDATE-Flag Icons als Zeichen EDIT Beliebig viele Texteditoren erzeugen generisches Icon Source in der ACS-Datei KEYS Ntzliches Utility um nicht erreichbare Tastencode einzugeben MEMWATCH Ein Speicherwchter. Er zeigt die verfgbaren Speicherblcke an. Quasimultitasking RECHNER Taschenrechner Dragroutinen SYSFONT Temporres Modules zum ndern der ACS-sysfonts VIEWKEY Zeigt den Scan und ACSII-Code gedrckter Tasten an /* Applikation fr ACS "view Vars" zeigt die Variablen von ACS 14.12.92 Stefan Bachert */ #include #include static INT16 service (Awindow* wi, INT16 task, void* in_out) { INT16 ok; if (task == AS_TERM) {/* Reagiert sonst nicht */ ok = PROTOCOL. service (wi, task, &ok); ACSmoduleterm (); return ok; } else { return PROTOCOL. service (wi, task, in_out); } } INT16 ACSinit (void) /* * Erzeuge */ { Awindow *wi; char **pf; INT16 i; PROTOCOL. name = " ACSblk Vars "; wi = PROTOCOL. create (NULL); if (wi == NULL) return FAIL; wi-> service = service; wprintf (wi, "ap_version: $%04x\n", AESglobal [0]); wprintf (wi, "ap_count: %4d\n", AESglobal [1]); wprintf (wi, "gl_apid: %4d\n", gl_apid); wprintf (wi, "nplanes: %4d\n", nplanes); wprintf (wi, "ncolors: %4d\n", ncolors); wprintf (wi, "phys_handle:%4d\n", phys_handle); wprintf (wi, "vdi_handle: %4d\n", vdi_handle); wprintf (wi, "gl_wattr: %4d\n", gl_wattr); wprintf (wi, "gl_hattr: %4d\n", gl_hattr); wprintf (wi, "gl_wbox: %4d\n", gl_wbox); wprintf (wi, "gl_hbox: %4d\n", gl_hbox); wprintf (wi, "gl_wchar: %4d\n", gl_wchar); wprintf (wi, "gl_hchar: %4d\n", gl_hchar); wprintf (wi, "desk. x: %4d\n", desk. x); wprintf (wi, "desk. y: %4d\n", desk. y); wprintf (wi, "desk. w: %4d\n", desk. w); wprintf (wi, "desk. h: %4d\n", desk. h); if (application) { wprintf (wi, "appname: \"%s\"\n", appname); wprintf (wi, "apppath: \"%s\"\n", apppath); wprintf (wi, "apppara: \"%s\"\n", apppara); wprintf (wi, "appfrom: \"%s\"\n", appfrom); wprintf (wi, "basename: \"%s\"\n", basename); } wprintf (wi, "ev_mtcount: %4ld\n", ev_mtcount); wprintf (wi, "application: %4d\n", application); wprintf (wi, "multitask: %4d\n", multitask); wprintf (wi, "fonts: %4d\n", ACSblk-> fonts); if (application) { wprintf (wi, "argc: %4d\n", ACSblk-> argc); for (i = 0; i < ACSblk-> argc; i ++) { wprintf (wi, "argv [%d]: \"%s\"\n", i, ACSblk-> argv [i]); } pf = ACSblk-> env; if (pf != NULL) { while (*pf != NULL) { wprintf (wi, "env: \"%s\"\n", *pf); pf ++; } } } wprintf (wi, "fontid: %4d\n", ACSblk-> fontid); wprintf (wi, "fheight: %4d\n", ACSblk-> fheight); wprintf (wi, "fontsid: %4d\n", ACSblk-> fontsid); wprintf (wi, "fsheight: %4d\n", ACSblk-> fsheight); wprintf (wi, "dither: $%04x\n", ACSblk-> dither); (wi-> open) (wi); /* ffne gleich, auch als accessory */ return OK; } TEXT_01Systemfonts setzenvTEXT_02 jTEXT_03OK TEXT_05IBM Fontf TEXT_06; ACS Beispiel Program (c) 1991 Stefan Bachert ; ..\..\AM\VIEWVARS.AM ; loadable Module .C [-D__ACS_MODULE__] .L [-S=0] = ; list of modules follows... ACS_LOAD.O ; startup code VIEWVARS.C ACSPLUS.LIB ;PCBGILIB.LIB ; BGI library PCFLTLIB.LIB ; floating point library PCSTDLIB.LIB ; standard library ;PCEXTLIB.LIB ; extended library PCTOSLIB.LIB ; TOS library PCGEMLIB.LIB ; AES and VDI library PCLNALIB.LIB ; LINE-A library ; THIS IS THE ENDٱ6ʑkck}DITHER.CST_004OK\@\)TEXT_0070[[*HHTEXT_02Sonderzeichereingabe per Mausklick. Ein weiteres ACS-Modul fr ACS 2.00[H[+ TEXT_026InformationZ,USERBLK LIST ZZ-WINDOW LIST_CZF.keys.ACSO #!$(&[% ACS 1.0d ACS ACCESSORY3O3H0x8011101Lp0xa011181L..ZADDRESS010abc$^_Ctf`8O"''-AD_1DONTSW n-|AD_1HOBBYre Tn Tast-2AD_1IDEA@ `nSTRI,AD_2DONTS'V`,AD_2HOBBY'V`,T AD_2IDEA8'W8`, AD_BIRTHDAY}@ + AD_FIRSTNAMEe6An+v AD_INDEX+, AD_LASTNAMENDEX:Ȕne6*AD_MFIRST ZP*AD_MLAST*NAD_MNEXThJĀ %*AD_MPREVP JĀ )AD_PHONEx}@ )pAD_PLZx}@ )&AD_STREETE(AD_TOWNPALERT LISTEO3((PbA_INNERFRAME02'(A_INNERFRAME03&' A_innerframehu\zx~DO3Function A_innerframe (dummy1, dummy2: Pointer; pb: PARMBLKPtr): Integer; { USERDEF routine } Begin A_innerframe := pb^. pb_currstate; End; &Auo_stringO3&BDATA LISTO3  DETAIL001012345678901234567890j5b3/ )#0 )#1)# 3 * 2 - 4, .(3 5  +6)#)#)# )#)#)#9 =7 :zFENSTERO30ICON LISTEO3IMAGE LISTEO3 MAUS LISTEF!MEN LISTEO3'<"NULL_STRING`<|f|~>~<> #OBJEKT LISTEO3R$POPUP LISTEO3OT%<REFERENZENO3\]^_`abcdef&STRING LISTEO3"/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ'TASKS01ff`ff`ff0f`ff_CZZ " L U  P P   J  K  "  " " " " " MeZ_ N  W a2X \ V b1 R^Q]ScTdY:(TEDI LISTEO3)*+,-.)TEDINFO_001v l~gff lfg :;<$$^*TEDINFO_002P >?@:+TEDINFO_003^^hcABC ,TEDINFO_004  DEF^-TEDINFO_005xO3GHI\.TEDINFO_018""J/ TEXT_001@@10Vorname:<0TEXT_002Name:1TEXT_003Strae:@2TEXT_004fOrt:23TEXT_005W<x}@PLZ:4TEXT_006ere Tn TastTel:2|5 TEXT_007XXXXXXXXXXXXXXXXXXXXXXXGeburtstag:& 6 TEXT_008ere Tn TastHobbies:܀ 7 TEXT_009ere Tvn TastGeschenk- :NN8TEXT_01 1234 MN89 TEXT_010ere Tn TastAbneigungen:MxM:$$TEXT_011uT12345678901234567890123456789012345MML;$$TEXT_012___________________________________LL<$$TEXT_013XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXL4L~=TEXT_014nXXXXXX^DIdeenKL&>TEXT_015ere Tn TastW1234KK?TEXT_016^x}@_-____K*Kt@TEXT_017x}%ANNNNJKATEXT_018"121212JtJB TEXT_019$$^^h__-__-__JJdCTEXT_020$$^^hNNNNNNIJDTEXT_021jx0703112345678IVIETEXT_022x_____ / ________HI@FTEXT_023(PNNNNNNNNNNNNNHHGTEXT_024@@0123456789012345678901234567890HH\HTEXT_025A0______________________________GGITEXT_026]`vXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXG8GJTEXT_027 ber mich ... FGKTEXT_0280--------------------FvFLTEXT_029  Datei FF^MTEXT_030ere TXn Tast Speichern ^SEENTEXT_031ere Tn Tast---------------ETEO TEXT_032 Adressen DE@P TEXT_033x Position DDQTEXT_034M@@1p Erster ^AD6DRTEXT_035|x Letzter ^ECD STEXT_036 Nchster ^NCvCTTEXT_037x Voriger ^VCCdU TEXT_038x}4 Aktion BCV TEXT_039ere Tn Tast Neu NBZBW TEXT_040UU ndern MABDX TEXT_041Lx Lschen DAAYTEXT_044--------------A6AZTEXT_045 Beenden ^L@n`[USERBLK LISTEO3@\ad_deletere T@n Tast@H]ad_firstere TԔn Tast?^ad_last?_ad_leaveUUUUUUUUUUUU?j`ad_make_____LAD_PREV90? aad_modifyp>bad_newx}4 >cad_nextiere Tn Tast>Bdad_prevUCHn OKn =ead_savefad_service Beispielapplikation ADRESSDATENBANK ==================================== Durch Anklicken des NEU-Icons kann jederzeit und beliebig oft eine Datenbank geffnet werden. Ist der angegebene Dateiname nicht existent wird eine neue Datenbank angelegt. Die Maske nimmt zu jederzeit Eingaben entgegen. Rechts oben wird der Index des Eintrages angezeigt. Die Eingaben werden je nach Auswahl eines Menpunktes verwertet. Datei ===== Speichern ^S Die Datenbank wird in ihrem aktuellen Zustand gesichert. Beende ^L Die Datenbank und das Fenster wird beendet. Eventuelle Modifikationen werden nicht gesichert! Aktion ====== Neu ALT-N Maskendaten werden neu eingetragen Alternativ kann auch RETURN gedrckt werden. ndern ALT-M Die Maskendaten werden anstatt des aktuellen Eintrages bernommen Lschen ALT-D Der aktuelle Eintrag wird gelscht. Der nchste Eintrag wird angezeigt. Position ======== Eventuelle Eingaben in die Maske gehen verloren wenn einer der nachfolgenden Punkt angewhlt wird. Erster ^A Der erste Eintrag wird angezeigt Letzter ^E Der letzte Eintrag wird angezeigt Nchster ^N Der nchste Eintrag wird angezeigt Voriger ^V Der vorige Eintrag wird angezeigt _hchar); wprintf (wi, "desk. x: %4d\n", desk. x); wprintf (wi, "desk. y: %4d\n", desk. y); wprintf (wi, "desk. w: %4d\n", desk. w); wprintf (wi, "desk. h: %4d\n", desk. h); if (application) { wprintf (wi, "appname: \"%s\"\n", appname); wprintf (wi, "apppath: \"%s\"\n", apppath); wprintf (wi, "apppara: \"%s\"\n", apppara); wprintf (wi, "appfrom: \"%s\"\n", appfrom); wprintf (wi, "basename: \"%s\"\n", basename); } wprintf (wi, "ev_mtcount: %4ld\n", ev_mtcount); wprintf (wi, "application: %4d\n", application); wprintf (wi, "multitask: %4d\n", multitask); wprintf (wi, "fonts: %4d\n", ACSblk-> fonts); if (application) { wprintf (wi, "argc: %4d\{ This file was created with ACS 2.0 (c) Stefan Bachert 1991, 1992 The contents are based on file: F:\PASCAL\ACS2\ADRESS\ADRESS.ACS compiled at: Fri Jan 01 19:50:42 1993 } Const { STRINGS } NULL_STRING: packed array [1..1] of char = (#0); TEXT_001: packed array [1..9] of char = 'Vorname:'#0; TEXT_002: packed array [1..6] of char = 'Name:'#0; TEXT_003: packed array [1..8] of char = 'Strae:'#0; TEXT_004: packed array [1..5] of char = 'Ort:'#0; TEXT_005: packed array [1..5] of char = 'PLZ:'#0; TEXT_006: packed array [1..5] of char = 'Tel:'#0; TEXT_007: packed array [1..12] of char = 'Geburtstag:'#0; TEXT_008: packed array [1..9] of char = 'Hobbies:'#0; TEXT_009: packed array [1..12] of char = 'Geschenk- :'#0; TEXT_01: packed array [1..7] of char = ' 1234 '#0; TEXT_010: packed array [1..13] of char = 'Abneigungen:'#0; TEXT_011: packed array [1..36] of char = '12345678901234567890123456789012345'#0; TEXT_012: packed array [1..36] of char = '___________________________________'#0; TEXT_013: packed array [1..36] of char = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'#0; TEXT_014: packed array [1..6] of char = 'Ideen'#0; TEXT_015: packed array [1..6] of char = 'W1234'#0; TEXT_016: packed array [1..7] of char = '_-____'#0; TEXT_017: packed array [1..6] of char = 'ANNNN'#0; TEXT_018: packed array [1..7] of char = '121212'#0; TEXT_019: packed array [1..9] of char = '__-__-__'#0; TEXT_020: packed array [1..7] of char = 'NNNNNN'#0; TEXT_021: packed array [1..14] of char = '0703112345678'#0; TEXT_022: packed array [1..17] of char = '_____ / ________'#0; TEXT_023: packed array [1..14] of char = 'NNNNNNNNNNNNN'#0; TEXT_024: packed array [1..31] of char = '123456789012345678901234567890'#0; TEXT_025: packed array [1..31] of char = '______________________________'#0; TEXT_026: packed array [1..31] of char = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'#0; TEXT_027: packed array [1..21] of char = ' ber mich ... '#0; TEXT_028: packed array [1..21] of char = '--------------------'#0; TEXT_029: packed array [1..8] of char = ' Datei '#0; TEXT_030: packed array [1..15] of char = ' Speichern ^S'#0; TEXT_031: packed array [1..16] of char = '---------------'#0; TEXT_032: packed array [1..11] of char = ' Adressen '#0; TEXT_033: packed array [1..11] of char = ' Position '#0; TEXT_034: packed array [1..14] of char = ' Erster ^A'#0; TEXT_035: packed array [1..14] of char = ' Letzter ^E'#0; TEXT_036: packed array [1..14] of char = ' Nchster ^N'#0; TEXT_037: packed array [1..14] of char = ' Voriger ^V'#0; TEXT_038: packed array [1..9] of char = ' Aktion '#0; TEXT_039: packed array [1..13] of char = ' Neu N'#0; TEXT_040: packed array [1..13] of char = ' ndern M'#0; TEXT_041: packed array [1..13] of char = ' Lschen D'#0; TEXT_044: packed array [1..15] of char = '--------------'#0; TEXT_045: packed array [1..15] of char = ' Beenden ^L'#0; { TEDINFOS } TEDINFO_001: TEDINFO = (te_ptext: @TEXT_011; te_ptmplt: @TEXT_012; te_pvalid: @TEXT_013; te_font: 3; te_just: 0; te_color: $1180; te_thickness: -1; te_txtlen: 36; te_tmplen: 36); TEDINFO_002: TEDINFO = (te_ptext: @TEXT_015; te_ptmplt: @TEXT_016; te_pvalid: @TEXT_017; te_font: 3; te_just: 2; te_color: $1180; te_thickness: -1; te_txtlen: 6; te_tmplen: 7); TEDINFO_003: TEDINFO = (te_ptext: @TEXT_018; te_ptmplt: @TEXT_019; te_pvalid: @TEXT_020; te_font: 3; te_just: 2; te_color: $1180; te_thickness: -1; te_txtlen: 7; te_tmplen: 9); TEDINFO_004: TEDINFO = (te_ptext: @TEXT_021; te_ptmplt: @TEXT_022; te_pvalid: @TEXT_023; te_font: 3; te_just: 2; te_color: $1180; te_thickness: -1; te_txtlen: 14; te_tmplen: 17); TEDINFO_005: TEDINFO = (te_ptext: @TEXT_024; te_ptmplt: @TEXT_025; te_pvalid: @TEXT_026; te_font: 3; te_just: 0; te_color: $1180; te_thickness: -1; te_txtlen: 31; te_tmplen: 31); TEDINFO_01: TEDINFO = (te_ptext: @TEXT_01; te_ptmplt: @NULL_STRING; te_pvalid: @NULL_STRING; te_font: 5; te_just: 2; te_color: $1180; te_thickness: -1; te_txtlen: 7; te_tmplen: 1); { AUSERBLK } A_INNERFRAME02: AUSERBLK = (ub_code: A_innerframe; ub_parm: $8011101; ub_serv: Auo_string; ub_ptr1: NIL; ub_ptr2: NIL; ub_ptr3: NIL); A_INNERFRAME03: AUSERBLK = (ub_code: A_innerframe; ub_parm: $a011181; ub_serv: Auo_string; ub_ptr1: NIL; ub_ptr2: NIL; ub_ptr3: NIL); { MENU TREES } AD_MLAST = 31; AD_MFIRST = 33; AD_MNEXT = 35; AD_MPREV = 37; TASKS : Array [0 .. 39] of ACSOBJECT = ( (aes: (ob_next: -1; ob_head: 1; ob_tail: 7; ob_type: 25; ob_flags: $0000; ob_state: $0000;ob_spec: (index: $00000000);ob_x: 0; ob_y: 0; ob_width: 90; ob_height: 25)), (aes: (ob_next: 7; ob_head: 2; ob_tail: 2; ob_type: 20; ob_flags: $0000; ob_state: $0000;ob_spec: (index: $00001100);ob_x: 0; ob_y: 0; ob_width: 90; ob_height: 513)), (aes: (ob_next: 1; ob_head: 3; ob_tail: 6; ob_type: 25; ob_flags: $0000; ob_state: $0000;ob_spec: (index: $00000000);ob_x: 2; ob_y: 0; ob_width: 31; ob_height: 769)), (aes: (ob_next: 4; ob_head: -1; ob_tail: -1; ob_type: 32; ob_flags: $0000; ob_state: $2000;ob_spec: (free_string: @NULL_STRING);ob_x: 0; ob_y: 0; ob_width: 6; ob_height: 769)), (aes: (ob_next: 5; ob_head: -1; ob_tail: -1; ob_type: 32; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_029);ob_x: 6; ob_y: 0; ob_width: 7; ob_height: 769)), (aes: (ob_next: 6; ob_head: -1; ob_tail: -1; ob_type: 32; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_038);ob_x: 13; ob_y: 0; ob_width: 8; ob_height: 769)), (aes: (ob_next: 2; ob_head: -1; ob_tail: -1; ob_type: 32; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_033);ob_x: 21; ob_y: 0; ob_width: 10; ob_height: 769)), (aes: (ob_next: 0; ob_head: 8; ob_tail: 30; ob_type: 25; ob_flags: $0000; ob_state: $0000;ob_spec: (index: $00000000);ob_x: 0; ob_y: 769; ob_width: 80; ob_height: 19)), (aes: (ob_next: 17; ob_head: 9; ob_tail: 16; ob_type: 20; ob_flags: $0000; ob_state: $0000;ob_spec: (index: $00ff1100);ob_x: 2; ob_y: 0; ob_width: 20; ob_height: 8)), (aes: (ob_next: 10; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $2000;ob_spec: (free_string: @TEXT_027);ob_x: 0; ob_y: 0; ob_width: 20; ob_height: 1)), (aes: (ob_next: 11; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $2008;ob_spec: (free_string: @TEXT_028);ob_x: 0; ob_y: 1; ob_width: 20; ob_height: 1)), (aes: (ob_next: 12; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $2000;ob_spec: (free_string: @NULL_STRING);ob_x: 0; ob_y: 2; ob_width: 20; ob_height: 1)), (aes: (ob_next: 13; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $2000;ob_spec: (free_string: @NULL_STRING);ob_x: 0; ob_y: 3; ob_width: 20; ob_height: 1)), (aes: (ob_next: 14; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $2000;ob_spec: (free_string: @NULL_STRING);ob_x: 0; ob_y: 4; ob_width: 20; ob_height: 1)), (aes: (ob_next: 15; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $2000;ob_spec: (free_string: @NULL_STRING);ob_x: 0; ob_y: 5; ob_width: 20; ob_height: 1)), (aes: (ob_next: 16; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $2000;ob_spec: (free_string: @NULL_STRING);ob_x: 0; ob_y: 6; ob_width: 20; ob_height: 1)), (aes: (ob_next: 8; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $2000;ob_spec: (free_string: @NULL_STRING);ob_x: 0; ob_y: 7; ob_width: 20; ob_height: 1)), (aes: (ob_next: 23; ob_head: 18; ob_tail: 22; ob_type: 20; ob_flags: $0000; ob_state: $0020;ob_spec: (index: $00ff1101);ob_x: 8; ob_y: 0; ob_width: 15; ob_height: 3)), (aes: (ob_next: 20; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_030);ob_x: 0; ob_y: 0; ob_width: 15; ob_height: 1)), (acs :(click: ad_save; ob_flags: $8000; key: $0013;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)), (aes: (ob_next: 22; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_045);ob_x: 0; ob_y: 2; ob_width: 15; ob_height: 1)), (acs :(click: ad_leave; ob_flags: $8000; key: $000c;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)), (aes: (ob_next: 17; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0008;ob_spec: (free_string: @TEXT_031);ob_x: 0; ob_y: 1; ob_width: 15; ob_height: 1)), (aes: (ob_next: 30; ob_head: 24; ob_tail: 28; ob_type: 20; ob_flags: $0000; ob_state: $0020;ob_spec: (index: $00ff1101);ob_x: 15; ob_y: 0; ob_width: 13; ob_height: 3)), (aes: (ob_next: 26; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_040);ob_x: 0; ob_y: 1; ob_width: 13; ob_height: 1)), (acs :(click: ad_modify; ob_flags: $8000; key: $8832;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)), (aes: (ob_next: 28; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_041);ob_x: 0; ob_y: 2; ob_width: 13; ob_height: 1)), (acs :(click: ad_delete; ob_flags: $8000; key: $8820;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)), (aes: (ob_next: 23; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_039);ob_x: 0; ob_y: 0; ob_width: 13; ob_height: 1)), (acs :(click: ad_new; ob_flags: $8000; key: $8831;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)), (aes: (ob_next: 7; ob_head: 31; ob_tail: 39; ob_type: 20; ob_flags: $0000; ob_state: $0020;ob_spec: (index: $00ff1101);ob_x: 23; ob_y: 0; ob_width: 14; ob_height: 5)), (aes: (ob_next: 33; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_035);ob_x: 0; ob_y: 1; ob_width: 14; ob_height: 1)), (acs :(click: ad_last; ob_flags: $8000; key: $0005;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)), (aes: (ob_next: 35; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_034);ob_x: 0; ob_y: 0; ob_width: 14; ob_height: 1)), (acs :(click: ad_first; ob_flags: $8000; key: $0001;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)), (aes: (ob_next: 37; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_036);ob_x: 0; ob_y: 3; ob_width: 14; ob_height: 1)), (acs :(click: ad_next; ob_flags: $8000; key: $000e;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)), (aes: (ob_next: 39; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_037);ob_x: 0; ob_y: 4; ob_width: 14; ob_height: 1)), (acs :(click: ad_prev; ob_flags: $8000; key: $0016;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)), (aes: (ob_next: 30; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0020; ob_state: $0008;ob_spec: (free_string: @TEXT_044);ob_x: 0; ob_y: 2; ob_width: 14; ob_height: 1)) ); { OBJECT TREES } AD_FIRSTNAME = 4; AD_LASTNAME = 6; AD_STREET = 8; AD_PLZ = 10; AD_TOWN = 12; AD_PHONE = 14; AD_INDEX = 15; AD_BIRTHDAY = 18; AD_1HOBBY = 20; AD_2HOBBY = 21; AD_1IDEA = 22; AD_2IDEA = 23; AD_1DONTS = 24; AD_2DONTS = 25; DETAIL : Array [0 .. 29] of ACSOBJECT = ( (aes: (ob_next: -1; ob_head: 2; ob_tail: 16; ob_type: 20; ob_flags: $0002; ob_state: $0000;ob_spec: (index: $00ff1100);ob_x: 0; ob_y: 0; ob_width: 53; ob_height: 16)), (acs :(click: ad_new; ob_flags: $8000; key: $0000;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)), (aes: (ob_next: 16; ob_head: 3; ob_tail: 15; ob_type: 24; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @A_INNERFRAME02);ob_x: 1; ob_y: 0; ob_width: 51; ob_height: 7)), (aes: (ob_next: 4; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_001);ob_x: 2; ob_y: 1; ob_width: 8; ob_height: 1)), (aes: (ob_next: 5; ob_head: -1; ob_tail: -1; ob_type: 29; ob_flags: $0008; ob_state: $0000;ob_spec: (free_string: @TEDINFO_001);ob_x: 14; ob_y: 1; ob_width: 35; ob_height: 1)), (aes: (ob_next: 6; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_002);ob_x: 2; ob_y: 2; ob_width: 5; ob_height: 1)), (aes: (ob_next: 7; ob_head: -1; ob_tail: -1; ob_type: 29; ob_flags: $0008; ob_state: $0000;ob_spec: (free_string: @TEDINFO_001);ob_x: 14; ob_y: 2; ob_width: 35; ob_height: 1)), (aes: (ob_next: 8; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_003);ob_x: 2; ob_y: 3; ob_width: 7; ob_height: 1)), (aes: (ob_next: 9; ob_head: -1; ob_tail: -1; ob_type: 29; ob_flags: $0008; ob_state: $0000;ob_spec: (free_string: @TEDINFO_001);ob_x: 14; ob_y: 3; ob_width: 35; ob_height: 1)), (aes: (ob_next: 10; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_005);ob_x: 2; ob_y: 4; ob_width: 4; ob_height: 1)), (aes: (ob_next: 11; ob_head: -1; ob_tail: -1; ob_type: 29; ob_flags: $0008; ob_state: $0000;ob_spec: (free_string: @TEDINFO_002);ob_x: 7; ob_y: 4; ob_width: 6; ob_height: 1)), (aes: (ob_next: 12; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_004);ob_x: 14; ob_y: 4; ob_width: 4; ob_height: 1)), (aes: (ob_next: 13; ob_head: -1; ob_tail: -1; ob_type: 29; ob_flags: $0008; ob_state: $0000;ob_spec: (free_string: @TEDINFO_005);ob_x: 19; ob_y: 4; ob_width: 30; ob_height: 1)), (aes: (ob_next: 14; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_006);ob_x: 2; ob_y: 5; ob_width: 4; ob_height: 1)), (aes: (ob_next: 15; ob_head: -1; ob_tail: -1; ob_type: 29; ob_flags: $0008; ob_state: $0000;ob_spec: (free_string: @TEDINFO_004);ob_x: 7; ob_y: 5; ob_width: 16; ob_height: 1)), (aes: (ob_next: 2; ob_head: -1; ob_tail: -1; ob_type: 21; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEDINFO_01);ob_x: 40; ob_y: 0; ob_width: 6; ob_height: 1)), (aes: (ob_next: 0; ob_head: 17; ob_tail: 28; ob_type: 24; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @A_INNERFRAME03);ob_x: 1; ob_y: 7; ob_width: 51; ob_height: 9)), (aes: (ob_next: 18; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_007);ob_x: 1; ob_y: 1; ob_width: 11; ob_height: 1)), (aes: (ob_next: 19; ob_head: -1; ob_tail: -1; ob_type: 29; ob_flags: $0008; ob_state: $0000;ob_spec: (free_string: @TEDINFO_003);ob_x: 14; ob_y: 1; ob_width: 8; ob_height: 1)), (aes: (ob_next: 20; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_008);ob_x: 1; ob_y: 2; ob_width: 8; ob_height: 1)), (aes: (ob_next: 21; ob_head: -1; ob_tail: -1; ob_type: 29; ob_flags: $0008; ob_state: $0000;ob_spec: (free_string: @TEDINFO_001);ob_x: 14; ob_y: 2; ob_width: 35; ob_height: 1)), (aes: (ob_next: 22; ob_head: -1; ob_tail: -1; ob_type: 29; ob_flags: $0008; ob_state: $0000;ob_spec: (free_string: @TEDINFO_001);ob_x: 14; ob_y: 3; ob_width: 35; ob_height: 1)), (aes: (ob_next: 23; ob_head: -1; ob_tail: -1; ob_type: 29; ob_flags: $0008; ob_state: $0000;ob_spec: (free_string: @TEDINFO_001);ob_x: 14; ob_y: 4; ob_width: 35; ob_height: 1)), (aes: (ob_next: 24; ob_head: -1; ob_tail: -1; ob_type: 29; ob_flags: $0008; ob_state: $0000;ob_spec: (free_string: @TEDINFO_001);ob_x: 14; ob_y: 5; ob_width: 35; ob_height: 1)), (aes: (ob_next: 25; ob_head: -1; ob_tail: -1; ob_type: 29; ob_flags: $0008; ob_state: $0000;ob_spec: (free_string: @TEDINFO_001);ob_x: 14; ob_y: 6; ob_width: 35; ob_height: 1)), (aes: (ob_next: 26; ob_head: -1; ob_tail: -1; ob_type: 29; ob_flags: $0008; ob_state: $0000;ob_spec: (free_string: @TEDINFO_001);ob_x: 14; ob_y: 7; ob_width: 35; ob_height: 1)), (aes: (ob_next: 27; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_010);ob_x: 1; ob_y: 6; ob_width: 12; ob_height: 1)), (aes: (ob_next: 28; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_014);ob_x: 1; ob_y: 5; ob_width: 6; ob_height: 1)), (aes: (ob_next: 16; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_009);ob_x: 1; ob_y: 4; ob_width: 11; ob_height: 1)), (acs :(ob_flags: $8020; key: $003a;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)) ); { WINDOWS } ADDRESS: Awindow = ( user: NIL; service: ad_service; create: ad_make; open: Awi_open; init: Awi_init; work: @DETAIL; ob_edit: -1; ob_col: -1; wi_id: -1; wi_kind: $0fff; wi_act: (x: 0; y: 0; w: 56; h: 21); wi_slider: (x: -1; y: -1; w: -1; h: -1); snap_mask: $fff8; name: @TEXT_032; info: @NULL_STRING; wi_type: $2710; kind: $0003; icon : -1; iconblk: NIL; menu: @TASKS; keys: Awi_keys; obchange: Awi_obchange; redraw: Awi_redraw; topped: Awi_topped; closed: Awi_closed; fulled: Awi_fulled; arrowed: Awi_arrowed; hslid: Awi_hslid; vslid: Awi_vslid; sized: Awi_sized; moved: Awi_moved); ACSdescr: Adescr = ( magic: 'ACS 2.0'#0; version: 200; dx: 0; dy: -4; flags: $000b; acc_reg: ' ACS ACCESSORY'#0' '; root: NIL; acc: NIL; mouse: ( (number: 0; form: NIL), (number: 2; form: NIL), (number: 3; form: NIL), (number: 4; form: NIL), (number: 1; form: NIL), (number: 5; form: NIL), (number: 6; form: NIL), (number: 7; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL)) ); StefanBachertBblingerstr 37W7038Holzgerlingen07031603663170660JuttaMaierKurtSchneiderAnystreetnHerbertOhnesorgKleiner WegRuthLeimerLange StrasseJrgenMllerPeterHimmelfahrtW0ZnNicoleKuckkuckRobertTeufelHelgaMussel{ Beispielapplikation fr ACS "Adressdatenbank" 27.09.91 Stefan Bachert (Pure C) 29.09.92 Michael Schlter (Pure Pascal) Letzte nderung: 01.01.93 } PROGRAM adress; { Programmname } {$X+} { Functionen knnen ohne Resultat aufgerufen werden } USES ACS, GEM, TOS; { bentigte Units } PROCEDURE ad_save; FORWARD; { Definitionen werden schon } PROCEDURE ad_leave; FORWARD; { in ADRESS.I gebraucht } PROCEDURE ad_next; FORWARD; PROCEDURE ad_prev; FORWARD; PROCEDURE ad_first; FORWARD; PROCEDURE ad_last; FORWARD; PROCEDURE ad_new; FORWARD; PROCEDURE ad_modify; FORWARD; PROCEDURE ad_delete; FORWARD; FUNCTION ad_service( window : AwindowPtr; task : INTEGER; in_out : POINTER) : BOOLEAN; FORWARD; FUNCTION ad_make( not_used: POINTER ): AwindowPtr; FORWARD; {$I ADRESS.I} { einladen der Definitionen } CONST { Vordefinierte Werte } LAENGE = 35; PLZ = 5; TOWN = 30; PHONE = 13; BIRTHDAY = 6; TYPE TRecordPtr = ^TRecord; TRecord = RECORD firstname : ARRAY[0..LAENGE] OF CHAR; lastname : ARRAY[0..LAENGE] OF CHAR; street : ARRAY[0..LAENGE] OF CHAR; plz : ARRAY[0..PLZ] OF CHAR; town : ARRAY[0..TOWN] OF CHAR; phone : ARRAY[0..PHONE] OF CHAR; birthday : ARRAY[0..BIRTHDAY] OF CHAR; hobby : ARRAY[0..LAENGE + LAENGE] OF CHAR; idea : ARRAY[0..LAENGE + LAENGE] OF CHAR; dont : ARRAY[0..LAENGE + LAENGE] OF CHAR; END; TLinkPtr = ^TLink; TLink = RECORD next : TLinkPtr; prev : TLinkPtr; ad_record : TRecordPtr; END; TAd_DbPtr = ^TAd_Db; TAd_Db = RECORD n : INTEGER; act_index : INTEGER; act : TLinkPtr; first : TLinkPtr; last : TLinkPtr; path : STRING; END; VAR path : STRING; { Zwischenspeicher fr den Pfad } proto : TRecord; { Falls keine Daten geladen werden } { ----------------------------------------------------------------- } { Nimmt die Auswahl der zu ladenden Datei vor (mit Dateiauswahlbox) } { ----------------------------------------------------------------- } FUNCTION fileselect : STRING; VAR name : STRING; { Name der Datei } button : INTEGER; { gedrckte Button } { * Lscht einen Dateinamen aus dem bergebenen Pfad * } PROCEDURE pfad_select_entf( VAR pfad : STRING ); VAR p : BYTE; { Buchstabenzhler } BEGIN p := LENGTH(pfad); { stelle Lnge des Pfades fest } WHILE ( pfad[p] <> '\' ) DO { Wiederhole bis '\' gefunden } DEC(p); { Nchstes Zeichen } pfad[0] := CHR(p); { Lnge anpassen } END; BEGIN pfad_select_entf(path); { Alten Dateinamen lschen } name := ''; { Kein Name vorwhlen } path := path + '*.ADB'; { Nur nach Datenbanken suchen } Aev_unhidepointer; { Der Mauszeiger wird wieder sichtbar } IF ((Fsel_input(path, name, button) = 0) OR (button = 0) OR (LENGTH(name) = 0)) THEN { Wenn kein Speicher fr Dateiauswahlbox } { oder Abbruch oder kein Dateiname } fileselect := '' { nichts zurckgeben } ELSE BEGIN IF ((LENGTH(name) = 9) AND (name[8] = '.')) THEN { Wenn Dateiname + '.' } name := name + 'ADB'; { dann Extension anhngen } IF (POS('.', name) = 0) THEN { Wenn kein '.' } name := name + '.ADB'; { dann Extension mit '.' anhngen } pfad_select_entf(path); { Pfad wieder zurckkrzen } fileselect := path + name; { Pfad mit Dateinamen zurckgeben } END; END; { ----------------------------------------------------------------- } { Daten in die Dialogbox eintragen } { ----------------------------------------------------------------- } PROCEDURE ad_set( window : AwindowPtr ); VAR user : TAd_DbPtr; { Pointer auf Userrec. einer Datenbank } xrekord : TRecordPtr; { Pointer auf einen Datensatz } work : AESTreePtr; { Pointer auf den Objectbaum } nr : STRING; { String fr Datensatznummer } BEGIN user := window^.user; { Pointer auf Userrecord holen } work := AESTreePtr(window^.work); { Pointer auf Objectbaum holen } IF (user^.act = NIL) THEN xrekord := @proto { Wenn keine DB geladen, dann leeren Datens. nehmen } ELSE xrekord := user^.act^.ad_record;{ Sonst aktuellen Datens. nehmen } STR(user^.act_index, nr); { Datensatznummer in String umwandeln } nr := ' ' + nr + ' '; { Leerzeichen einfgen } SetPtext(work, AD_INDEX, nr); { Und in den Objectrecord einbauen } { Daten aus dem Record in das Object kopieren: } Move(xrekord^.firstname, work^[AD_FIRSTNAME].ob_spec.ted_info^.te_ptext^, LAENGE); Move(xrekord^.lastname, work^[AD_LASTNAME].ob_spec.ted_info^.te_ptext^, LAENGE); Move(xrekord^.street, work^[AD_STREET].ob_spec.ted_info^.te_ptext^, LAENGE); Move(xrekord^.plz, work^[AD_PLZ].ob_spec.ted_info^.te_ptext^, PLZ); Move(xrekord^.town, work^[AD_TOWN].ob_spec.ted_info^.te_ptext^, TOWN); Move(xrekord^.phone, work^[AD_PHONE].ob_spec.ted_info^.te_ptext^, PHONE); Move(xrekord^.birthday, work^[AD_BIRTHDAY].ob_spec.ted_info^.te_ptext^, BIRTHDAY); Move(xrekord^.hobby, work^[AD_1HOBBY].ob_spec.ted_info^.te_ptext^, LAENGE); Move(xrekord^.hobby[LAENGE], work^[AD_2HOBBY].ob_spec.ted_info^.te_ptext^, LAENGE); Move(xrekord^.idea, work^[AD_1IDEA].ob_spec.ted_info^.te_ptext^, LAENGE); Move(xrekord^.idea[LAENGE], work^[AD_2IDEA].ob_spec.ted_info^.te_ptext^, LAENGE); Move(xrekord^.dont, work^[AD_1DONTS].ob_spec.ted_info^.te_ptext^, LAENGE); Move(xrekord^.dont[LAENGE], work^[AD_2DONTS].ob_spec.ted_info^.te_ptext^, LAENGE); Awi_diaend; { Textcursor entfernen } window^.OB_COL := -1; { Textcursor an letzte Position } window^.redraw(window, @window^.wi_work);{ Dialog updaten } Awi_diastart; { Textcursor darstellen } END; { ----------------------------------------------------------------- } { Daten aus der Dialogbox holen } { ----------------------------------------------------------------- } PROCEDURE ad_get(window : AwindowPtr); VAR user : TAd_DbPtr; { Pointer auf Userrec. einer Datenbank } xrekord : TRecordPtr; { Pointer auf einen Datensatz } work : AESTreePtr; { Pointer auf den Objectbaum } BEGIN user := window^.user; { Pointer auf Userrecord holen } work := AESTreePtr(window^.work); { Pointer auf Objectbaum holen } xrekord := user^.act^.ad_record; { Aktuellen Datensatz nehmen } Move(work^[AD_FIRSTNAME].ob_spec.ted_info^.te_ptext^, xrekord^.firstname, LAENGE); Move(work^[AD_LASTNAME].ob_spec.ted_info^.te_ptext^, xrekord^.lastname, LAENGE); Move(work^[AD_STREET].ob_spec.ted_info^.te_ptext^, xrekord^.street, LAENGE); Move(work^[AD_PLZ].ob_spec.ted_info^.te_ptext^, xrekord^.plz, PLZ); Move(work^[AD_TOWN].ob_spec.ted_info^.te_ptext^, xrekord^.town, TOWN); Move(work^[AD_PHONE].ob_spec.ted_info^.te_ptext^, xrekord^.phone, PHONE); Move(work^[AD_BIRTHDAY].ob_spec.ted_info^.te_ptext^, xrekord^.birthday, BIRTHDAY); Move(work^[AD_1HOBBY].ob_spec.ted_info^.te_ptext^, xrekord^.hobby, LAENGE); Move(work^[AD_2HOBBY].ob_spec.ted_info^.te_ptext^, xrekord^.hobby[LAENGE], LAENGE); Move(work^[AD_1IDEA].ob_spec.ted_info^.te_ptext^, xrekord^.idea, LAENGE); Move(work^[AD_2IDEA].ob_spec.ted_info^.te_ptext^, xrekord^.idea[LAENGE], LAENGE); Move(work^[AD_1DONTS].ob_spec.ted_info^.te_ptext^, xrekord^.dont, LAENGE); Move(work^[AD_2DONTS].ob_spec.ted_info^.te_ptext^, xrekord^.dont[LAENGE], LAENGE); END; { ----------------------------------------------------------------- } { Daten auf einen Datentrger sichen } { ----------------------------------------------------------------- } PROCEDURE ad_save; VAR user : TAd_DbPtr; { Pointer auf Userrec. einer Datenbank } datei : FILE OF TRecord; { Variable fr Dateihandling } link : TLinkPtr; { Record von Pointern auf Datenstze } BEGIN user := ev_window^.user; { Pointer auf User-Record holen } Assign(datei, copy(user^.path, 2, LENGTH(user^.path)-1)); { Datei zuweisen } {$I-} { berprfung auf IO-Fehler aus } Rewrite(datei); { Neue Datei - alte Daten lschen } {$I+} { berprfung auf IO-Fehler an } IF IOResult <> 0 THEN EXIT; { Wenn Fehler, dann Procedure beenden } link := user^.first; { Auf ersten Link setzten } WHILE (link <> NIL) DO { Wiederhole bis letzter Link } BEGIN Blockwrite(datei, link^.ad_record^, 1); { Datensatz auf Datentrger speichern } link := link^.next; { Zum nchsten Link } END; close(datei); { Datei wieder schlieen } END; { ----------------------------------------------------------------- } { Nchsten Datensatz anzeigen } { ----------------------------------------------------------------- } PROCEDURE ad_next; VAR user : TAd_DbPtr; { Pointer auf Userecord einer Datenb. } link : TLinkPtr; { Record von Pointer auf Datensatz } BEGIN user := ev_window^.user; { Userecord holen } link := user^.act; { Linkrecord holen } IF (link <> NIL) AND (link^.next <> NIL) THEN BEGIN { Wenn Link vorhanden und es einen nchsten DS gibt } INC(user^.act_index); { Indexnummer erhhen } user^.act := link^.next; { Nchste Datensatz ist nun aktuelle Datensatz } ad_set(ev_window); { Daten in das Object eintragen } END; END; { ----------------------------------------------------------------- } { Vorherigen Datensatz anzeigen } { ----------------------------------------------------------------- } PROCEDURE ad_prev; VAR user : TAd_DbPtr; { Pointer auf Userecord einer Datenb. } link : TLinkPtr; { Record von Pointer auf Datensatz } BEGIN user := ev_window^.user; { Userecord holen } link := user^.act; { Linkrecord holen } IF (link <> NIL) AND (link^.prev <> NIL) THEN BEGIN { Wenn Link vorhanden und es einen vorherigen DS gibt } DEC(user^.act_index); { Indexnummer erniedrigen } user^.act := link^.prev; { Vorherige Datensatz ist nun aktuelle Datensatz } ad_set(ev_window); { Daten in das Object eintragen } END; END; { ----------------------------------------------------------------- } { Ersten Datensatz anzeigen } { ----------------------------------------------------------------- } PROCEDURE ad_first; VAR user : TAd_DbPtr; { Pointer auf Userecord einer Datenb. } act : TLinkPtr; { Record von Pointer auf Datensatz } BEGIN user := ev_window^.user; { Userecord holen } act := user^.act; { Linkrecord holen } IF (act <> NIL) AND (act^.prev <> NIL) THEN BEGIN { Wenn Link vorhanden und nicht schon erster DS } user^.act_index := 1; { Indexnummer = 1 } user^.act := user^.first; { Erste Datensatz ist nun aktuelle Datensatz } ad_set(ev_window); { Daten in das Object eintragen } END; END; { ----------------------------------------------------------------- } { Letzten Datensatz anzeigen } { ----------------------------------------------------------------- } PROCEDURE ad_last; VAR user : TAd_DbPtr; { Pointer auf Userecord einer Datenb. } act : TLinkPtr; { Record von Pointer auf Datensatz } BEGIN user := ev_window^.user; { Userecord holen } act := user^.act; { Linkrecord holen } IF (act <> NIL) AND (act^.next <> NIL) THEN BEGIN { Wenn Link vorhanden und nicht schon letzter DS } user^.act_index := user^.n; { Indexnummer = letzte DSnummer } user^.act := user^.last; { Letzte Datensatz ist nun aktuelle Datensatz } ad_set(ev_window); { Daten in das Object eintragen } END; END; { ----------------------------------------------------------------- } { Neuen Datensatz eingeben } { ----------------------------------------------------------------- } PROCEDURE ad_new; VAR user : TAd_DbPtr; { Pointer auf Userrec. einer Datenbank } act, new : TLinkPtr; { Record von Pointer auf Datenstze } xrecord : TRecordPtr; { Pointer auf Datensatz } window : AwindowPtr; { Pointer auf Fensterrecord } BEGIN window := ev_window; { Fensterrecordpointer holen } user := window^.user; { Pointer auf User-Record holen } new := Ax_malloc(SizeOf(TLink)); { Speicher fr Link anfordern } IF new = NIL THEN EXIT; { Wenn kein freier Speicher -> abbruch } xrecord := Ax_malloc(SizeOf(TRecord));{ Speicher fr Datenrecord anfordern } IF xrecord = NIL THEN EXIT; { Wenn kein freier Speicher -> abbruch } act := user^.act; { Aktuellen Link holen } new^.ad_record := xrecord; { Adresse des Datensatzes sichern } user^.act := new; { Neue DS = aktuelle DS } INC(user^.act_index); { Erhhe den index } INC(user^.n); { Erhhe die Anzahl d. DS } new^.prev := act; { Aktuelle DS ist vorgnger des neuen DS } IF act = NIL THEN { Wenn kein aktueller DS dann ... } BEGIN user^.first := new; { Neuer DS = erster DS } user^.last := new; { " = letzter DS } new^.next := NIL; { Und kein nchster DS } END ELSE { Sonst ... } BEGIN new^.next := act^.next; { Nchster DS = nchster DS vom aktuellen DS } act^.next := new; { Nchste DS vom aktuellen DS = neuer DS } IF new^.next <> NIL THEN { Wenn es einen nchsten DS gibt ... } new^.next^.prev := new { Dann dort den neuen als vorgnger eintragen } ELSE { Sonst ... } user^.last := new; { Ist der neue DS = der letzte DS } END; ad_get(window); { Daten aus dem Object auslesen } ad_set(window); { Daten in Object eintragen und ausgeben } END; { ----------------------------------------------------------------- } { Vernderten Datensatz bernehmen } { ----------------------------------------------------------------- } PROCEDURE ad_modify; BEGIN ad_get(ev_window); { Daten aus Object auslesen } END; { ----------------------------------------------------------------- } { Datensatz lschen } { ----------------------------------------------------------------- } PROCEDURE ad_delete; VAR user : TAd_DbPtr; { Pointer auf Userrec. einer Datenbank } act, p, n : TLinkPtr; { Record von Pointern auf Datenstze } BEGIN user := ev_window^.user; { Pointer auf User-Record holen } act := user^.act; { Pointer auf aktuellen Link holen } IF act = NIL THEN EXIT; { Wenn kein DS mehr vorhanden } p := act^.prev; { Vorherigen Link holen } n := act^.next; { Nchsten Link holen } IF p = NIL THEN { Wenn kein vorheriger Link } user^.first := n { Dann der Nchste = der Erste } ELSE p^.next := n; { Sonst der Nchste = der Nchste } IF n = NIL THEN { Wenn kein nchste Link } BEGIN user^.last := p; { Der Letzte = Vorherige } user^.act := p; { Der Aktuelle = Vorherige } DEC(user^.act_index); { Index an aktuellen Datensatz anpassen } END ELSE BEGIN user^.act := n; { Der Aktuelle = der Nchste } n^.prev := p; { Der Vorherige = der Vorherige } END; DEC(user^.n); { Ein Datensatz weniger } Ax_free(act^.ad_record); { Speicher fr Record wieder freigeben } Ax_free(act); { Speicher fr Link wieder freigeben } Ad_set(ev_window); { Daten in Object eintragen und ausgeben } END; { ----------------------------------------------------------------- } { Ld die Daten einer Datenbank von einem Datentrger } { ----------------------------------------------------------------- } PROCEDURE load( window : AwindowPtr ); LABEL FEHLER; { Sprungmarke bei einem Fehler } VAR user : TAd_DbPtr; { Pointer auf Userrec. einer Datenbank } datei : FILE OF TRecord; { Variable fr Dateihandling } link, prev : TLinkPtr; { Record von Pointern auf Datenstze } xrecord : TRecordPtr; { Pointer auf Datensatz } loops : LONGINT; { Zwischenspeicher Anzahl d. Datenstze } BEGIN user := window^.user; { Pointer auf User-Record holen } user^.n := 0; { Enthlt bisher keinen Datens. } user^.act_index := 0; { Keinen aktueller Datensatz } user^.act := NIL; { Keinen aktuellen Datensatz } user^.first := NIL; { Keinen ersten Datensatz } user^.last := NIL; { Keinen letzten Datensatz } Assign(datei, copy(user^.path, 2, LENGTH(user^.path) - 1)); { Datei zuweisen } {$I-} { berprfung auf IO-Fehler aus } Reset(datei); { Datei ffnen } {$I+} { berprfung auf IO-Fehler an } IF IOResult <> 0 THEN EXIT; { Wenn Fehler, dann beende Procedure } prev := NIL; { Kein vorheriger Datensatz } loops := Filesize(datei); { Anzahl der Datenstze -> loops } WHILE ( user^.n < loops ) DO { Wiederhole bis alle Datenstze gelesen } BEGIN xrecord := Ax_malloc(SizeOf(TRecord)); { Speicher fr einen TRecord bereitst. } IF (xrecord = NIL) THEN GOTO FEHLER; { Wenn Fehler dann Schleife abbrechen } link := Ax_malloc(SizeOf(TLink));{ Speicher fr einen TLink bereitst. } IF (link = NIL) THEN GOTO FEHLER;{ Wenn Fehler dann Schleife abbrechen } BlockRead(datei, xrecord^, 1); { Lese Datensatz von Datentrger ein } INC(user^.n); { Erhhe Datensatzzhler } link^.ad_record := xrecord; { Adresse des Datensatzrecords abspeichern } IF (prev = NIL) THEN { Wenn erste Datensatz } user^.first := link { dann im user-Record abspeicher } ELSE prev^.next := link; { sonst in Pointerkette einreihen } link^.prev := prev; { vorherigen eintragen } prev := link; { aktuelle ist vorherige } END; FEHLER: { im Fehlerfall ist man hier richtig } IF (user^.n <> 0) THEN { Wenn mind. ein Datensatz geladen } BEGIN prev^.next := NIL; { kein nchster Datensatz } user^.last := prev; { letzte ist letzter Datensatz } user^.act_index := 1; { erste ist aktuelle Datensatz } user^.act := user^.first; { erste ist aktuelle Datensatz } END; Close(datei); { Schliee Datei } END; { ----------------------------------------------------------------- } { Beendet die Bearbeitung eines Datenbankfensters } { ----------------------------------------------------------------- } PROCEDURE term( window : AwindowPtr ); VAR user : TAd_DbPtr; { Pointer auf Userrec. einer Daten B. } link, temp : TLinkPtr; { Record von Pointern auf Datenstze } BEGIN user := window^.user; { Pointer auf User-Record holen } link := user^.first; { Erste Link eines Datensatz holen } while (link <> NIL) DO { Wiederhole bis keine Link mehr da } BEGIN temp := link^.next; { Nchsten Link zwischensp. } Ax_free(link^.ad_record); { Gebe Speicher eines Datens. frei } Ax_free(link); { Gebe Speicher eine Links frei } link := temp; { Zum nchsten Link } END; Ax_free(user); { User-Record freigeben } Awi_delete(window); { Fenster-Record freigeben } END; { ----------------------------------------------------------------- } { Ein Datenbankenfenster soll geschlossen werden } { ----------------------------------------------------------------- } PROCEDURE ad_leave; BEGIN term(ev_window); { Lsche Adr. Datenbank mit Fenster } END; { ----------------------------------------------------------------- } { Routine, die die Nachrichten vom ACS bearbeitet } { ----------------------------------------------------------------- } FUNCTION ad_service( window : AwindowPtr; task : INTEGER; in_out : POINTER) : BOOLEAN; BEGIN CASE task OF AS_TERM: term(window); { Fenster soll geschlossen werden } ELSE BEGIN ad_service := FALSE; { Message nicht bearbeitet } EXIT; END; END; ad_service := TRUE; { Message wurde bearbeitet } END; { ----------------------------------------------------------------- } { ffne ein Fenster und was sonst noch gemacht werden mu } { ----------------------------------------------------------------- } FUNCTION ad_make( not_used : POINTER ): AwindowPtr; VAR p : STRING; wi : AwindowPtr; user : TAd_DbPtr; BEGIN p := fileselect; { Datei auswhlen } IF (LENGTH(p) <> 0) THEN { Wenn eine Datei ausgewhlt } BEGIN user := Ax_malloc(SizeOf(TAd_Db)); { Speicher fr Userblockrec. bereitstellen } IF (user = NIL) THEN ad_make := NIL { Kein Speicher bekommen } ELSE BEGIN wi := Awi_create(@ADDRESS); { Fenster wird erzeugt } IF (wi = NIL) THEN ad_make := NIL { Fehler beim Erzeugen } ELSE BEGIN wi^.user := user; { Userblockrec. in Windowrec. sichern } user^.path := ' ' + p + CHR(0); { Pfad in Userblockrec. sichern (C-Spez.)} Ast_delete(wi^.info); { Alten Infotext lschen } wi^.info := Ast_create(@user^.path[1]); { Neuen Infotext erzeugen } { Pfad soll Infotext im Fenster sein } load(wi); { Daten laden } ad_set(wi); { Daten in den Dialog einsetzen } wi^.open(wi); { Fenster gleich ffnen } ad_make := wi; { Adresse d. Windowrecords zurckgeben } END; END; END ELSE ad_make := NIL; { Keine Datei ausgewhlt } END; { ----------------------------------------------------------------- } { Initialisieren der Applikation } { ----------------------------------------------------------------- } FUNCTION init_acs: INTEGER; VAR wi : AwindowPtr; { Erzeuge einen Pointer auf Awindow } akt_path : STRING; { Zwischenspeichern des akt. Pfades } BEGIN { ** Erstmal den aktuellen Pfad ermitteln und sichern ** } path := 'A:'; { Laufwerk vorgeben } path[1] := CHR(ORD(path[1]) + Dgetdrv); { Akt. Laufwerk ermitteln } Dgetpath(akt_path, 0); { Akt. Pfad ermitteln } IF (LENGTH(akt_path) = 0) THEN { Wenn kein Pfad zurckgegeben } akt_path := '\'; { dann nehmen wir den Obersten } path := path + akt_path; { Und in die globale Variable kopieren } { ** Nun das Root-Window mit der Create-Routine anmelden ** } wi := Awi_root; { Hole Pointer auf Rootwindow } IF (wi <> NIL) THEN { Zeiger OK? } BEGIN wi^.service (wi, AS_NEWCALL, @@ADDRESS.create); { Routine fr Neu-Ikon einsetzten } init_acs := OK; { Alles richtig gelaufen } END ELSE init_acs := FAIL; { Fehler aufgetreten } END; BEGIN { Programmstart } start_acs(init_acs, @ACSdescr); { ACS starten } END. { Programmende } = { 14, -1, -1, 28, 0x0, 0x0, (long) TEXT_002 , 14, 4, 12, 1 }; static OBJECT _14_WATCH = { 15, -1, -1, 28, 0x0, 0x0, (long) TEXT_002 , 14, 5, 12, 1 }; static OBJECT _15_WATCH = { 1{ This file was created with ACS 2.0 (c) Stefan Bachert 1991, 1992 The contents are based on file: F:\PASCAL\ACS2\FERTIG\AUF\AUF.ACS compiled at: Thu Jan 07 21:38:10 1993 } { Pascal Prototypes } Procedure auf_add; Procedure auf_sub; Procedure call_ok; Function hello_make (para: Pointer): AwindowPtr; Const { STRINGS } TEXT_001: packed array [1..9] of char = '00000000'#0; TEXT_002: packed array [1..14] of char = ' HELLO WORLD '#0; TEXT_003: packed array [1..1] of char = (#0); TEXT_005: packed array [1..6] of char = 'HELLO'#0; TEXT_006: packed array [1..3] of char = 'OK'#0; TEXT_01: packed array [1..9] of char = 'ACS 2.00'#0; TEXT_02: packed array [1..21] of char = '(C) 1991, 1992, 1993'#0; TEXT_03: packed array [1..5] of char = ' OK '#0; TEXT_222: packed array [1..15] of char = 'Stefan Bachert'#0; TEXT_244: packed array [1..6] of char = 'Autor'#0; { TEDINFOS } TEDINFO_01: TEDINFO = (te_ptext: @TEXT_01; te_ptmplt: @TEXT_003; te_pvalid: @TEXT_003; te_font: 3; te_just: 2; te_color: $1071; te_thickness: -1; te_txtlen: 9; te_tmplen: 1); { AUSERBLK } A_3DBUTTON02: AUSERBLK = (ub_code: A_3Dbutton; ub_parm: $21111108; ub_serv: Auo_string; ub_ptr1: @TEXT_03; ub_ptr2: NIL; ub_ptr3: NIL); { IMAGES } _IMG_SUNRISE: array [0..71] of WORD = ( $0000, $0000, $0000, $0000, $2110, $0000, $0000, $2110, $3700, $0001, $1020, $4880, $6c00, $8782, $3700, $1000, $1864, $0000, $000c, $2010, $c000, $0002, $4009, $0000, $0000, $4008, $0000, $0000, $8004, $0000, $000e, $8005, $c000, $0000, $8004, $0000, $0000, $8004, $0000, $3f1c, $7878, $70f0, $00e3, $8787, $8f0c, $fe18, $0000, $0000, $01e7, $3870, $3c60, $0000, $0787, $c39f, $fe1c, $0000, $0000, $01e3, $9ce0, $e1e0, $0000, $030f, $1e1f, $0f07, $e000, $70c0, $30f8, $0ccf, $8f3c, $0000, $0300, $0000); SUNRISE: BITBLK = (bi_pdata: @_IMG_SUNRISE; bi_wb: 6; bi_hl: 24; bi_x: 0; bi_y: 0; bi_color: 1); { OBJECT TREES } ABOUT_ME : Array [0 .. 7] of ACSOBJECT = ( (aes: (ob_next: -1; ob_head: 1; ob_tail: 6; ob_type: 20; ob_flags: $0000; ob_state: $0010;ob_spec: (index: $00021100);ob_x: 0; ob_y: 0; ob_width: 28; ob_height: 10)), (aes: (ob_next: 2; ob_head: -1; ob_tail: -1; ob_type: 22; ob_flags: $2040; ob_state: $0010;ob_spec: (free_string: @TEDINFO_01);ob_x: 2; ob_y: 1; ob_width: 24; ob_height: 1)), (aes: (ob_next: 3; ob_head: -1; ob_tail: -1; ob_type: 23; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @SUNRISE);ob_x: 2; ob_y: 4; ob_width: 6; ob_height: 2)), (aes: (ob_next: 4; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_244);ob_x: 12; ob_y: 5; ob_width: 5; ob_height: 1)), (aes: (ob_next: 5; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_222);ob_x: 7; ob_y: 6; ob_width: 14; ob_height: 1)), (aes: (ob_next: 6; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_02);ob_x: 4; ob_y: 3; ob_width: 20; ob_height: 1)), (aes: (ob_next: 0; ob_head: -1; ob_tail: -1; ob_type: 24; ob_flags: $0007; ob_state: $0010;ob_spec: (free_string: @A_3DBUTTON02);ob_x: 11; ob_y: 8; ob_width: 6; ob_height: 1)), (acs :(ob_flags: $8020; key: $8818;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)) ); ZAHL = 8; AUF : Array [0 .. 8] of ACSOBJECT = ( (aes: (ob_next: -1; ob_head: 1; ob_tail: 8; ob_type: 20; ob_flags: $0000; ob_state: $0000;ob_spec: (index: $00001100);ob_x: 0; ob_y: 0; ob_width: 25; ob_height: 7)), (aes: (ob_next: 3; ob_head: -1; ob_tail: -1; ob_type: 26; ob_flags: $0005; ob_state: $0000;ob_spec: (free_string: @TEXT_006);ob_x: 8; ob_y: 3; ob_width: 8; ob_height: 2)), (acs :(click: call_ok; ob_flags: $8000; key: $000b;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)), (aes: (ob_next: 5; ob_head: -1; ob_tail: -1; ob_type: 27; ob_flags: $0040; ob_state: $0000;ob_spec: (index: $01ff1101);ob_x: 18; ob_y: 1; ob_width: 4; ob_height: 1)), (acs :(click: auf_add; ob_flags: $8000; key: $8048;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)), (aes: (ob_next: 7; ob_head: -1; ob_tail: -1; ob_type: 27; ob_flags: $0040; ob_state: $0000;ob_spec: (index: $02ff1101);ob_x: 2; ob_y: 1; ob_width: 4; ob_height: 1)), (acs :(click: auf_sub; ob_flags: $8000; key: $8050;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)), (aes: (ob_next: 8; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_005);ob_x: 1; ob_y: 3; ob_width: 6; ob_height: 1)), (aes: (ob_next: 0; ob_head: -1; ob_tail: -1; ob_type: 26; ob_flags: $0020; ob_state: $0000;ob_spec: (free_string: @TEXT_001);ob_x: 6; ob_y: 1; ob_width: 12; ob_height: 1)) ); { WINDOWS } HELLO: Awindow = ( user: NIL; service: Awi_service; create: hello_make; open: Awi_open; init: Awi_init; work: @AUF; ob_edit: -1; ob_col: -1; wi_id: -1; wi_kind: $000b; wi_act: (x: 0; y: 0; w: 34; h: 14); wi_slider: (x: -1; y: -1; w: -1; h: -1); snap_mask: $fff0; name: @TEXT_002; info: @TEXT_003; wi_type: $2710; kind: $0003; icon : -1; iconblk: NIL; menu: NIL; keys: Awi_keys; obchange: Awi_obchange; redraw: Awi_redraw; topped: Awi_topped; closed: Awi_closed; fulled: Awi_fulled; arrowed: Awi_arrowed; hslid: Awi_hslid; vslid: Awi_vslid; sized: Awi_sized; moved: Awi_moved); ACSdescr: Adescr = ( magic: 'ACS 2.0'#0; version: 200; dx: -4; dy: -4; flags: $0013; acc_reg: ' HELLO WORLD'#0' '; root: NIL; acc: NIL; mouse: ( (number: 0; form: NIL), (number: 2; form: NIL), (number: 3; form: NIL), (number: 4; form: NIL), (number: 1; form: NIL), (number: 5; form: NIL), (number: 6; form: NIL), (number: 7; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL)) ); implementation { Pascal Routines } { 'auf_add' Not defined yet by user } { 'auf_sub' Not defined yet by user } { 'call_ok' Not defined yet by user } { 'hello_make' Not defined yet by user } ] = chr * gl_wbox + ev_window-> wi_work. x; pxy [1] = pxy [3] = ch * gl_hbox + ev_window-> wi_work. y; pxy [0] += gl_wbox - 1; pxy [1] += gl_hbox - 1; Amo_hide (); vswr_mode (vdi_handle, MD_XOR); vsf_interior (vdi_handle, FIS_SOLID); vsf_color (vdi_handle, BLACK); v_bar (vdi_handle, pxy); /* Invert */ chr += (ch << 5); if (wi != NULL) { /* ei.ACS(    ACS 1.0d HELLO WORLDYO3O3H0x21111108L--`ABOUT_MEc   @  ,ALERT LISTE+*+tPPAUFD_001o3$ @"H@#P! *+ A_3DBUTTON02*vA_3Dbutton*,Auo_string)DATA LIST)) FENSTER LISTEO3 (( HELLO_001b SO#t% "'(b ICON LISTE( (V IMAGE LIST' MAUSFORM LISTE'xMENU LISTEO3''hOBJECT LISTEO3&POPUP LISTEO3&f&REFERENZ LISTEO3:"#$%%v%SUNRISE$ !!7 Hl7d @ @?xxp㇇ 8p<`ßp0 Ϗ<% %jTEDINFO LISTE$$TEDINFO_01q $8$((TEXT LISTE#$& TEXT_001_______________________00000000#|#TEXT_002 "UUT@5UUUV? HELLO WORLD #(#rTEXT_003UUT5UUUV?"#TEXT_005UUSHELLO"z"TEXT_006@@0@0@ h TOK""h TEXT_01ACS 2.00!"TEXT_02(C) 1991, 1992, 1993!^!TEXT_03 OK  !FTEXT_222^X!Stefan Bachert  TEXT_244Autor N USERBLK LISTE !ZAHLh.F %"auf_addP4-2Қp#auf_sub 8؀ p$call_ok%hello_make{ UNIT AUFM ab for PurePascal (c) 1992 Stefan Bachert berarbeitet von Michael Schlter (@SL) Letzte nderung: 07.01.1993 } UNIT aufm; INTERFACE USES GEM, ACS; {$I AUF.I} PROCEDURE auf_add; var z, res : INTEGER; p : POINTER; st : STRING; BEGIN getFreestring(AESTreePtr(ev_object), ZAHL, st); VAL(st, z, res); z := z + 1; STR(z, st); setFreestring(AESTreePtr(ev_object), ZAHL, st); ev_window^. obchange (ev_window, ZAHL, -1); END; PROCEDURE auf_sub; VAR z, res : INTEGER; p : POINTER; st : STRING; BEGIN getFreestring(AESTreePtr(ev_object), ZAHL, st); VAL(st, z, res); z := z - 1; STR(z, st); setFreestring(AESTreePtr(ev_object), ZAHL, st); ev_window^. obchange (ev_window, ZAHL, -1); END; PROCEDURE call_ok; BEGIN A_dialog (@About_me); END; FUNCTION hello_make (para: Pointer): AwindowPtr; VAR wi : AwindowPtr; BEGIN wi := Awi_create (@HELLO); IF wi <> NIL THEN BEGIN setFreestring(AESTreePtr(wi^.work), ZAHL, '0'); wi^. open (wi); END; hello_make := wi; END; BEGIN END.#0' '; root: NIL; acc: NIL; mouse: ( (number: 0; form: NIL), (number: 2; form: NIL), (number: 3; form: NIL), (number: 4; form: NIL), (number: 1; form: NIL), (number: 5; form: NIL), (number: 6; form: NIL), (number: 7; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL)) ); { ACS-Beispielprogramm "AUF" berarbeitet vom Michael Schlter (@SL) Letzte Bearbeitung: 01.01.1993 } PROGRAM auf_ab; {$X+} USES ACS, AUFM; FUNCTION init_acs: INTEGER; VAR wi : AwindowPtr; BEGIN wi := Awi_root; { root window } IF (wi <> NIL) THEN BEGIN wi^.service (wi, AS_NEWCALL, @@HELLO.create); wi := @HELLO; wi^.create (NIL); { sofort ein Fenster erzeugen } init_acs := OK; END ELSE BEGIN init_acs := FAIL; END; END; PROCEDURE mein; BEGIN HELLO.create (NIL); END; BEGIN { ACS } ACSblk^. ACSaboutme := mein; { eigenes aboutme } start_acs (init_acs, @ACSdescr); END.KurtSchneiderAnystreetn Beispiel "AUF & UP" =================== Dieses Programmier-Beispiel zeigt wie man: - click-Routinen - drag-Routinen - Service-Routinen - Dialogen umgeht. Funktionsumfang =============== Neues Fenster - Doppelklick auf NEU-Icon Erhhen - Maus auf Pfeil hoch drcken - Cursor up Verringern - Maus auf Pfeil runter drcken - Cursor down Neuer Wert - Doppelklick auf den Wert - NEU-Icon auf Fensterziehen - Taste drcken Wert ziehen - Von einem Fenster auf ein anderes ziehen - Vom Fenster auf ein iconifiziertes Fenster Wert lschen - Den Wert auf den Papierkorb ziehen Info zeigen - Info der Menleiste About me _ Menleiste it_acs: INTEGER; VAR wi : AwindowPtr; { Erzeuge einen Pointer auf Awindow } akt_path : STRING; { Zwischenspeichern des akt. Pfades } BEGIN { ** Erstmal den aktuellen Pfad ermitteln und sichern ** } path := 'A:'; { Laufwerk vorgeben } path[1] := CHR(ORD(path[1{ This file was created with ACS 2.0 (c) Stefan Bachert 1991, 1992 The contents are based on file: F:\PASCAL\ACS2\FERTIG\AUF_AB\AUF_AB.ACS compiled at: Thu Jan 07 21:45:08 1993 } { Pascal Prototypes } Procedure frage; Procedure hoch; Procedure neuer_wert; Procedure runter; Procedure tasten (wi: AwindowPtr; kstate, key: Integer); Function updown_make (para: Pointer): AwindowPtr; Function updown_service (wi: AwindowPtr; task: Integer; in_out: Pointer): Boolean; Const { STRINGS } TEXT_001: packed array [1..4] of char = '123'#0; TEXT_002: packed array [1..4] of char = '___'#0; TEXT_003: packed array [1..4] of char = 'NNN'#0; TEXT_004: packed array [1..11] of char = ' AUF & AB '#0; TEXT_005: packed array [1..1] of char = (#0); TEXT_006: packed array [1..12] of char = 'Information'#0; TEXT_007: packed array [1..3] of char = 'OK'#0; TEXT_009: packed array [1..27] of char = 'innerhalb ACS programmiert'#0; TEXT_01: packed array [1..8] of char = 'Abbruch'#0; TEXT_010: packed array [1..6] of char = 'wird.'#0; TEXT_011: packed array [1..28] of char = 'Die Pfeilobjekte und Tasten'#0; TEXT_012: packed array [1..25] of char = 'zhlen hoch bzw. runter.'#0; TEXT_013: packed array [1..25] of char = 'Der Wert kann auf andere'#0; TEXT_014: packed array [1..24] of char = 'Fenster gezogen werden.'#0; TEXT_015: packed array [1..12] of char = 'Neuer Wert:'#0; TEXT_017: packed array [1..26] of char = 'Dies ist ein Beispiel wie'#0; { TEDINFOS } TEDINFO_002: TEDINFO = (te_ptext: @TEXT_001; te_ptmplt: @TEXT_002; te_pvalid: @TEXT_003; te_font: 3; te_just: 2; te_color: $1180; te_thickness: -1; te_txtlen: 4; te_tmplen: 4); TEDI_001: TEDINFO = (te_ptext: @TEXT_001; te_ptmplt: @TEXT_005; te_pvalid: @TEXT_005; te_font: 5; te_just: 2; te_color: $1180; te_thickness: -1; te_txtlen: 4; te_tmplen: 1); TEDI_002: TEDINFO = (te_ptext: @TEXT_006; te_ptmplt: @TEXT_005; te_pvalid: @TEXT_005; te_font: 3; te_just: 2; te_color: $1071; te_thickness: -1; te_txtlen: 12; te_tmplen: 1); { AUSERBLK } A_3DBUTTON01: AUSERBLK = (ub_code: A_3Dbutton; ub_parm: $21011108; ub_serv: Auo_string; ub_ptr1: @TEXT_007; ub_ptr2: NIL; ub_ptr3: NIL); A_3DBUTTON02: AUSERBLK = (ub_code: A_3Dbutton; ub_parm: $29111108; ub_serv: Auo_string; ub_ptr1: @TEXT_007; ub_ptr2: NIL; ub_ptr3: NIL); A_3DBUTTON03: AUSERBLK = (ub_code: A_3Dbutton; ub_parm: $29111108; ub_serv: Auo_string; ub_ptr1: @TEXT_01; ub_ptr2: NIL; ub_ptr3: NIL); { OBJECT TREES } ABOUT_ME : Array [0 .. 6] of ACSOBJECT = ( (aes: (ob_next: -1; ob_head: 1; ob_tail: 5; ob_type: 20; ob_flags: $0000; ob_state: $0010;ob_spec: (index: $00021100);ob_x: 0; ob_y: 0; ob_width: 32; ob_height: 10)), (aes: (ob_next: 2; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_017);ob_x: 3; ob_y: 4; ob_width: 26; ob_height: 1)), (aes: (ob_next: 3; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_009);ob_x: 3; ob_y: 5; ob_width: 26; ob_height: 1)), (aes: (ob_next: 4; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_010);ob_x: 3; ob_y: 6; ob_width: 26; ob_height: 1)), (aes: (ob_next: 5; ob_head: -1; ob_tail: -1; ob_type: 22; ob_flags: $2040; ob_state: $0010;ob_spec: (free_string: @TEDI_002);ob_x: 2; ob_y: 1; ob_width: 28; ob_height: 1)), (aes: (ob_next: 0; ob_head: -1; ob_tail: -1; ob_type: 24; ob_flags: $0007; ob_state: $0010;ob_spec: (free_string: @A_3DBUTTON02);ob_x: 13; ob_y: 8; ob_width: 6; ob_height: 1)), (acs :(ob_flags: $8020; key: $8818;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)) ); VALUE = 6; AUF_AB : Array [0 .. 7] of ACSOBJECT = ( (aes: (ob_next: -1; ob_head: 2; ob_tail: 6; ob_type: 20; ob_flags: $1800; ob_state: $0000;ob_spec: (index: $00001101);ob_x: 0; ob_y: 0; ob_width: 16; ob_height: 3)), (acs :(drag: neuer_wert; ob_flags: $8000; key: $0000;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)), (aes: (ob_next: 4; ob_head: -1; ob_tail: -1; ob_type: 27; ob_flags: $0040; ob_state: $0020;ob_spec: (index: $01ff1101);ob_x: 2; ob_y: 1; ob_width: 2; ob_height: 1)), (acs :(click: hoch; ob_flags: $8000; key: $8048;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)), (aes: (ob_next: 6; ob_head: -1; ob_tail: -1; ob_type: 27; ob_flags: $0040; ob_state: $0020;ob_spec: (index: $02ff1101);ob_x: 12; ob_y: 1; ob_width: 2; ob_height: 1)), (acs :(click: runter; ob_flags: $8000; key: $8050;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)), (aes: (ob_next: 0; ob_head: -1; ob_tail: -1; ob_type: 22; ob_flags: $2004; ob_state: $0020;ob_spec: (free_string: @TEDI_001);ob_x: 6; ob_y: 1; ob_width: 4; ob_height: 1)), (acs :(click: frage; ob_flags: $8020; key: $0000;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: NUM_STRING)) ); INFOBOX : Array [0 .. 7] of ACSOBJECT = ( (aes: (ob_next: -1; ob_head: 1; ob_tail: 6; ob_type: 20; ob_flags: $0000; ob_state: $0010;ob_spec: (index: $00021100);ob_x: 0; ob_y: 0; ob_width: 32; ob_height: 13)), (aes: (ob_next: 2; ob_head: -1; ob_tail: -1; ob_type: 26; ob_flags: $0000; ob_state: $0011;ob_spec: (free_string: @TEXT_006);ob_x: 2; ob_y: 1; ob_width: 28; ob_height: 1)), (aes: (ob_next: 3; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_011);ob_x: 3; ob_y: 4; ob_width: 27; ob_height: 1)), (aes: (ob_next: 4; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_012);ob_x: 3; ob_y: 5; ob_width: 25; ob_height: 1)), (aes: (ob_next: 5; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_013);ob_x: 3; ob_y: 6; ob_width: 26; ob_height: 1)), (aes: (ob_next: 6; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_014);ob_x: 3; ob_y: 7; ob_width: 26; ob_height: 1)), (aes: (ob_next: 0; ob_head: -1; ob_tail: -1; ob_type: 24; ob_flags: $0007; ob_state: $0010;ob_spec: (free_string: @A_3DBUTTON01);ob_x: 13; ob_y: 10; ob_width: 7; ob_height: 2)), (acs :(ob_flags: $8020; key: $8818;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)) ); DIA_VAL = 3; DIA_OK = 6; NEU_DIA : Array [0 .. 7] of ACSOBJECT = ( (aes: (ob_next: -1; ob_head: 1; ob_tail: 6; ob_type: 20; ob_flags: $0000; ob_state: $0010;ob_spec: (index: $00ff1100);ob_x: 0; ob_y: 0; ob_width: 24; ob_height: 6)), (aes: (ob_next: 2; ob_head: -1; ob_tail: -1; ob_type: 20; ob_flags: $2040; ob_state: $0000;ob_spec: (index: $00ff1121);ob_x: 0; ob_y: 0; ob_width: 24; ob_height: 1)), (aes: (ob_next: 3; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_015);ob_x: 3; ob_y: 2; ob_width: 11; ob_height: 1)), (aes: (ob_next: 4; ob_head: -1; ob_tail: -1; ob_type: 29; ob_flags: $0008; ob_state: $0000;ob_spec: (free_string: @TEDINFO_002);ob_x: 16; ob_y: 2; ob_width: 3; ob_height: 1)), (aes: (ob_next: 6; ob_head: -1; ob_tail: -1; ob_type: 24; ob_flags: $0005; ob_state: $0010;ob_spec: (free_string: @A_3DBUTTON03);ob_x: 14; ob_y: 4; ob_width: 8; ob_height: 1)), (acs :(ob_flags: $8000; key: $881e;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)), (aes: (ob_next: 0; ob_head: -1; ob_tail: -1; ob_type: 24; ob_flags: $0007; ob_state: $0010;ob_spec: (free_string: @A_3DBUTTON02);ob_x: 2; ob_y: 4; ob_width: 8; ob_height: 1)), (acs :(ob_flags: $8020; key: $8818;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)) ); { WINDOWS } FENSTER: Awindow = ( user: NIL; service: updown_service; create: updown_make; open: Awi_open; init: Awi_init; work: @AUF_AB; ob_edit: -1; ob_col: -1; wi_id: -1; wi_kind: $000b; wi_act: (x: 0; y: 0; w: 34; h: 14); wi_slider: (x: -1; y: -1; w: -1; h: -1); snap_mask: $f0f0; name: @TEXT_004; info: @TEXT_005; wi_type: $2710; kind: $0013; icon : -1; iconblk: NIL; menu: NIL; keys: tasten; obchange: Awi_obchange; redraw: Awi_redraw; topped: Awi_topped; closed: Awi_closed; fulled: Awi_fulled; arrowed: Awi_arrowed; hslid: Awi_hslid; vslid: Awi_vslid; sized: Awi_sized; moved: Awi_moved); ACSdescr: Adescr = ( magic: 'ACS 2.0'#0; version: 200; dx: -4; dy: -4; flags: $001b; acc_reg: ' ACS ACCESSORY'#0' '; root: NIL; acc: NIL; mouse: ( (number: 0; form: NIL), (number: 2; form: NIL), (number: 3; form: NIL), (number: 4; form: NIL), (number: 1; form: NIL), (number: 5; form: NIL), (number: 6; form: NIL), (number: 7; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL)) ); implementation { Pascal Routines } { 'frage' Not defined yet by user } { 'hoch' Not defined yet by user } { 'neuer_wert' Not defined yet by user } { 'runter' Not defined yet by user } { 'tasten' Not defined yet by user } { 'updown_make' Not defined yet by user } { 'updown_service' Not defined yet by user } root: NIL; acc: NIL; mouse: ( (number: 0; form: NIL), (number: 2; form: NIL), (number: 3; form: NIL), (number: 4; form: NIL), (number: 1; form: NIL), (number: 5; form: NIL), (number: 6; form: NIL), (number: 7; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form{ Beispielapplikation fr ACS "AUF_AB" 27.09.91 Stefan Bachert (Pure C) 01.01.93 Michael Schlter (Pure Pascal) Letzte nderung: 02.01.93 } PROGRAM auf_ab; {$X+} USES ACS, AUF_ABM; { ----------------------------------------------------------------- } { ACS Initialisieren und NEU-Ikon auf den Desktop legen } { ----------------------------------------------------------------- } FUNCTION init_acs: INTEGER; VAR wi : AwindowPtr; BEGIN wi := Awi_root; { Root window } IF (wi <> NIL) THEN { Wenn alles klar } BEGIN wi^.service (wi, AS_NEWCALL, @@FENSTER.create); init_acs := OK; { NEU-Ikon angelegt } END ELSE BEGIN init_acs := FAIL; { Das ging daneben } END; END; { ----------------------------------------------------------------- } { Ersetzt About_me Dialogbox } { ----------------------------------------------------------------- } PROCEDURE mein; BEGIN A_dialog(@ABOUT_ME); { Gebe Dialogbox aus } END; { ----------------------------------------------------------------- } { Hauptprogramm } { ----------------------------------------------------------------- } BEGIN { ACS } ACSblk^. ACSaboutme := mein; { eigenes aboutme } start_acs (init_acs, @ACSdescr); { und los } END. *+ A_3DBUTTON02*vA_3Dbutton*,Auo_string)DATA LIST)) FENSTER LISTEO3 (( HELLO_001b SO#t% "'(b ICON LISTE( (V IMAGE LIST{ UNIT AUFM ab for PurePascal (c) 1992 Stefan Bachert berarbeitet von Michael Schlter (@SL) Letzte nderung: 07.01.1993 } UNIT auf_abm; {$X+} INTERFACE USES GEM, ACS; CONST NUM_STRING = 12345; { TYP des Objektes } {$I AUF_AB.I} { Lade ACS-File ein } { ----------------------------------------------------------------- } { Macht nderung sichtbar } { ----------------------------------------------------------------- } PROCEDURE update; BEGIN ev_window^.obchange(ev_window, VALUE, ev_window^.work^[VALUE].aes.ob_state); { Das Object VALUE wir neu gezeichnet, da sich ob_state nicht ndert } END; { ----------------------------------------------------------------- } { Zhlt den Wert hoch } { ----------------------------------------------------------------- } PROCEDURE hoch; var z, res : INTEGER; p : POINTER; st : STRING; BEGIN GetPText(AESTreePtr(ev_object), VALUE, st); { Zahlenstring auslesen } VAL(st, z, res); { In INTEGER umwandeln } IF z < 999 THEN { Wert darf 999 nicht berschreiten } BEGIN INC(z); { Um 1 erhhen } STR(z, st); { INTEGER in STRING umwandeln } SetPText(AESTreePtr(ev_object), VALUE, st); { Zahlenstring in Object schreiben } update; { nderung sichtbar machen } END; END; { ----------------------------------------------------------------- } { Zhlt den Wert runter } { ----------------------------------------------------------------- } PROCEDURE runter; var z, res : INTEGER; p : POINTER; st : STRING; BEGIN GetPText(AESTreePtr(ev_object), VALUE, st); { Zahlenstring auslesen } VAL(st, z, res); { In INTEGER umwandeln } IF z > 0 THEN { Wert darf 1 nicht unterschreiten } BEGIN DEC(z); { Um 1 verringern } STR(z, st); { INTEGER in STRING umwandeln } SetPText(AESTreePtr(ev_object), VALUE, st); { Zahlenstring in Object schreiben } update; { nderung sichtbar machen } END; END; { ----------------------------------------------------------------- } { Erfrage neuen Wert } { ----------------------------------------------------------------- } PROCEDURE neuer(window : AWindowPtr); VAR dia : ACSTreePtr; st : STRING; BEGIN dia := Aob_create(@NEU_DIA); { Erzeuge Dialog } IF dia <> NIL THEN { Wenn Ok dann } BEGIN GetPText(AESTreePtr(window^.work), VALUE, st); { Lese akt. Zahlenwert aus } SetPText(AESTreePtr(dia), DIA_VAL, st); { Trage Zahlenwert ein } IF DIA_OK = A_dialog(dia) THEN { Dialog abarbeiten } BEGIN { Wenn OK-Button } GetPText(AESTreePtr(dia), DIA_VAL, st); { Lese Zahlenwert aus Dialogbox } SetPText(AESTreePtr(window^.work), VALUE, st); { und trage in auf-ab ein } window^.obchange(window, VALUE, window^.work^[VALUE].aes.ob_state); { nderung sichtbar machen } END; Aob_delete(dia); { Dialog wieder freigeben } END END; { ----------------------------------------------------------------- } { Frage nach Wert } { ----------------------------------------------------------------- } PROCEDURE frage; BEGIN neuer(ev_window); END; { ----------------------------------------------------------------- } { Frage nach Wert } { ----------------------------------------------------------------- } PROCEDURE tasten(wi: AwindowPtr; kstate, key: Integer); BEGIN neuer(wi); END; { ----------------------------------------------------------------- } { Empfngt Wert } { ----------------------------------------------------------------- } PROCEDURE hole_wert(window: AWindowPtr); VAR nr : INTEGER; st : STRING; BEGIN Aselect^.next := 0; { Erste Objekt der Liste lesen } nr := Adr_next; { Selektiertes Objekt ermitteln } IF nr >= 0 THEN { Wenn ein Objekt selektiert } BEGIN IF Aselect^.window^.work^[nr + 1].acs.aob_type = NUM_STRING THEN { Wenn Objekt ein NUM_STRING } IF Aselect^.window <> window THEN { Wenn nicht auf das gleiche Fenster } BEGIN GetPText(AESTreePtr(Aselect^.window^.work), nr, st); { Lese Zahlenstring aus 'von' Objekt } SetPText(AESTreePtr(window^.work), VALUE, st); { Schreibe Zahlenstring in 'nach' Objekt } Adr_del(Aselect^.window, nr); { Lsche Objekt aus der Liste } window^.obchange(window, VALUE, window^.work^[VALUE].aes.ob_state); END; { nderung sichtbar machen } IF Aselect^.window^.work^[nr + 1].acs.aob_type = AT_NEW THEN BEGIN { Wenn Objekt das NEU-Ikon } Adr_del(Aselect^.window, nr); { Lsche Objekt aus der Liste } neuer(window); { Erfrage neuen Wert } END; END; END; { ----------------------------------------------------------------- } { Empfang durch Object } { ----------------------------------------------------------------- } PROCEDURE neuer_wert; BEGIN hole_wert(ev_window); END; { ----------------------------------------------------------------- } { Erzeuge Fenster } { ----------------------------------------------------------------- } FUNCTION updown_make(para: Pointer): AwindowPtr; VAR wi : AwindowPtr; BEGIN wi := Awi_create (@FENSTER); { Erzeuge Fenster } IF wi <> NIL THEN { Wenn OK } BEGIN wi^.work^[VALUE + 1].acs.userp1 := POINTER(wi^.work^[VALUE].aes.ob_spec.ted_info^.te_ptext); { POINTER userp1 zeigt auf Zahlenstring } wi^. open (wi); { ffne das Fenster } END; updown_make := wi; { und zurck } END; { ----------------------------------------------------------------- } { Lschen } { ----------------------------------------------------------------- } PROCEDURE delete(window: AWindowPtr); BEGIN Adr_unselect; { Auswahlliste lschen } SetPtext(AESTreePtr(window^.work), VALUE, '0');{ Zahlenstring = 0 } window^.obchange(window, VALUE, window^.work^[VALUE].aes.ob_state); { nderung sichtbar machen } END; { ----------------------------------------------------------------- } { service Routine } { ----------------------------------------------------------------- } Function updown_service (wi: AwindowPtr; task: Integer; in_out: Pointer): Boolean; BEGIN CASE task OF AS_TERM: Awi_delete(wi); { Nun ist Schlu } AS_DRAGGED: hole_wert(wi); { gezogene Objekt als Icon empfangen } AS_DELETE: delete(wi); { Wert auf Null setzten (lschen) } AS_INFO: A_dialog(@INFOBOX); { Info anzeigen } ELSE BEGIN updown_service := FALSE; { task konnte nicht bearbeitet werden } EXIT; { Abbrechen } END; END; updown_service := TRUE; { task wurde bearbeitet } END; BEGIN END..ACS(/ ACS 1.0d ACS ACCESSORY_CoSH0x21011108Lh0x29111108L-N-PPABOUT_ME134  .&( @ -ALERT LISTE+/AUF_AB001_C3@ 2H@  4P0  1+h+A_3DBUTTON01  %*+HA_3DBUTTON02  %**A_3DBUTTON03  '*J A_3Dbutton* Auo_string) DATA LIST)l DIA_OK)" DIA_VAL(B(FENSTER01oStx76 ""#'5'(6FENSTER LISTEoS'ICON LISTE'XIMAGE LIST%~%INFOBOXH %`O34: $)*+, %4MAUSFORM LISTE$MENU LISTE#H#PPNEU_DIA01/S @!-   "NUM_STRING7q8  ""OBJECT LISTEO3"RPOPUP LISTE!"00REFERENZ LISTE 1234567!r! TEDINFO LISTE!!NTEDINFO_002@0Ҿp !  TEDI_001` @0 `## ( rTEDI_002_______hf$##q @@TEXT LISTE !"#$%&'()*+,-.@TEXT_001  h1234 TEXT_002R*N___!TEXT_003R*NNN6" TEXT_004 AUF & AB ,#TEXT_005H$ TEXT_006Information.x%TEXT_007 Tn Tasten OK &TEXT_009n Probe Tinnerhalb ACS programmiertf'TEXT_01AbbruchX(TEXT_010 Tn Tasten wird.)TEXT_011 *Die Pfeilobjekte und Tasten4~*TEXT_012XXXXXXXXXXXXXXXXXXXXXXXzhlen hoch bzw. runter.+TEXT_013_______________________Der Wert kann auf andere^,TEXT_014Ҿ@ݒFenster gezogen werden.J- TEXT_015 R*|Neuer Wert:.TEXT_017n im Font */ Dies ist ein Beispiel wie7p/ USERBLK LISTE0VALUE1frageUUUUUUUUUX2hochq(n Info ^I3neuer_wert(@ l04runterz<yyz5tasten 06updown_make. Info ^I07updown_serviceJrgenMller{ This file was created with ACS 2.0 (c) Stefan Bachert 1991, 1992 The contents are based on file: F:\PASCAL\ACS2\DEPEND\DEPEND.ACS compiled at: Mon Jan 04 04:14:44 1993 } { Pascal Prototypes } Function make_desk (para: Pointer): AwindowPtr; Procedure master_closed (wi: AwindowPtr); Function master_make (para: Pointer): AwindowPtr; Function master_open (wi: AwindowPtr): Integer; Function master_service (wi: AwindowPtr; task: Integer; in_out: Pointer): Boolean; Procedure neu; Procedure quit; Procedure slave_closed (wi: AwindowPtr); Function slave_make (para: Pointer): AwindowPtr; Function slave_open (wi: AwindowPtr): Integer; Function slave_service (wi: AwindowPtr; task: Integer; in_out: Pointer): Boolean; Const { STRINGS } NULL_STRING: packed array [1..1] of char = (#0); TEXT_001: packed array [1..9] of char = ' Arbeit '#0; TEXT_002: packed array [1..9] of char = ' (SLAVE)'#0; TEXT_003: packed array [1..8] of char = ' Teile '#0; TEXT_004: packed array [1..10] of char = ' (MASTER)'#0; TEXT_005: packed array [1..10] of char = 'Baustelle'#0; TEXT_02: packed array [1..11] of char = ' Neu ^N'#0; TEXT_03: packed array [1..16] of char = ' ber mich ...'#0; TEXT_04: packed array [1..21] of char = '--------------------'#0; TEXT_06: packed array [1..8] of char = ' Datei '#0; TEXT_07: packed array [1..11] of char = ' Quit ^Q'#0; { AUSERBLK } PATTN001: AUSERBLK = (ub_code: A_pattern; ub_parm: $750001; ub_ptr1: NIL; ub_ptr2: NIL; ub_ptr3: NIL); PATTN002: AUSERBLK = (ub_code: A_pattern; ub_parm: $740001; ub_ptr1: NIL; ub_ptr2: NIL; ub_ptr3: NIL); PATTN003: AUSERBLK = (ub_code: A_pattern; ub_parm: $690001; ub_ptr1: NIL; ub_ptr2: NIL; ub_ptr3: NIL); PATTN004: AUSERBLK = (ub_code: A_pattern; ub_parm: $6d0001; ub_ptr1: NIL; ub_ptr2: NIL; ub_ptr3: NIL); PATTN005: AUSERBLK = (ub_code: A_pattern; ub_parm: $a20001; ub_ptr1: NIL; ub_ptr2: NIL; ub_ptr3: NIL); PATTN007: AUSERBLK = (ub_code: A_pattern; ub_parm: $730001; ub_ptr1: NIL; ub_ptr2: NIL; ub_ptr3: NIL); PATTN008: AUSERBLK = (ub_code: A_pattern; ub_parm: $720001; ub_ptr1: NIL; ub_ptr2: NIL; ub_ptr3: NIL); PATTN009: AUSERBLK = (ub_code: A_pattern; ub_parm: $780001; ub_ptr1: NIL; ub_ptr2: NIL; ub_ptr3: NIL); PATTN010: AUSERBLK = (ub_code: A_pattern; ub_parm: $700001; ub_ptr1: NIL; ub_ptr2: NIL; ub_ptr3: NIL); PATTN011: AUSERBLK = (ub_code: A_pattern; ub_parm: $6c0001; ub_ptr1: NIL; ub_ptr2: NIL; ub_ptr3: NIL); SEPERATOR000: AUSERBLK = (ub_code: A_innerframe; ub_parm: $11101; ub_ptr1: NIL; ub_ptr2: NIL; ub_ptr3: NIL); { MENU TREES } Menu : Array [0 .. 20] of ACSOBJECT = ( (aes: (ob_next: -1; ob_head: 1; ob_tail: 5; ob_type: 25; ob_flags: $0000; ob_state: $0000;ob_spec: (index: $00000000);ob_x: 0; ob_y: 0; ob_width: 90; ob_height: 25)), (aes: (ob_next: 5; ob_head: 2; ob_tail: 2; ob_type: 20; ob_flags: $0000; ob_state: $0000;ob_spec: (index: $00001100);ob_x: 0; ob_y: 0; ob_width: 90; ob_height: 513)), (aes: (ob_next: 1; ob_head: 3; ob_tail: 4; ob_type: 25; ob_flags: $0000; ob_state: $0000;ob_spec: (index: $00000000);ob_x: 2; ob_y: 0; ob_width: 13; ob_height: 769)), (aes: (ob_next: 4; ob_head: -1; ob_tail: -1; ob_type: 32; ob_flags: $0000; ob_state: $2000;ob_spec: (free_string: @NULL_STRING);ob_x: 0; ob_y: 0; ob_width: 6; ob_height: 769)), (aes: (ob_next: 2; ob_head: -1; ob_tail: -1; ob_type: 32; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_06);ob_x: 6; ob_y: 0; ob_width: 7; ob_height: 769)), (aes: (ob_next: 0; ob_head: 6; ob_tail: 15; ob_type: 25; ob_flags: $0000; ob_state: $0000;ob_spec: (index: $00000000);ob_x: 0; ob_y: 769; ob_width: 80; ob_height: 19)), (aes: (ob_next: 15; ob_head: 7; ob_tail: 14; ob_type: 20; ob_flags: $0000; ob_state: $0000;ob_spec: (index: $00ff1100);ob_x: 2; ob_y: 0; ob_width: 20; ob_height: 8)), (aes: (ob_next: 8; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $2000;ob_spec: (free_string: @TEXT_03);ob_x: 0; ob_y: 0; ob_width: 20; ob_height: 1)), (aes: (ob_next: 9; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $2008;ob_spec: (free_string: @TEXT_04);ob_x: 0; ob_y: 1; ob_width: 20; ob_height: 1)), (aes: (ob_next: 10; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $2000;ob_spec: (free_string: @NULL_STRING);ob_x: 0; ob_y: 2; ob_width: 20; ob_height: 1)), (aes: (ob_next: 11; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $2000;ob_spec: (free_string: @NULL_STRING);ob_x: 0; ob_y: 3; ob_width: 20; ob_height: 1)), (aes: (ob_next: 12; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $2000;ob_spec: (free_string: @NULL_STRING);ob_x: 0; ob_y: 4; ob_width: 20; ob_height: 1)), (aes: (ob_next: 13; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $2000;ob_spec: (free_string: @NULL_STRING);ob_x: 0; ob_y: 5; ob_width: 20; ob_height: 1)), (aes: (ob_next: 14; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $2000;ob_spec: (free_string: @NULL_STRING);ob_x: 0; ob_y: 6; ob_width: 20; ob_height: 1)), (aes: (ob_next: 6; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $2000;ob_spec: (free_string: @NULL_STRING);ob_x: 0; ob_y: 7; ob_width: 20; ob_height: 1)), (aes: (ob_next: 5; ob_head: 16; ob_tail: 20; ob_type: 20; ob_flags: $0000; ob_state: $0000;ob_spec: (index: $00ff1101);ob_x: 8; ob_y: 0; ob_width: 11; ob_height: 3)), (aes: (ob_next: 18; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_07);ob_x: 0; ob_y: 2; ob_width: 11; ob_height: 1)), (acs :(click: quit; ob_flags: $8000; key: $0011;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)), (aes: (ob_next: 20; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_02);ob_x: 0; ob_y: 0; ob_width: 11; ob_height: 1)), (acs :(click: neu; ob_flags: $8000; key: $000e;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)), (aes: (ob_next: 15; ob_head: -1; ob_tail: -1; ob_type: 24; ob_flags: $0020; ob_state: $0108;ob_spec: (free_string: @SEPERATOR000);ob_x: 0; ob_y: 1; ob_width: 11; ob_height: 1)) ); { OBJECT TREES } W_MASTER : Array [0 .. 5] of ACSOBJECT = ( (aes: (ob_next: -1; ob_head: 2; ob_tail: 5; ob_type: 20; ob_flags: $1800; ob_state: $0000;ob_spec: (index: $00001100);ob_x: 0; ob_y: 0; ob_width: 32; ob_height: 12)), (acs :(drag: Adr_unselect; ob_flags: $8000; key: $0000;userp1: NIL;userp2: NIL;mo_index: 5; aob_type: 0)), (aes: (ob_next: 3; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_005);ob_x: 12; ob_y: 1; ob_width: 9; ob_height: 1)), (aes: (ob_next: 4; ob_head: -1; ob_tail: -1; ob_type: 24; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @PATTN001);ob_x: 12; ob_y: 4; ob_width: 9; ob_height: 6)), (aes: (ob_next: 5; ob_head: -1; ob_tail: -1; ob_type: 24; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @PATTN003);ob_x: 2; ob_y: 3; ob_width: 8; ob_height: 5)), (aes: (ob_next: 0; ob_head: -1; ob_tail: -1; ob_type: 24; ob_flags: $0020; ob_state: $0000;ob_spec: (free_string: @PATTN002);ob_x: 23; ob_y: 3; ob_width: 7; ob_height: 3)) ); W_SLAVE : Array [0 .. 10] of ACSOBJECT = ( (aes: (ob_next: -1; ob_head: 1; ob_tail: 10; ob_type: 20; ob_flags: $0000; ob_state: $0000;ob_spec: (index: $00001100);ob_x: 0; ob_y: 0; ob_width: 32; ob_height: 12)), (aes: (ob_next: 2; ob_head: -1; ob_tail: -1; ob_type: 24; ob_flags: $2000; ob_state: $0000;ob_spec: (free_string: @PATTN005);ob_x: 2; ob_y: 1; ob_width: 4; ob_height: 2)), (aes: (ob_next: 3; ob_head: -1; ob_tail: -1; ob_type: 24; ob_flags: $2000; ob_state: $0000;ob_spec: (free_string: @PATTN004);ob_x: 8; ob_y: 1; ob_width: 4; ob_height: 2)), (aes: (ob_next: 4; ob_head: -1; ob_tail: -1; ob_type: 24; ob_flags: $2000; ob_state: $0000;ob_spec: (free_string: @PATTN003);ob_x: 15; ob_y: 1; ob_width: 4; ob_height: 2)), (aes: (ob_next: 5; ob_head: -1; ob_tail: -1; ob_type: 24; ob_flags: $2000; ob_state: $0000;ob_spec: (free_string: @PATTN007);ob_x: 20; ob_y: 1; ob_width: 4; ob_height: 2)), (aes: (ob_next: 6; ob_head: -1; ob_tail: -1; ob_type: 24; ob_flags: $2000; ob_state: $0000;ob_spec: (free_string: @PATTN001);ob_x: 26; ob_y: 1; ob_width: 4; ob_height: 2)), (aes: (ob_next: 7; ob_head: -1; ob_tail: -1; ob_type: 24; ob_flags: $2000; ob_state: $0000;ob_spec: (free_string: @PATTN008);ob_x: 2; ob_y: 4; ob_width: 4; ob_height: 2)), (aes: (ob_next: 8; ob_head: -1; ob_tail: -1; ob_type: 24; ob_flags: $2000; ob_state: $0000;ob_spec: (free_string: @PATTN009);ob_x: 8; ob_y: 4; ob_width: 4; ob_height: 2)), (aes: (ob_next: 9; ob_head: -1; ob_tail: -1; ob_type: 24; ob_flags: $2000; ob_state: $0000;ob_spec: (free_string: @PATTN010);ob_x: 15; ob_y: 4; ob_width: 4; ob_height: 2)), (aes: (ob_next: 10; ob_head: -1; ob_tail: -1; ob_type: 24; ob_flags: $2000; ob_state: $0000;ob_spec: (free_string: @PATTN011);ob_x: 26; ob_y: 4; ob_width: 4; ob_height: 2)), (aes: (ob_next: 0; ob_head: -1; ob_tail: -1; ob_type: 24; ob_flags: $2020; ob_state: $0000;ob_spec: (free_string: @PATTN002);ob_x: 20; ob_y: 4; ob_width: 4; ob_height: 2)) ); { WINDOWS } DESK: Awindow = ( user: NIL; service: Awi_service; create: make_desk; open: Awi_open; init: Awi_init; work: NIL; ob_edit: -1; ob_col: -1; wi_id: -1; wi_kind: $0fff; wi_act: (x: 0; y: 0; w: 120; h: 50); wi_slider: (x: -1; y: -1; w: -1; h: -1); snap_mask: $f0f0; name: @NULL_STRING; info: @NULL_STRING; wi_type: $2710; kind: $0001; icon : -1; iconblk: NIL; menu: @Menu; keys: Awi_keys; obchange: Awi_obchange; redraw: Awi_redraw; topped: Awi_topped; closed: Awi_closed; fulled: Awi_fulled; arrowed: Awi_arrowed; hslid: Awi_hslid; vslid: Awi_vslid; sized: Awi_sized; moved: Awi_moved); MASTER: Awindow = ( user: NIL; service: master_service; create: master_make; open: master_open; init: Awi_init; work: @W_MASTER; ob_edit: -1; ob_col: -1; wi_id: -1; wi_kind: $0fef; wi_act: (x: 0; y: 0; w: 42; h: 21); wi_slider: (x: -1; y: -1; w: -1; h: -1); snap_mask: $f0f0; name: @TEXT_001; info: @TEXT_004; wi_type: $2710; kind: $0000; icon : -1; iconblk: NIL; menu: NIL; keys: Awi_keys; obchange: Awi_obchange; redraw: Awi_redraw; topped: Awi_topped; closed: master_closed; fulled: Awi_fulled; arrowed: Awi_arrowed; hslid: Awi_hslid; vslid: Awi_vslid; sized: Awi_sized; moved: Awi_moved); SLAVE: Awindow = ( user: NIL; service: slave_service; create: slave_make; open: slave_open; init: Awi_init; work: @W_SLAVE; ob_edit: -1; ob_col: -1; wi_id: -1; wi_kind: $0fed; wi_act: (x: 3; y: 3; w: 18; h: 21); wi_slider: (x: -1; y: -1; w: -1; h: -1); snap_mask: $f0f0; name: @TEXT_003; info: @TEXT_002; wi_type: $2710; kind: $000c; icon : -1; iconblk: NIL; menu: NIL; keys: Awi_keys; obchange: Awi_obchange; redraw: Awi_redraw; topped: Awi_topped; closed: slave_closed; fulled: Awi_fulled; arrowed: Awi_arrowed; hslid: Awi_hslid; vslid: Awi_vslid; sized: Awi_sized; moved: Awi_moved); ACSdescr: Adescr = ( magic: 'ACS 2.0'#0; version: 200; dx: -4; dy: -4; flags: $001b; acc_reg: ' DEPEND (ACS)'#0' '; root: @DESK; acc: NIL; mouse: ( (number: 0; form: NIL), (number: 2; form: NIL), (number: 3; form: NIL), (number: 4; form: NIL), (number: 1; form: NIL), (number: 5; form: NIL), (number: 6; form: NIL), (number: 7; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL)) ); implementation { Pascal Routines } { 'make_desk' Not defined yet by user } { 'master_closed' Not defined yet by user } { 'master_make' Not defined yet by user } { 'master_open' Not defined yet by user } { 'master_service' Not defined yet by user } { 'neu' Not defined yet by user } { 'quit' Not defined yet by user } { 'slave_closed' Not defined yet by user } { 'slave_make' Not defined yet by user } { 'slave_open' Not defined yet by user } { 'slave_service' Not defined yet by user } t lschen - Den Wert auf den Papierkorb ziehen Info zeigen - Info der Menleiste About me _ Menleiste it_acs: INTEGER; VAR wi : AwindowPtr; { Erzeuge einen Pointer auf Awindow } akt_path : STRING; { Zwischenspeichern des akt. Pfades } BEGIN { ** Erstmal den aktuellen Pfad ermitteln und sichern ** } path := 'A:'; { Laufwerk vorgeben } path[1] := CHR(ORD(path[1{ Beispielapplikation fr ACS "Depend" - Abhngige Fenster 12.02.92 Stefan Bachert (Pure C) 04.01.93 Michael Schlter (Pure Pascal) Letzte nderung: 04.01.93 } PROGRAM depend; {$X+} USES ACS, DEPENDM; { ----------------------------------------------------------------- } { ACS Initialisieren und NEU-Ikon auf den Desktop legen } { ----------------------------------------------------------------- } FUNCTION init_acs: INTEGER; BEGIN slavew := slave_make(NIL); IF slavew <> NIL THEN { Wenn alles klar } init_acs := OK { NEU-Ikon angelegt } ELSE init_acs := FAIL; { Das ging daneben } END; { ----------------------------------------------------------------- } { Hauptprogramm } { ----------------------------------------------------------------- } BEGIN { ACS } start_acs (init_acs, @ACSdescr); { und los } END.{ UNIT DEPENDM ab for PurePascal (c) 1992 Stefan Bachert PURE PASCAL Version: Michael Schlter (@SL) Letzte nderung: 04.01.1993 } UNIT dependm; {$X+} INTERFACE USES ACS; VAR slavew : AWindowPtr; { Globale Variablen } {$I DEPEND.I} { Lade ACS-File ein } VAR slave_count : INTEGER; { Lokale Variable } { ----------------------------------------------------------------- } { Erzeuge Slave Fenster } { ----------------------------------------------------------------- } FUNCTION slave_make(para: Pointer): AwindowPtr; BEGIN slave_make := Awi_create (@SLAVE); { Erzeuge Fenster } END; { ----------------------------------------------------------------- } { ffne Slave Fenster } { ----------------------------------------------------------------- } FUNCTION slave_open(wi: AWindowPtr) : INTEGER; BEGIN IF slave_count > 0 THEN slave_open := OK { Fenster schon offen } ELSE slave_open := Awi_open(wi); { ffne Fenster } INC(slave_count); END; { ----------------------------------------------------------------- } { Schliee Slave Fenster } { ----------------------------------------------------------------- } PROCEDURE slave_closed(wi: AWindowPtr); BEGIN DEC(slave_count); IF slave_count = 0 THEN { Fenster noch offen } BEGIN slave_count := 0; { Falls < 0 } wi^.state := wi^.state OR AWS_TERM; { verhindert Zeichnen d. Icons } Awi_closed(wi); { Schliee Fenster } wi^.state := wi^.state AND NOT AWS_TERM;{ Flag wieder lschen } END; END; { ----------------------------------------------------------------- } { Service Slave Routine } { ----------------------------------------------------------------- } Function slave_service (wi: AwindowPtr; task: Integer; in_out: Pointer): Boolean; VAR root : AWindowPtr; BEGIN CASE task OF AS_TERM: IF appexit > 0 THEN Awi_delete(wi); { Nun ist Schlu } AS_ACCLOSED: BEGIN slave_count := 0; { Zhler 0-setzten } IF wi^.icon >= 0 THEN BEGIN { Nun doch Iconifiziert } root := Awi_root;{ Pointer auf Rootfenster holen } root^.service(root, AS_REMICON, @wi^.icon); END; { Ikone freigeben } END ELSE BEGIN slave_service := FALSE; { task konnte nicht bearbeitet werden } EXIT; { Abbrechen } END; END; slave_service := TRUE; { task wurde bearbeitet } END; { ----------------------------------------------------------------- } { Erzeuge Master Fenster } { ----------------------------------------------------------------- } FUNCTION master_make(para: Pointer): AwindowPtr; VAR wi : AwindowPtr; BEGIN wi := Awi_create (@MASTER); { Erzeuge Fenster } IF wi <> NIL THEN wi^.open(wi); { ffne das Fenster gleich } master_make := wi; { und zurck } END; { ----------------------------------------------------------------- } { ffne Master Fenster } { ----------------------------------------------------------------- } FUNCTION master_open(wi: AWindowPtr) : INTEGER; BEGIN IF Awi_open(wi) = OK THEN { Wenn das Master-Fenster geffnet wurde } IF slavew^.open(slavew) = FAIL THEN { Wenn das Slave-Fenster nicht geffnet werden konnte } BEGIN wi^.closed(wi); { Schliee das Master-Fenster } master_open := FAIL; { Fehler } END ELSE master_open := OK { Sonst alles OK } ELSE master_open := FAIL; { Fehler * konnte Masterfenster nicht ffnen } END; { ----------------------------------------------------------------- } { Schliee Master Fenster } { ----------------------------------------------------------------- } PROCEDURE master_closed(wi: AWindowPtr); BEGIN Awi_closed(wi); { schliee Fenster } slavew^.closed(slavew); { schliee vielleicht Slave-Fenster } END; { ----------------------------------------------------------------- } { Service Master Routine } { ----------------------------------------------------------------- } Function master_service (wi: AwindowPtr; task: Integer; in_out: Pointer): Boolean; BEGIN CASE task OF AS_TERM: Awi_delete(wi); { Nun ist Schlu } AS_ICONIZED: slavew^.closed(slavew) { schliee Slavefenster? } ELSE BEGIN master_service := FALSE; { task konnte nicht bearbeitet werden } EXIT; { Abbrechen } END; END; master_service := TRUE; { task wurde bearbeitet } END; { ----------------------------------------------------------------- } { Erzeuge Desk } { ----------------------------------------------------------------- } FUNCTION make_desk(para: Pointer): AwindowPtr; BEGIN make_desk := Awi_create(@DESK); { Erzeuge Fenster } END; { ----------------------------------------------------------------- } { Desk-Menu 'QUIT' } { ----------------------------------------------------------------- } PROCEDURE quit; BEGIN Awi_sendall(AS_TERM, NIL); { Alle Fenster sollen sich schlieen } Aev_quit; { Programm wird beendet } END; { ----------------------------------------------------------------- } { DESK-Menu 'NEU' } { ----------------------------------------------------------------- } PROCEDURE neu; BEGIN MASTER.create(NIL); END; BEGIN slave_count := 0; {Zhler 0-setzten } END.*+ A_3DBUTTON02*vA_3Dbutton*,Auo_string)DATA LIST)) FENSTER LISTEO3 (( HELLO_001b SO#t% "'(b ICON LISTE( (V IMAGE LIST.ACS(5$ ()4%ACS 1.0g DEPEND (ACS) oSO380x11101Lh0x690001L * 0x6c0001L|.0x6d0001L T<R܀Z .\0x700001L|.0x720001L#wn#v-0x730001LT<R܀ Z -~0x740001Lyh-4 0x750001L*e, 0x780001L|, 0xa20001LT<R܀Z ,V ALERT LIST, A_innerframe+A_pattern@g8r +xAdr_unselect#u#i#+.DATA LISTO3*N*DESKW_01_tx8x2'*ICON LIST˖\̢O3)IMAGE LIST()$MASTERZ3tx<:;6**-'9((MENU LISTPRGoS(:MOUSEFORM LIST^#$ ((Menu01SZZ   2P 0  1           3 >/ =& #l#NULL_STRING ##\OBJECTTREE LISTO367""PATTN001*k5  ">"PATTN002h8( %!"PATTN003H` !j!PATTN0040Xh T<R܀!!JPATTN005X( T<R܀    PATTN007 Probe TA  , v PATTN008 ^In Probe  !PATTN009h:\ % X"PATTN010 %8#PATTN011 %O3T$POPUP LISTE:\ACS\IOACS.LIBE:\O38%ddREFERENCE LISTO3 89:;<=>?@AB&SEPERATOR000O3T 'SLAVE1 N::_CtxB@A7,+' ?Z(TEDINFO LISTO3&),,TEXT LISTԤ*+,-./0123* TEXT_001"UUT@5UUUV? Arbeit $n+ TEXT_002UT5UUUTP 5Up (SLAVE),TEXT_0035UUUTP 5U Teile n- TEXT_004UUT5UUUV? (MASTER)\. TEXT_005W4hBaustelle/ TEXT_02 Neu ^NR0TEXT_03 ber mich ...41TEXT_04--------------------2TEXT_06 Datei 2|3 TEXT_07 Quit ^Q4,,USERBLK LISTtO3 !"#&V5 WINDOW LISTOc'r6W_MASTERGrow/Shrink _C4* .    27hhW_SLAVE}&N_ab@rC4*         !  "  # 8make_desk9master_closed T:master_make ;master_openh0<master_serviceFv=neu,>quit?slave_closed$@slave_make:n(XXXXXXXXNAslave_openxxxxxxBslave_servicexHwwwx { This file was created with ACS 2.0 (c) Stefan Bachert 1991, 1992 The contents are based on file: F:\PASCAL\ACS2\DIR\DIR.ACS compiled at: Fri Jan 01 21:19:58 1993 } Const { STRINGS } TEXT_001: packed array [1..1] of char = (#0); TEXT_002: packed array [1..12] of char = ' DIRECTORY '#0; TEXT_003: packed array [1..7] of char = 'ZURCK'#0; TEXT_004: packed array [1..12] of char = 'FILE SYSTEM'#0; { ICONS } _MSK_DIRECTORY: array [0..63] of WORD = ( $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0fc0, $0000, $1fe0, $0fff, $fff0, $1fff, $fff8, $3fff, $fffc, $3fff, $fffe, $3fff, $fffe, $3fff, $fffe, $3fff, $fffe, $3fff, $fffe, $3fff, $fffe, $3fff, $fffe, $3fff, $fffe, $3fff, $fffe, $3fff, $fffe, $3fff, $fffe, $3fff, $fffe, $3fff, $fffe, $3fff, $fffe, $3fff, $fffe, $3fff, $fffe, $3fff, $fffe, $3fff, $fffe, $3fff, $fffe, $1fff, $fffe, $0fff, $fffc, $07ff, $fff8, $0000, $0000, $0000, $0000); _DAT_DIRECTORY: array [0..63] of WORD = ( $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0fc0, $0000, $1560, $0fff, $fab0, $1000, $1fe8, $2000, $0004, $2000, $0006, $2000, $0006, $2000, $0006, $2000, $0006, $2000, $0006, $2000, $0006, $2000, $0006, $2000, $0006, $2000, $0006, $2000, $0006, $2000, $0006, $2000, $0006, $2000, $0006, $2000, $0006, $2000, $0006, $2000, $0006, $2000, $0006, $2000, $0006, $2000, $0006, $1000, $000e, $0fff, $fffc, $07ff, $fff8, $0000, $0000, $0000, $0000); DIRECTORY: ICONBLK = (ib_pmask: @_MSK_DIRECTORY; ib_pdata: @_DAT_DIRECTORY; ib_ptext: @TEXT_001; ib_char: $1000; ib_xchar: 0; ib_ychar: 0; ib_xicon: 20; ib_yicon: 0; ib_wicon: 32; ib_hicon: 32; ib_xtext: 0; ib_ytext: 33; ib_wtext: 72; ib_htext: 8); _MSK_DOTDOT: array [0..63] of WORD = ( $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0010, $0000, $0030, $0000, $0070, $0000, $00f0, $0000, $01ff, $fe00, $03ff, $ff80, $07ff, $ffc0, $0fff, $ffe0, $1fff, $ffe0, $3fff, $fff0, $1fff, $fff0, $0fff, $fff0, $1fff, $fff0, $3fff, $fff0, $1fff, $fff0, $0fff, $fff0, $07ff, $fff0, $03ff, $fff0, $01f0, $01f0, $00f0, $0070, $0070, $0030, $0030, $0030, $0010, $0010, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0000); _DAT_DOTDOT: array [0..63] of WORD = ( $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0010, $0000, $0030, $0000, $0050, $0000, $0090, $0000, $011f, $fe00, $0200, $0180, $0400, $0040, $0800, $0020, $1000, $0020, $2006, $6010, $1006, $6010, $0800, $0010, $1c00, $0010, $3e00, $0010, $1f1f, $fe10, $0f9f, $ff90, $07df, $ffd0, $03ff, $fff0, $01f0, $01f0, $00f0, $0070, $0070, $0030, $0030, $0030, $0010, $0010, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0000); DOTDOT: ICONBLK = (ib_pmask: @_MSK_DOTDOT; ib_pdata: @_DAT_DOTDOT; ib_ptext: @TEXT_003; ib_char: $1000; ib_xchar: 0; ib_ychar: 0; ib_xicon: 20; ib_yicon: 0; ib_wicon: 32; ib_hicon: 32; ib_xtext: 0; ib_ytext: 32; ib_wtext: 72; ib_htext: 8); _MSK_FILER: array [0..63] of WORD = ( $0000, $0000, $0fff, $fe00, $0fff, $ff00, $0fff, $ff80, $0fff, $ffc0, $0fff, $ffe0, $0fff, $fff0, $0fff, $fff0, $0fff, $fff0, $0fff, $fff0, $0fff, $fff0, $0fff, $fff0, $0fff, $fff0, $0fff, $fff0, $0fff, $fff0, $0fff, $fff0, $0fff, $fff0, $0fff, $fff0, $0fff, $fff0, $0fff, $fff0, $0fff, $fff0, $0fff, $fff0, $0fff, $fff0, $0fff, $fff0, $0fff, $fff0, $0fff, $fff0, $0fff, $fff0, $0fff, $fff0, $0fff, $fff0, $0fff, $fff0, $0fff, $fff0, $0000, $0000); _DAT_FILER: array [0..63] of WORD = ( $0000, $0000, $0fff, $fe00, $0800, $0300, $0800, $0280, $0800, $0240, $0800, $0220, $0800, $03f0, $0800, $0010, $0800, $0010, $0800, $0010, $0800, $0010, $08f5, $0f10, $0885, $0810, $0885, $0810, $08e5, $0e10, $0885, $0810, $0885, $0810, $0885, $ef10, $0800, $0010, $0800, $0010, $0800, $0010, $0800, $0010, $0800, $0010, $0800, $0010, $0800, $0010, $0800, $0010, $0800, $0010, $0800, $0010, $0800, $0010, $0800, $0010, $0fff, $fff0, $0000, $0000); FILER: ICONBLK = (ib_pmask: @_MSK_FILER; ib_pdata: @_DAT_FILER; ib_ptext: @TEXT_001; ib_char: $1000; ib_xchar: 0; ib_ychar: 0; ib_xicon: 20; ib_yicon: 0; ib_wicon: 32; ib_hicon: 32; ib_xtext: 1; ib_ytext: 35; ib_wtext: 72; ib_htext: 8); _MSK_FLOPPY: array [0..63] of WORD = ( $0000, $0000, $0000, $0000, $0000, $0000, $1fff, $fff8, $3fff, $fffc, $3fff, $fffc, $3fff, $fffc, $3fff, $fffc, $3fff, $fffc, $3fff, $fffc, $3fff, $fffc, $3fff, $fffc, $3fff, $fffc, $3fff, $fffc, $3fff, $fffc, $3fff, $fffc, $3fff, $fffc, $3fff, $fffc, $3fff, $fffc, $3fff, $fffc, $3fff, $fffc, $3fff, $fffc, $3fff, $fffc, $3fff, $fffc, $3fff, $fffc, $3fff, $fffc, $3fff, $fffc, $1fff, $fffc, $0fff, $fff8, $0000, $0000, $0000, $0000, $0000, $0000); _DAT_FLOPPY: array [0..63] of WORD = ( $0000, $0000, $0000, $0000, $0000, $0000, $1fff, $fff8, $2900, $008c, $2300, $00a4, $2900, $008c, $2300, $00a4, $2900, $008c, $2300, $00a4, $2900, $008c, $2300, $00a4, $2900, $008c, $2300, $00a4, $2900, $008c, $22ff, $ff24, $2888, $888c, $2222, $2224, $2888, $888c, $223f, $fa24, $28c0, $048c, $224c, $0624, $28cc, $048c, $224c, $0624, $28cc, $048c, $3240, $0624, $3fff, $fffc, $1ad5, $5554, $0fff, $fff8, $0000, $0000, $0000, $0000, $0000, $0000); FLOPPY: ICONBLK = (ib_pmask: @_MSK_FLOPPY; ib_pdata: @_DAT_FLOPPY; ib_ptext: @TEXT_001; ib_char: $1041; ib_xchar: 13; ib_ychar: 5; ib_xicon: 5; ib_yicon: 2; ib_wicon: 32; ib_hicon: 32; ib_xtext: 0; ib_ytext: 0; ib_wtext: 40; ib_htext: 40); _MSK_WI_ICON: array [0..59] of WORD = ( $0000, $0000, $0000, $0000, $7fff, $fffe, $7fff, $fffe, $7fff, $fffe, $7fff, $fffe, $7fff, $fffe, $7fff, $fffe, $7fff, $fffe, $7fff, $fffe, $7fff, $fffe, $7fff, $fffe, $7fff, $fffe, $7fff, $fffe, $7fff, $fffe, $7fff, $fffe, $7fff, $fffe, $7fff, $fffe, $7fff, $fffe, $7fff, $fffe, $7fff, $fffe, $7fff, $fffe, $7fff, $fffe, $7fff, $fffe, $7fff, $fffe, $7fff, $fffe, $7fff, $fffe, $7fff, $fffe, $7fff, $fffe, $7fff, $fffe); _DAT_WI_ICON: array [0..59] of WORD = ( $0000, $0000, $0000, $0000, $7fff, $fffe, $4000, $0002, $4000, $0002, $4000, $0002, $4070, $01c2, $41f0, $07c2, $4210, $0842, $4210, $0842, $4210, $0842, $4210, $0842, $41f0, $07c2, $4000, $0002, $47f8, $1fe2, $4000, $0002, $4000, $0002, $4000, $0002, $43f0, $0fc2, $4210, $0842, $4210, $0842, $4210, $0842, $4230, $08c2, $4250, $0942, $43f0, $0fc2, $4000, $0002, $47f8, $1fe2, $4000, $0002, $4000, $0002, $7fff, $fffe); WI_ICON: ICONBLK = (ib_pmask: @_MSK_WI_ICON; ib_pdata: @_DAT_WI_ICON; ib_ptext: @TEXT_004; ib_char: $1000; ib_xchar: 0; ib_ychar: 0; ib_xicon: 21; ib_yicon: 0; ib_wicon: 32; ib_hicon: 30; ib_xtext: 0; ib_ytext: 32; ib_wtext: 72; ib_htext: 8); { OBJECT TREES } ICONS : Array [0 .. 4] of ACSOBJECT = ( (aes: (ob_next: -1; ob_head: 1; ob_tail: 4; ob_type: 20; ob_flags: $0000; ob_state: $0010;ob_spec: (index: $00021100);ob_x: 0; ob_y: 0; ob_width: 18; ob_height: 6)), (aes: (ob_next: 2; ob_head: -1; ob_tail: -1; ob_type: 31; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @DOTDOT);ob_x: 0; ob_y: 3; ob_width: 9; ob_height: 3)), (aes: (ob_next: 3; ob_head: -1; ob_tail: -1; ob_type: 31; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @DIRECTORY);ob_x: 0; ob_y: 0; ob_width: 9; ob_height: 3)), (aes: (ob_next: 4; ob_head: -1; ob_tail: -1; ob_type: 31; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @FILER);ob_x: 9; ob_y: 0; ob_width: 9; ob_height: 3)), (aes: (ob_next: 0; ob_head: -1; ob_tail: -1; ob_type: 31; ob_flags: $0020; ob_state: $0000;ob_spec: (free_string: @FLOPPY);ob_x: 9; ob_y: 3; ob_width: 9; ob_height: 3)) ); { WINDOWS } DIR_WI: Awindow = ( user: NIL; service: Awi_service; create: file_make; open: Awi_open; init: Awi_init; work: NIL; ob_edit: -1; ob_col: -1; wi_id: -1; wi_kind: $0fff; wi_act: (x: 0; y: 0; w: 34; h: 14); wi_slider: (x: -1; y: -1; w: -1; h: -1); snap_mask: $fff0; name: @TEXT_002; info: @TEXT_001; wi_type: $2710; kind: $000b; icon : -1; iconblk: @WI_ICON; menu: NIL; keys: Awi_keys; obchange: Awi_obchange; redraw: Awi_redraw; topped: Awi_topped; closed: Awi_closed; fulled: Awi_fulled; arrowed: Awi_arrowed; hslid: Awi_hslid; vslid: Awi_vslid; sized: Awi_sized; moved: Awi_moved); ACSdescr: Adescr = ( magic: 'ACS 2.0'#0; version: 200; dx: -4; dy: -4; flags: $001b; acc_reg: ' ACS ACCESSORY'#0' '; root: NIL; acc: NIL; mouse: ( (number: 0; form: NIL), (number: 2; form: NIL), (number: 3; form: NIL), (number: 4; form: NIL), (number: 1; form: NIL), (number: 5; form: NIL), (number: 6; form: NIL), (number: 7; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL)) ); .ACS   ACS 1.0d ACS ACCESSORY?#O3HALERT LISTDATA LIST-|-""DIRECTORYnP" !H????????????????????`                    ,,DIR_WI1*b/94*O3t"' +(+r""DOTDOT2o94*n" H0p??pp0000P@  ``>pp000))""FILER18A  " #H@ (@(""FLOPPY6MM>LLLHF"A  ((???????????????????????)#)#)#)#)#)"$("""$("?$("L$("L$(2@$?UT'($ICON LIST&pK ICONS01&_C     && IMAGE LIST% MENU LIST% MOUSEFORM LIST%<% OBJECTTREE LISTO3 $POPUP LIST$$REFERENCE LISTO3$RTEDINFO LIST#$:TEXT LIST##TEXT_001 n H#># TEXT_002` LccP ?L DIRECTORY "#.TEXT_003 TEXT_003@@ZURCK"" TEXT_0048FILE SYSTEM"<USERBLK LIST!"0WINDOW LISTO3  WI_ICON%"  H@@@@pABBBBBBBBA@G@@@CBBBBBBB0BP BC@G@@file_makecccn{ Beispielapplikation fr ACS "Directory" 28.09.91 Stefan Bachert (Pure C) 04.10.92 Michael Schlter (Pure Pascal) Letzte nderung: 01.01.93 } PROGRAM directory; { Programmname } {$X+} { Functionen knnen ohne Resultat aufgerufen werden } USES ACS, GEM, TOS; { bentigte Units } PROCEDURE new_drive; FORWARD; { Definitionen werden schon } PROCEDURE new_dir; FORWARD; { in DIR.I gebraucht } PROCEDURE ret_dir; FORWARD; PROCEDURE make_work( window : AWindowPtr ); FORWARD; FUNCTION file_make( not_used : POINTER ) : AWindowPtr; FORWARD; {$I DIR.I} { Einladen der Definitionen } CONST { Vordefinierte Werte } WIDTH = 80; WIDTH2 = 40; HEIGHT = 48; TYPE TUserPtr = ^TUser; TUser = RECORD drives : LONGINT; act_drive : INTEGER; path : STRING; END; CONST { Objectrecords zum spteren Zusammenbauen } back : ACSOBJECT = (aes:(ob_next:-1; ob_head:-1; ob_tail:-1; ob_type: G_BOX; ob_flags: NONE; ob_state: AOS_FIXED;ob_spec: (index: $0D);ob_x: 0; ob_y: 0; ob_width: 100; ob_height: 100)); back0 : ACSOBJECT = (acs:(ob_flags: AEO; key: $0000;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)); drv : ACSOBJECT = (aes:(ob_next:-1; ob_head:-1; ob_tail:-1; ob_type: G_ICON; ob_flags: 5; ob_state: NORMAL;ob_spec: (icon_blk: @FLOPPY);ob_x: 0; ob_y: 0; ob_width: WIDTH2; ob_height: HEIGHT)); drv0 : ACSOBJECT = (acs:(click: new_drive; ob_flags: AEO; key: $0000;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)); ret : ACSOBJECT = (aes:(ob_next:-1; ob_head:-1; ob_tail:-1; ob_type: G_ICON; ob_flags: 5; ob_state: NORMAL;ob_spec: (icon_blk: @DOTDOT);ob_x: 0; ob_y: 0; ob_width: WIDTH; ob_height: HEIGHT)); ret0 : ACSOBJECT = (acs:(click: ret_dir; ob_flags: AEO; key: $0000;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)); dirs : ACSOBJECT = (aes:(ob_next:-1; ob_head:-1; ob_tail:-1; ob_type: G_ICON; ob_flags: 5; ob_state: NORMAL;ob_spec: (icon_blk: @DIRECTORY);ob_x: 0; ob_y: 0; ob_width: WIDTH; ob_height: HEIGHT)); dirs0 : ACSOBJECT = (acs:(click: new_dir; ob_flags: AEO; key: $0000;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)); files : ACSOBJECT = (aes:(ob_next:-1; ob_head:-1; ob_tail:-1; ob_type: G_ICON; ob_flags: NONE; ob_state: NORMAL;ob_spec: (icon_blk: @FILER);ob_x: 0; ob_y: 0; ob_width: WIDTH; ob_height: HEIGHT)); files0 : ACSOBJECT = (acs:(ob_flags: AEO; key: $0000;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)); { ------------------------------------------------------------- } { Wandelt einen C-String in einen Pascal-String um } { ------------------------------------------------------------- } PROCEDURE str_ctopas(VAR pas_str : STRING; c_str : STRING); VAR zaehler : BYTE; { Zeichenzhler } BEGIN zaehler := 0; { Auf Null setzten } REPEAT INC(zaehler); { Gleich erhhen } pas_str[zaehler] := c_str[zaehler-1]; { Zeichen umkopieren } UNTIL (c_str[zaehler-1] = CHR(0)); { Wenn Zeichen = 0 dann Ende } pas_str[0] := CHR(zaehler); { Zeichenanzahl eintragen } END; { ------------------------------------------------------------- } { Wechselt das Laufwerk } { ------------------------------------------------------------- } PROCEDURE new_drive; VAR window : AWindowPtr; { Pointer auf Fensterrecord } user : TUserPtr; { Pointer auf Userrecord } BEGIN window := ev_window; { Fensterrecordpointer holen } user := window^.user; { Userrecordpointer holen } user^.act_drive := (ev_object^[ev_obnr].aes.ob_spec.icon_blk^.ib_char AND $FF) - ORD('A'); { Neues Laufwerk auf Icon holen } Dsetdrv(user^.act_drive); { Neues Laufwerk setzten } Dsetpath('\'); { Auf obersten Pfad wechseln } make_work(window); { Fenster zusammenbauen } window^.sized(window, @window^.wi_act); END; { ------------------------------------------------------------- } { Wechsel das Inhaltsverzeichnis } { ------------------------------------------------------------- } PROCEDURE new_dir; VAR window : AWindowPtr; { Pointer auf Fensterrecord } user : TUserPtr; { Pointer auf Userrecord } dirname : STRING; { Name des neuen Inhaltsverz. } BEGIN window := ev_window; { Fensterrecordpointer holen } user := window^.user; { Userrecordpointer holen } Dsetdrv(user^.act_drive); { Zum richtigen Laufwerk wechseln } Dsetpath(user^.path); { Zum richtigen Pfad wechseln } str_ctopas(dirname, STRING(window^.work^[ev_obnr].aes.ob_spec.icon_blk^.ib_ptext^)); { Name des neuen Inhaltsverz. aus Icon holen } Dsetpath(dirname); { Neuen Pfad setzten } make_work(window); { Fenster zusammenbauen } window^.sized(window, @window^.wi_act); END; { ------------------------------------------------------------- } { Gehe ein Inhaltsverzeichnis hher } { ------------------------------------------------------------- } PROCEDURE ret_dir; VAR window : AWindowPtr; { Pointer auf Fensterrecord } user : TUserPtr; { Pointer auf Userrecord } BEGIN window := ev_window; { Fensterrecordpointer holen } user := window^.user; { Userrecordpointer holen } Dsetdrv(user^.act_drive); { Zum richtigen Laufwerk wechseln } Dsetpath(user^.path); { Zum richtigen Pfad wechseln } Dsetpath('..'); { Ein Inhaltsverz. hher } make_work(window); { Fenster zusammenbauen } window^.sized(window, @window^.wi_act); END; { ------------------------------------------------------------- } { Baue das innere Workobject zusammen } { ------------------------------------------------------------- } PROCEDURE make_work( window : AWindowPtr ); LABEL REDO; VAR user : TUserPtr; { Pointer auf Userrecord } newdta : DTA; { Neue DTA anlegen } olddta : DTAPtr; { Ort der alten DTA speichern } work : ACSTreePtr; { Zeiger auf ACSObjectrecord } path : STRING; { Enthlt den Pfad } pathinfo : STRING; { Enthlt den Pfad fr FENSTERINFO } i, n : INTEGER; { Laufvariablen } drives : LONGINT; { Alle vorhandenen Laufwerke } drive : CHAR; { Buchstabe eines Laufwerkes } state : INTEGER; { Rckgabewert von Fsfirst und Fsnext } first : BOOLEAN; { Flag fr ersten Versuch } BEGIN user := window^.user; { Fensterrecordpointer holen } olddta := Fgetdta; { Alte DTA retten } Fsetdta(@newdta); { Neue DTA setzten } first := TRUE; { Erste Durchgang } REDO: path := 'A:'; path[1] := CHR(ORD(path[1]) + user^.act_drive); { Akt. Laufwerk ermitteln } Dgetpath(user^.path, 0); { Akt. Pfad holen } path := path + user^.path; { Laufwerk und Pfad zusammenbauen } pathinfo := path; { Als Infotext speichern } pathinfo[LENGTH(pathinfo)+1] := CHR(0); { Fr C-Functionen Null-Terminieren } Ast_delete(window^.info); { Alten Infotext lschen } window^.info := Ast_create(@pathinfo[1]); { Neuen Infotext erzeugen } path := path + '\*.*'; { Nach allen Dateien suchen } n := 0; { Iconzhler = 0 } state := Fsfirst( path, FA_DIREC OR FA_RDONLY OR FA_SYSTEM OR FA_HIDDEN OR FA_ARCH); { Suche nach allem } WHILE (state >= 0 ) DO { Solange etwas gefunden wurde } BEGIN INC(N); { Erhhe Anzahl } state := Fsnext; { Nchste suchen } END; IF (state = -33) AND (first = TRUE) THEN BEGIN { Wenn keine Datei gefunden und erster Durchgang } Dsetpath('\'); { Oberstes Inhaltsverz. nehmen } first := FALSE; { Erste Durchgang beendet } GOTO REDO; { Und nocheinmal versuchen } END; IF (window^.wi_id > 0) THEN { Wenn Fenster schon auf } windsetinfo(window^.wi_id, pathinfo, STRING(window^.info^)); { Setzte den Infotext neu } work := Ax_malloc((n+17) * 2 * SizeOf(ACSOBJECT)); { Speicher fr das ACSObjectrecord bereitstellen } IF (work = NIL) THEN EXIT; { Wenn kein Speicher dann Ende } IF (window^.work <> NIL) THEN { Wenn noch ein altes ACSObject vorhanden } Aob_delete(window^.work); { wird es gelscht } window^.work := work; { Neue ACSObjectrecord eintragen } work^[0] := back; { Objectrecord des Hintergrundes einfgen } work^[1] := back0; { "" fr ACSObject } work^[0].aes.ob_head := 2; { Nchste Object } i := 2; { Objectrecordindex erhhen } drive := 'A'; drives := user^.drives; n := 0; { Laufwerkezhler = 0 } while (drives > 0) DO { Solange noch ein Laufwerk vorhanden } BEGIN IF (drives AND 1) > 0 THEN { Wenn Laufwerkbit gesetzt } BEGIN work^[i] := drv; { Object fr Laufwerksicon Kopieren } work^[i+1] := drv0; { "" fr ACSObject } work^[i].aes.ob_spec.icon_blk := Aic_create(drv.aes.ob_spec.icon_blk); { Erzeuge Icon } work^[i].aes.ob_spec.icon_blk^.ib_char := (work^[i].aes.ob_spec.icon_blk^.ib_char AND $FF00) + ORD(drive); { Trage Laufwerkszeichen ein } work^[i].aes.ob_next := i + 2; { Nchstes Object } INC(i, 2); { Objectrecordindex erhhen } INC(n); { Erhhe Laufwerkeanzahl } END; drives := drives DIV 2; { Bit lschen } drive := CHR(ORD(drive) + 1); { Laufwerkszeichen erhhen } END; IF (n AND 1) > 0 THEN { Wenn ungerade Anzahl an Laufwerken } work^[i-2].aes.ob_width := work^[i-2].aes.ob_width * 2; { Letztes Icon doppelt so breit } state := Fsfirst(path, FA_DIREC); { Suche nach Inhaltsverzeichnissen } dirs.aes.ob_spec.icon_blk^.ib_ptext := @newdta.d_fname[1]; { Icontext ist der Dateiname } WHILE (state >= 0) DO { Wiederhole bis alle Inhaltsverzeichnis gelesen } BEGIN IF (newdta.d_fname <> '.') AND ((newdta.d_attrib AND FA_DIREC) > 0) THEN BEGIN { Wenn Dateiname nicht '.' oder kein Inhaltsverzeichnis } IF (newdta.d_fname = '..') THEN BEGIN { Wenn Dateiname '..' (zurck) } work^[i] := ret; { Object fr Zurckicon kopieren } work^[i+1] := ret0; { "" fr ACSObject } END ELSE BEGIN work^[i] := dirs; { Sonst Object fr Inhaltsverz. kopieren } work^[i+1] := dirs0; { "" fr ACSObject } END; work^[i].aes.ob_spec.icon_blk := Aic_create(work^[i].aes.ob_spec.icon_blk); { Erzeuge Icon } work^[i].aes.ob_next := i + 2; { Nchstes Object } INC(i, 2); { Objectrecordindex erhhen } END; state := Fsnext; { Nchste Inhaltsverzeichnis lesen } END; state := Fsfirst(path, $27); { Suche nache Filenamen } files.aes.ob_spec.icon_blk^.ib_ptext := @newdta.d_fname[1]; { Icontext ist Filename } WHILE (state >= 0) DO { Wiederhole bis alle Filenamen gelesen } BEGIN work^[i] := files; { Object fr Fileicon kopieren } work^[i+1] := files0; { "" fr ACSObject } work^[i].aes.ob_spec.icon_blk := Aic_create(files.aes.ob_spec.icon_blk); { Erzeuge Icon } work^[i].aes.ob_next := i + 2; { Nchstes Object } INC(i, 2); { Objectrecordindex erhhen } state := Fsnext; { Nchsten Filenamen lesen } END; work^[i-2].aes.ob_next := 0; { Kein nchstes Object } work^[i-1].aes.ob_flags := work^[i-1].aes.ob_flags OR LASTOB; { Object ist letztes Object } window^.work^[0].aes.ob_tail := i - 2; { Letztes Object des Parent } Fsetdta(olddta); { Alte DTA setzten } END; { ------------------------------------------------------------- } { ffne ein Fenster und was sonst noch gemacht werden mu } { ------------------------------------------------------------- } FUNCTION file_make( not_used : POINTER ) : AWindowPtr; VAR wi : AWindowPtr; { Pointer auf FensterRecord } user : TUserPtr; { Pointer auf UserRecord } BEGIN user := Ax_malloc(SizeOf(TUser)); { Speicher fr UserRecord bereitstellen } IF (user = NIL) THEN { Wenn nicht gengend Speicher } file_make := NIL { Dann Abbruch } ELSE BEGIN wi := Awi_create(@DIR_WI); { Sonst Fenster erzeugen } IF (wi = NIL) THEN file_make := NIL { Fehler beim Erzeugen } ELSE BEGIN wi^.user := user; { UserblkAdr in FensterRecord sichern } user^.act_drive := Dgetdrv; { Liefert das aktuelle Laufwerk } user^.drives := Dsetdrv(user^.act_drive); { Liefert alle mglichen Laufwerke } user^.path[0] := CHR(0); { Bisher kein Pfad } make_work(wi); { Baue Workobject zusammen } wi^.open(wi); { Fenster gleich ffnen } file_make := wi; { Keine Fehler aufgetreten } END; END; END; { ------------------------------------------------------------- } { Initialisieren der Applikation } { ------------------------------------------------------------- } FUNCTION init_acs : INTEGER; VAR window : AWindowPtr; { Pointer auf Fensterrecord } BEGIN window := Awi_root; { Hole Pointer auf Rootfenster } IF (window <> NIL) THEN BEGIN window^.service(window, AS_NEWCALL, @@DIR_WI.create); { Routine fr Neu-Ikon einsetzten } window := @DIR_WI; { Hole Pointer auf Direc.-Fenster } window^.create(NIL); { Fenster sofort erzeugen } init_acs := OK; { Alles richtig gelaufen } END ELSE init_acs := FAIL; { Fehler aufgetreten } END; { ------------------------------------------------------------- } { Hauptprogramm } { ------------------------------------------------------------- } BEGIN { Programmstart } start_acs(init_acs, @ACSdescr); { ACS starten } END. { Programmende }{ Hello World for PurePascal - UNIT - (c) 1992 Stefan Bachert berarbeitet von Michael Schlter (@SL) Letzte Bearbeitung: 07.01.1993 } UNIT HELLOM; {$X+} INTERFACE USES GEM, ACS; {$I HELLO.I} PROCEDURE call_ok; BEGIN A_dialog (@About_me); END; FUNCTION hello_make (para: POINTER): AwindowPtr; VAR wi : AwindowPtr; BEGIN wi := Awi_create (@HELLO); IF wi <> NIL THEN wi^. open (wi); hello_make := wi; END; BEGIN END. ------------------------------------ } { Erzeuge Desk } { ----------------------------------------------------------------- } FUNCTION make_desk(para: Pointer): AwindowPtr; BEGIN make_desk := Awi_create(@DESK); { Erzeuge Fenster } END; { ----------------------------------------------------------------- } { Desk-Menu 'QUIT' } { ----------------------------------------------------------------- } PROCEDURE quit; BEGIN Awi_sendall(AS_TERM, NIL); { Alle Fenster sollen sich schlieen } Aev_quit; { P{ This file was created with ACS 2.0 (c) Stefan Bachert 1991, 1992 The contents are based on file: F:\PASCAL\ACS2\FERTIG\HELLO\HELLO.ACS compiled at: Thu Jan 07 21:52:30 1993 } { Pascal Prototypes } Procedure call_ok; Function hello_make (para: Pointer): AwindowPtr; Const { STRINGS } TEXT_001: packed array [1..6] of char = 'WORLD'#0; TEXT_002: packed array [1..14] of char = ' HELLO WORLD '#0; TEXT_003: packed array [1..1] of char = (#0); TEXT_005: packed array [1..6] of char = 'HELLO'#0; TEXT_006: packed array [1..3] of char = 'OK'#0; TEXT_01: packed array [1..21] of char = '(C) 1991, 1992, 1993'#0; TEXT_02: packed array [1..9] of char = 'ACS 2.00'#0; TEXT_222: packed array [1..15] of char = 'Stefan Bachert'#0; TEXT_244: packed array [1..6] of char = 'Autor'#0; { TEDINFOS } TEDINFO_01: TEDINFO = (te_ptext: @TEXT_02; te_ptmplt: @TEXT_003; te_pvalid: @TEXT_003; te_font: 3; te_just: 2; te_color: $1071; te_thickness: -1; te_txtlen: 9; te_tmplen: 1); { AUSERBLK } A_3DBUTTON01: AUSERBLK = (ub_code: A_3Dbutton; ub_parm: $21111108; ub_serv: Auo_string; ub_ptr1: @TEXT_006; ub_ptr2: NIL; ub_ptr3: NIL); { IMAGES } _IMG_SUNRISE: array [0..71] of WORD = ( $0000, $0000, $0000, $0000, $2110, $0000, $0000, $2110, $3700, $0001, $1020, $4880, $6c00, $8782, $3700, $1000, $1864, $0000, $000c, $2010, $c000, $0002, $4009, $0000, $0000, $4008, $0000, $0000, $8004, $0000, $000e, $8005, $c000, $0000, $8004, $0000, $0000, $8004, $0000, $3f1c, $7878, $70f0, $00e3, $8787, $8f0c, $fe18, $0000, $0000, $01e7, $3870, $3c60, $0000, $0787, $c39f, $fe1c, $0000, $0000, $01e3, $9ce0, $e1e0, $0000, $030f, $1e1f, $0f07, $e000, $70c0, $30f8, $0ccf, $8f3c, $0000, $0300, $0000); SUNRISE: BITBLK = (bi_pdata: @_IMG_SUNRISE; bi_wb: 6; bi_hl: 24; bi_x: 0; bi_y: 0; bi_color: 1); { OBJECT TREES } ABOUT_ME : Array [0 .. 7] of ACSOBJECT = ( (aes: (ob_next: -1; ob_head: 1; ob_tail: 6; ob_type: 20; ob_flags: $0000; ob_state: $0010;ob_spec: (index: $00021100);ob_x: 0; ob_y: 0; ob_width: 28; ob_height: 10)), (aes: (ob_next: 2; ob_head: -1; ob_tail: -1; ob_type: 22; ob_flags: $2040; ob_state: $0010;ob_spec: (free_string: @TEDINFO_01);ob_x: 2; ob_y: 1; ob_width: 24; ob_height: 1)), (aes: (ob_next: 3; ob_head: -1; ob_tail: -1; ob_type: 23; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @SUNRISE);ob_x: 2; ob_y: 4; ob_width: 6; ob_height: 2)), (aes: (ob_next: 4; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_244);ob_x: 12; ob_y: 5; ob_width: 5; ob_height: 1)), (aes: (ob_next: 5; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_222);ob_x: 7; ob_y: 6; ob_width: 14; ob_height: 1)), (aes: (ob_next: 6; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_01);ob_x: 4; ob_y: 3; ob_width: 20; ob_height: 1)), (aes: (ob_next: 0; ob_head: -1; ob_tail: -1; ob_type: 24; ob_flags: $0007; ob_state: $0010;ob_spec: (free_string: @A_3DBUTTON01);ob_x: 11; ob_y: 8; ob_width: 6; ob_height: 1)), (acs :(ob_flags: $8020; key: $8818;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)) ); WORLD : Array [0 .. 4] of ACSOBJECT = ( (aes: (ob_next: -1; ob_head: 1; ob_tail: 4; ob_type: 20; ob_flags: $0000; ob_state: $0000;ob_spec: (index: $00001100);ob_x: 0; ob_y: 0; ob_width: 25; ob_height: 7)), (aes: (ob_next: 2; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_005);ob_x: 5; ob_y: 1; ob_width: 6; ob_height: 1)), (aes: (ob_next: 4; ob_head: -1; ob_tail: -1; ob_type: 26; ob_flags: $0005; ob_state: $0000;ob_spec: (free_string: @TEXT_006);ob_x: 8; ob_y: 3; ob_width: 8; ob_height: 2)), (acs :(click: call_ok; ob_flags: $8000; key: $000b;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)), (aes: (ob_next: 0; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0020; ob_state: $0000;ob_spec: (free_string: @TEXT_001);ob_x: 17; ob_y: 5; ob_width: 5; ob_height: 1)) ); { WINDOWS } HELLO: Awindow = ( user: NIL; service: Awi_service; create: hello_make; open: Awi_open; init: Awi_init; work: @WORLD; ob_edit: -1; ob_col: -1; wi_id: -1; wi_kind: $000b; wi_act: (x: 0; y: 0; w: 34; h: 14); wi_slider: (x: -1; y: -1; w: -1; h: -1); snap_mask: $fff0; name: @TEXT_002; info: @TEXT_003; wi_type: $2710; kind: $0003; icon : -1; iconblk: NIL; menu: NIL; keys: Awi_keys; obchange: Awi_obchange; redraw: Awi_redraw; topped: Awi_topped; closed: Awi_closed; fulled: Awi_fulled; arrowed: Awi_arrowed; hslid: Awi_hslid; vslid: Awi_vslid; sized: Awi_sized; moved: Awi_moved); ACSdescr: Adescr = ( magic: 'ACS 2.0'#0; version: 200; dx: -4; dy: -4; flags: $0013; acc_reg: ' HELLO WORLD'#0' '; root: NIL; acc: NIL; mouse: ( (number: 0; form: NIL), (number: 2; form: NIL), (number: 3; form: NIL), (number: 4; form: NIL), (number: 1; form: NIL), (number: 5; form: NIL), (number: 6; form: NIL), (number: 7; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL)) ); implementation { Pascal Routines } { 'call_ok' Not defined yet by user } { 'hello_make' Not defined yet by user } .    .ACS(   ACS 1.0d HELLO WORLDY?#O3H0x21111108L--`ABOUT_MEC   @  ,ALERT LISTE,b,A_3DBUTTON01,A_3Dbutton+Auo_string+DATA LIST+.+xFENSTER LISTEO3 *N* HELLO_001b SO3t! "'* ICON LISTE)) IMAGE LIST)d MAUSFORM LISTE) MENU LISTEO3() OBJECT LISTEO3(vPOPUP LISTEO3((ZREFERENZ LISTEO3 !' 'jSUNRISE$ !!7 Hl7d @ @?xxp㇇ 8p<`ßp0 Ϗ<&'TEDINFO LISTE&\&TEDINFO_01q %&0$$TEXT LISTE%%TEXT_001hEWORLD%.%xTEXT_002 "UUT@5UUUV? HELLO WORLD $%$TEXT_003UUT5UUUV?$$TEXT_005UUSHELLO$,$vTEXT_006@@0@0@ h TOK#$TEXT_01(C) 1991, 1992, 1993#h# TEXT_02ACS 2.00##PTEXT_222^X!Stefan Bachert""TEXT_244Autor"X"USERBLK LISTE!&!pWORLD_001_C  call_ok!hello_make?Uffg{ Hello World for PurePascal (c) 1992 Stefan Bachert berarbeitet von Michael Schlter (@SL) Letzte Bearbeitung: 01.01.1993 } PROGRAM hello_world; {$X+} USES ACS, HELLOM; FUNCTION init_acs: INTEGER; VAR wi : AwindowPtr; BEGIN wi := Awi_root; { root window } IF wi <> NIL THEN BEGIN wi^.service (wi, AS_NEWCALL, @@HELLO.create); wi := @HELLO; wi^.create (NIL); { sofort ein Fenster erzeugen } init_acs := OK; END ELSE BEGIN init_acs := FAIL; END; END; BEGIN { ACS } start_acs (init_acs, @ACSdescr); END.TEXT_01AbbruchX(TEXT_010 Tn Tasten wird.)TEXT_011 *Die Pfeilobjekte und Tasten4~*TEXT_012XXXXXXXXXXXXXXXXXXXXXXXzhlen hoch bzw. runter.+TEXT_013_______________________Der Wert kann auf andere^,TEXT_014Ҿ@Program Hello1; uses GEM, ACS; {$I HELLO1.I} Function ACSinit: Integer; Var proto: AwindowPtr; strng: packed array [0..11] of char; di: Integer; Begin proto := get_protocol^. create (NIL); If (proto <> NIL) Then Begin di := proto^. open (proto); strng := 'Hello World'#0; wputs (@strng, proto); End; ACSinit := OK; End; Begin start_acs (ACSinit, @ACSdescr); End. %R4) DIR.PASCS!{ Bʤ'M6aafM:i޸a&ALi "iC獜<":&.r1N3a( 3M9t ( 6) #define MEM7 ( 7) #define MEM8 ( 8) #define MEM9 ( 9) #define MEM10 ( 10) #define MEM11 ( 11) #define MEM12 ( 12) #define MEM13 ( 13) #define MEM14 ( 14) #define MEM15 ( 15) #define MEM16 ( 16) /* WINDOWS */ extern Awindow MEM; /* ANSI-C Prototypes */ extern INT16 CDECL A_3Dbutton (PARMBLK* pb); extern INT16 CDECL A_ftext (PARMBLK* pb); extern INT16 Auo_string (OBJECT* .ACS?Jy   ACS 2.0 ACS ACCESSORY ?#O3HryALERT LISTws@DATA LISTwx,ICON LIST{wZIMAGE LISTs|FMENU LISTzXtMOUSEFORM LIST{*zOBJECTTREE LISTt{tPOPUP LISTxt REFERENCE LISTv>x TEDINFO LISTulv TEXT LIST=Ru USERBLK LIST= WINDOW LIST{ This file was created with ACS 2.0 (c) Stefan Bachert 1991, 1992 The contents are based on file: E:\ACS.BSP\DEMO_PP.PRG\HELLO\HELLO1.ACS compiled at: Sun Jan 10 12:11:00 1993 } Const ACSdescr: Adescr = ( magic: 'ACS 2.0'#0; version: 200; dx: -4; dy: -4; flags: $0013; acc_reg: ' ACS ACCESSORY '#0' '; root: NIL; acc: NIL; mouse: ( (number: 0; form: NIL), (number: 2; form: NIL), (number: 3; form: NIL), (number: 4; form: NIL), (number: 1; form: NIL), (number: 5; form: NIL), (number: 6; form: NIL), (number: 7; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL)) ); BEGIN slave_count := 0; {Zhler 0-setzten } END.*+ A_3DBUTTON02*vA_3Dbutton*,Auo_string)DATA LIST)) FENSTER LISTEO3 (( HELLO_001b SO#t% "'(b ICON LISTE( (V IMAGE LISTE:\ACS.BSP\AM\RECHNER.AMLO\*.AM@0IQI:zd,3(:n 1\1#`A&Oȫ` ,+* "RRp)E8R flDH8 )O*"YCZH#KB&7g "M:_ڔIA"9J'N@4Fz5e-'!KI6ȝ4nȼV!E }ǟ[pN:~_QQce`OTWRF@!> Pᗄ.e؄~# DAWYv @(B@) HELLO.IAS [{ &H@M9 ̤aSĝ0 )N2A"Ȑ) dŘ \4 !aƠProgram Hello; uses wwriteln, acs, hellom; Function ACSinit: Integer; var t : Text; i: Integer; begin ACSprotocol( t ); Rewrite( t ); Writeln( t, 'This is ACS pro 2.00 output!' ); for i := 0 to 90 do Writeln (t, 'der Sinus von ', i, ' Grad ist ', sin (i)); { Close( t ) Ist sonst gleich wieder weg!}; ACSinit := OK; End; Begin start_acs (ACSinit, @ACSdescr); End. 0L 05%T`KYhѪU6#\& H@-ha#0p0q 5+Y -, TE2'U|iR`JTR#$ JNX@---------------- Pure Pascal for Atari STe/TT Version 1.0 (c) 1992 Pure Software GmbH ----------------3`BN y fJgaFaH yN Runtime error at offset $0123456789ABCDEFHP?< NA\ONuOAa09r Oa8 OpB0a&y(J g.Aa&98<|;??<NAXOQ?<NAO Nur&H fr&oH + Ым*@Ы,UC#"k" <*AYM#0.M// ?<?<JNAO #(pr+g|<fB k, AfE"H gJ"gJfJf`VARGV=XOA$H`JgBR@JfHR$H`A"HB0< c<"frJg "f`B(R@HQ"HJf*3,J9HgB?< NA\O x"( e\$<dzet dn ehdbe\dVePdJeDd>e8 d2 e,`0e$ eeee e dB9H/?< NA\O#h #n#### #$a#HyN0<`0<r;kB/o `:0<`40<`.0<`(0<`"HP o P@e P@b _/9$Nu _0<Nh"yb0<Na#BgHz?<Ns`?9?<LNAJ9Hg~p y av# p yad#p yaR#p ya@#p ya.#p y a# p y$a #$NuH瀠>NMPO @$_NuHR!|1|װr!A!A 1A!|E!JA4pxd2E`QB$_Nu0(|װ|װfHS&H kװg + g "@N3RkB+ +g "@ KN3&_Nu0(|װ|װfHS&H kװg + g "@N3TkB+ +g "@ KN3&_Nup|#`r;Nu  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~rt`rtJAlrQOHP?A2a0 _"OaPONupJ@k hײeBH&H(I6xc`p aQ`aQJyf (g "@N3 KLNuCv`Cx`CzJ@lpOHPA? / / ANO _"OajONuC`\ Jyfn"( b2(f* (gHP"@N _3fFJ f`2"("hg1` 1R!A<g̰< g(NuJyg#3`ByNuJyf0"h"(R!A (Se (gHP"@N3 _NuRHHPJ@l JAg-D@C&Ye2)t AUA 2f"_ Nu'd 09876543210a3NuJlD@| |l@0; `p`pNuHRHS&Hp'@'@'@ 0+|ױg$< j'B|ײf2<<`'| ('| <p`7|ײ2<=J+4gl$+4NULgVAUXgPRNgCONgDļLPTgvCOMgX'| ?Hk4?NAPOJl a 7|װ`6p&_$_Nu kױgp$< 'B'B`p'| B`+7<1SbJ+8fp`+7<1UbJ+8fp'| j`HSHR&H??<>NAXOJ@f7|װp$_&_Nuav`a<< gpNuHRHP/(/(??<?NAO _$_Jk>!@ BpNuHRHP/(/(??<@NAO _$_JkBB pNuHPa _J@f$"( g"h R AapNuHRHP"h (B`J!f QHQ?< NA\O _$_BB pNu3fNu3iNuByFBy.Ap,"@ "A3@@."`"p"@ " \1B3."ONu/ Hz?<&NN\O$_Nu5|$Ap" EP jW5|H j W$$$ jW5B j W$$$ jW5|h j Wf !R!R$ANu5|$Ap" EP jW5B j W$$$ jW5|h j Wf"#R#R$ANuJ9.o@'h0T Nu2<@Jg@jD|bH@|bQAbYAJkSAЀj0 BNuBA`r@4IBACF0 Hg8]r@g4IBA?/CZa _0Hg4HB@CaNu?@@@@ @@P@$@@ @k(@ @#C@@&ԥ@**@- @0_1@4ɿ@7.@: k:v@@>#@AxŬb@D&z@Hx2n@Kh? W@N@RYQa@@Uo@Xˏ' :@\?9x @_6 @bgN@eo|@E"@iŭ+p@xIϦA=ﳫśAGɀB+B|p9'UkBR<0CQ~ގC&\j/D&/)vD'ې DEd鰜YEϕzJF9>bFMHvuu S5;9Z;]=]a7T g]%؋Zn]Ȣ'u%`R {ʮ5bnYJ9.o/(/(Bg?H2!h3Q2Nug4L NugSCJEjSC>FRGo&|2n^0A^C aA 0gRGS`BGDo.Go SC`JEj-DSGQSDm.Q`SCDo SC`JEj-0.G`0Q`Q`NYCo SCnJfJfp JEjp-Inf`  NaN` NKJ9.o/(/(Bg?H2!h3Q2Nug4GGG//?AOCahK/%/%?%A~a KMadMQCaC 2""AC`DaA a:AaC fIa<,,OFEEn3FL`Nu?*Eq? `B?$r">?*¦?SK? ?%s7?x'? ߜ?Pm?H7+@H?;q?㤅 i?~HT?-!b2?JTB?Š[#?lF?kjqĎ?M Vv?F$?Z^ŝW?ɉl,~!?Փg?@&Nh?,n?zOUY =?Lu7?SB?l?zߚ:R?{Vi`?l\@?7 tn?d]J? Z0?zF?gw?4N|?[R?&)e:Ӻ?˙y0?6Y_5?;Oq3?e3ZK? ׬?}w_?8=4;?﬋??]?Ƞu?$(0r@Ag8"(jNufJf @DNuH@aJ@jR@fЀPDNu"(fJfJ@kDNuDNuDNu2""]INur2` r`r2""]INuap` ap`apHQ//aP.Nu@TXJ? ?ry@ڢ!h5?ڢ!h5?ڢ!h5?@@NaN-INF+INF(C)Xmath by d'ART|b @0; gaNuaddCJ9.o(0(1H0/)/)Bg?H(h01@Nug 4CG?bfb RGd6|/|$F,HF.h.BGHG҇~`"BAHA,HFpHAHB024 6<?~Gj SWԅӄGd, Q,HF.h.BGHG҇~HA`"BAHB02BB6|FjSG҄FdHG>HG9Gf,⎜bHFRFkHz``, c9Gg~9GfJkb`lJkf`X//&HC0BCHCH@B@4rЂׁ"$dSGԅӄNu9Gf╚kfg` JfJg`,HFRdR`,HF  @c"$Hza` ЀP !1L NumulJ9.o(0(1H0/)/)Bg?H#h01@Nug4CG?/p<6>܇׀HAHBHDHE>܇׀?<BCHCHF.HG܇׀.HG܇׀.HG܇׀.HG܇׀.HGև.HGևр?<6HCHFp>܇׀>܇׀>և(".Jkއ9GgJg j c a0JfJg9Gg9GfJkt`Jk`h/"HA.HGpށ@H@HG0BGHBHE2tށـׂ݂p"Jk އل݆׃SANu b c0a b f$JfgJk؄݆׃SAR׀fRA` Jk؄݆׃SA Ae "$Hza` ҁQ !1LNu6C`6*)<<HFFg6()kfJfU`SCڅلj0"$HFFgJjNuf4Jf0]Nu()fJfY`JfJf  Nu\HNuJkS@ԂӁjNu0<rtv`H@Frtv`<<6(FgF Cpn @b:H@@9Gg 9Gg 69F[Ck S@rt`rtv` @n0H@@rtv9Ggv9Ggl89F\Dj`t`PvxR@fЀP9Gfg,` 9Gg 9GgJ@k`J@j JgRdR !1.Nuv]H//?HW//0aPO0 ]H.NuJIfA4ByBBByBBPC!IC!I#>BBB9N~Jy.g |C*N |N |CNr |NNuACS 2.03 HELLO WORLD JJfN!NHNHNuNVH EANJNAN*NACNNZNvxZ0HAN PACN:A/ / ? AC^N0NC\NNO NZNRCQpLN^NuThis is ACS pro 2.00 output!der Sinus von Grad ist JKf(N!NJtNHN#"A"|"*N$NuJNfN!N$nByLNuJOfN!Nu yTNNu/ $I#T yP!J?E?C?CAr"R0)N!POL 8NuH0QO8:6En RhodGl0@|g Sg062< R0(N#` SUUg6UU2Ar"R0)N!POL 8NuH6YO yn"h@&iBCKEn`*|l00HЀ yn"hT81HW"M K0NXO yn"h@0)4U2)6W0H$ԂԀ s(f23(|g s( ,P`2H ЀЁ,s 0n2I54n50nnS@54nnSB5 0n54n50nn S@5 5`H0H5520H$ԂԀs(SA4z5 424H ЀЂsSA0H5BrRC ynhFmXOLlNuH(O?@?AEnr R0(N"r R0(N#lBBBA R0(N#r R0(N# R>?h 0(h S@?@2( hSA?AA"R0)rN"0<NInBC9C`8|l:0H tf:/t/t8/t2/t ?A Rh l~h Rh lxh 42/ 0Nr420Nh42/0/ NZ4/ 2/0NL42/ 0N420N4/ 20N4/2/ 0N`Z:/0Ht/t8/t Rh l~h 420N420N420NL420NBRC RhFm‘0<NABA"R0)N"BlOLNu ynBhHNuAn"P0)HiFmpNu"P0)HRiHHЀ"P"iT01NuH0UO$H6Gn S@g N+ S!J@p4H"ҁ҂ jp fN"S0)DiFoBr0H$ԂԀ犂p( "jf J0N S0(FRhFHЀ S"hT3>Cp J&jNTOL NuHCp J*jN` SCTLJCn\TOL<NuH0En R&h@0(FoPBC`40HЀ R"hT81RC4H ЀЂ k20 |"kf K0N RhFmBhFp K$kNL NuH8$H6:8(IH$ԂԀ&jk0kS@lmplnhk0kS@QmXlnR2<kfHtk f@0+| g0N`.<+JFo&"L420 JNz2H ЀЁ j<0FfLxNuH8O86N l:N$H gGnp ShffN S h?l0lS@?@2,lSA?AC4*62*4 JB@Nz S h2H ЀЁ82DfJGk0`0LNuH?|?h0(h S@?@?h 2( h SA?A 2|?I ?I?I?I?I?I?I?IC$k KpNNB&0/VHH@?@ 2/THHA?A?oV:K8:T yn>(fpGg|G0@?w 4/H"ҁ҂ҁ yn h/2pGg|G0@2/w g(?w 4/H"ҁ҂ҁ yn h?j ?j ?jN0*H0| |(b4@0;NR(((((((((dr~6666(((((( ((((((((2*0*NRF`C K(kjN` K"knN`pkTg K"krN`p K(kN` K"kvN`0* K"kzN`z0* K"k~N`j0* K"kN`\C K(kN`PC K(kN`Dp K(kN`6NT yn1|~`$ g MNT` MNF` J"yn"iNNi&POL<NuHN0&HHWHoHoHor B@N!NEn R2(d0(bN l6N&H g"R8)dk6JDj(r iNuNuB@Nu/ / En&R7@&R'H&R'INUJ@fN:rNXbB@`NXbp&_$_Nu/ En$rC* RAN R!|2 R1|6 RBh8 RBh: R!|T< RBh~ R!| R1|D R!|rT RBh RB RB R!|< R!|< R!|O$H(IGn S!J\K 0nr JB@Nh2:`:BT0nBUvM `D0g2@g8BUt"NBA JN|HWHo SHhfHoHhdBgBgBgBgBgBgBgBgBgBgBgBgp?"HCb4rpNO.8r@gBD2/ S0(f JNgJ@k:"Mr JN`6`p Shfg2/A|f"J hXNrpJ@fHo"M4/20 JNXO6r 0H$ԂԀr(g0Uo:0/J@g|K4g|gF`ft"NBA0 JN|2H ЀЁ r /P"oBt"NBA0 JN| o`4t"NBA0 JN|t"NBA0 JN|`t"N2/0 JN|pDg S?(d4(br JB@NTO:R@fhBU WfBC`l:* p S"hj S"hX#|>6f S"hXiVBWKp S"hO,H$I(oHN3ANZ6 Jp\N&Hg" f8N<A|:B@AN4C*4 JN^p\ JN&HC*6AN"L KN^KB yn"h0|g| g|g`Ho&"M JN XO8`/Ho*"M JN PO8JDgv0/&gngj *:fb MNr f -.f "L MN^p. MN fC*7 MN^"L MN^p\ JN&H"MAN,J`A0NZN9 NO(L|Nu0Ql00(il1i0h2iAoh00(h2)iAoh1ANu0h2iAl`0i2(h4)iBl`2)i4Qo`404(io`4)1B2@1I0h1@2(oJ@n B@1@1@Nu/ $H g0"yn2)6f4)8g JNj`N%j JNjN%$_Nu// & yn2(6f4(8g N$H`N%j N$HN% fA/[pN ` J$_&NuH8$H gBG* Sp n <N(H f JN>`(B& S (R S!LNu/ / E*` R ( pN R (SJn RB R&P gN$`&_$_NuH8(H$I6H"ҁҀAt hf6rh f.G0+|g $gAn"P#LX"P#J\"P3C` SNLNuH $H:0*H$ԂԀ42(H"ҁ҂620*H"ҁҀ82` 2H ЀЁ622H ЀЁ82Ef0L8NuH0QO&H$I68^f2AN_F2H ЀЁJDgj `j C K$kjNPOL NuH6O&H$I6 IN88r"J K0NHWHo CANjPOp2/@|?@MKzBo 2H ЀЁ?r?r"J M0N_F0j4H"ҁ҂牑rBU0-j4H"ҁ҂牑rBm>m ynhh JGo2H ЀЁ爟rU>-m ynh hJGo2H ЀЁ爟rm MN`/H?-?-?-4r0 JNZ\OpN HWHoHoHo HoBgBgBgBgBgBgBgp???/.?/2??/2C842pNO.>pN ?/4/ r0 JNTO<@f|Fgؑ0<N0/ g>4H"ҁ҂r p?42 |??.?.?. J0BA4N4O JFkpp4H"ҁ҂r f\"J N0N_Fp?r0H$ԂԀ犂r( ??.?.?. J0BA4N4O 2H ЀЁr ?| `Bo 0<N:JFj?/4/ r0* JNTO<J@kHWHo CANjPOp2/@|?@Fg`4H"ҁ҂ 2 fL"M oNa2H ЀЁ55"J K0BAN60 JN.8r"J K0N`FgpGg"M oNa2H ЀЁ55Ng6JFo6jg0jg*2*H ЀЁ爼rgNY0"J KNTNZBA0"J KNO"LlNuH>O,H:IKHWHo"L MNjPOp2/@|?@?|Bo 4H"ҁ҂<6JFkn`2H ЀЁ<6Fgp4H"ҁ҂v gغFg@2H ЀЁ462H ЀЁ爕v0H$ԂԀ26(0H$ԂԀ犓v(G0"N KN_F0j4H"ҁ҂牑vBS0+j4H"ҁ҂牑vBk0k ynhh ?@J@o4H"ҁ҂牑vS0+k ynh h?@J@o4H"ҁ҂牑vk KN`/H ?+?+?+4r0 NNZ\OEpN HWHoHoHo HTBgBgBgBgBgBgBgp??????/0"M42pNO.?@ pN ?4r0 NNTO<og 2/ gh0/H$ԂԀv( 0<Np?4/H"ҁ҂06 |??*?*?* N0/BA4N4O 0<NJFkFgp4H"ҁ҂v ft"N J0N_F0<Np?r0H$ԂԀ犂v( ??*?*?* N0BA4N4O 0<N2H ЀЁv ?| `Bo ?F0/ g4H"ҁ҂ 6 fr66C>6JGkd?4C N0rNTO@fL2H ЀЁv=Bv N0N84H"ҁ҂vJ@kvEg NNhк@fdJFjT2H ЀЁ>6`60 NNh6?4r NNTO8J@k@f2H ЀЁ>6JGjJGoJDj po g8"K o Na0O$L|NuH0O&H$I?@?AANA JN^0/j82/j2HoHoC"A$NjPO yn0(@o2(Ao5o5oB@ JNx6Ng6JCoNY0"J KNNZJCfvANA0OL NuH068N0$H&j^NY|f yn hN` 0"K JN:NZr0 KNL NuH0QO$H:6&j^$ gf>?k0+j8l`0*8?@?k20AN=J@g22+H ЀЁ83?4 K0rNTO:@l"K JNPOL 8NuH0YO$H6?A&j^$ g KNg>J@kt4+H"ҁ҂:32H ЀЁ<30+H$ԂԀ>3(680 KNh6J@k,kf`(2H ЀЁ<32H ЀЁ>3Ffp`^GfNY0* f$BA K0N0"K JNr0 KN`"r0"K JN0"K JNBA0"K JNpNZB@XOL NuH $H6*"yn2H ЀЁ5 622H ЀЁ820H$ԂԀ r( N*JEgRE0 yn:4H"ҁ҂牚rr4H ЀЂr<*0H"ҁҀ<22H ЀЁ82Dg22H ЀЁ<22H ЀЁr0H$ԂԀr(`LxNuH8OEnN R0J@k 3*G RHhHh"K KNFPO R1@ R1@ RHhHh Hh HhrB@N! j0N$_NuSy*f09(f y*09*NNu09(Ry(J@f 0<NNuSy(f0<N y*09*NNu?/ 69*By*0*!y* yn$h j0N$_NuH>UO(Hv$Hּp JEhg NG&H g"L NBW$K*J0*|f2* | f*H|| bB4; N T*xxfx j N]t*H%H `^ j N^(H*L%M ,g C,@ JpN Wf6`8 j N]@*H%H `" j N\*H%H ` j N^6*H%H f`p JEhg. KTOL|NuH<$H g&J0+|f2+ | f+H|| bnB4; N N$dBdBZB k N]`@(k ,g K*@pN LN^.`" k N^x` k N]l` k N]"p KGhg\ JNHL<Nu/ / &Hp"NG$H g"Kp"N kN^6%H f` J&_$_Nu/ $H g jN^x JNH$_Nu/ / &HpNG$H f`p"K JN J&_$_NuNHNu/ / &HpNG$H g>"KpN SN^6$ kN^6%H kN^6%H g "*g$f` J&_$_Nu/ $H g$ jN^x jN^x RN^x JNH$_Nu/ / &HpNG$H f`p"K JN J&_$_NuNHNuH0$Hg,N&R NG&H f` "J KN K`A*L Nu*gNHNu?/ $H0* |fj 0*|f JB@N0*|gLQ@g`j j 6(h0(h@l6jo5C6(h0(h @l6jo*5C`$ j 6(Kjo5C0*hl5hp JEhgb$_6NuH8&H$I6H"ҁҀAB@4(|| bB4; N &&N4&& ( rHD@`"h 0)D@`rprhgp2(|@gZp`V"h (Q0fF )r||o|")t|JAo 4(|@gRAth[BfRA4@0`pJ@jB@rh g|lp2(|@g|lpBAt h gJ@o2A`2DAA4(@64(@7B4BhA7B4BhA7B82H ЀЁ62|g"0H$ԂԀ犸r(f82(S82(k`LNuH4O$H0jjBP0*jjBjGn0j Sh J@oj0*j Sh hJ@oj0?j2j|?A4*jSB?B2*0/WR@Nv*H gPBoBo 2/W?A tj?B0<N/ "SCjAr$S0*N$rXO0<N MOL,Nu/ / O$H&I f2?+?+?+??+?+4+2pNO N9`0O*H&I?@ 6E 2H ЀЁI4<lfpl fJCgl@ `l plgvHoHo HoHor B@N!Ni"Jp M,mN;R;|0-"KANrC MNprB@ MNiv0,| gDJCgrlgN+0"K MN`pl g M0N*`0 MN*H`pDlfrlg|tl f K0Nh6H"ҁҀ83`>p4H"ҁ҂sgps g23 | M"mf0N2H ЀЁ83Dfrl 0 M"mfN`plgr4, A M"mf0NOL|NuH+k0"KAN_F7G0k2/koj8l oj:mJEgC JNpN92H ЀЁ s *P4*j MN5@BjV#*>+?k0*4k0*6k4C20 KN||f7G7oO L,NuH>O$H86&j$ gbRAf4H ЀЂ63 I 849j69j89j::* JEkK42H ЀЁ<3 >+>4k4-k0<NMHnHnHnHVr 0N!3(4H"ҁ҂ sf67H>+4H"ҁ҂23H ЀЁ2H$Ԃԁ7(?/?/?/4/r0+ KNZ\Ooo0/o??/?/4/r LB@NZ\OHoHoHo Ho r 0N!`2 <2*@HNT@>` <2*BHNT@>?WKI 6+8+0/ |b@0;N 0@P`pJDg0*:k`nDg0*:k`^JDg0/k`NDg0/k`>JCg0*8k`.Cg0*8k`JCg0/k`Cg0/k0+oBkko7E0+oBkko7F0+D@2/DAAD@7@4+DB0/D@@DB7BSof JN ?W20 JNtHTHU"L LNjPOpUf0/Wg JN OL"<N2*H|ACg$ j1@ j8( JN 20 JNtLNuH $H82* oV"j6)H2)j:HN>"<N2*HAACg$ j1@ j8( JN 20 JNtLNuH8UO$H0* oxB@&j2*H|DAAi2*HADAAi>8+:*8<*:2jkp2)jkpil5i8pil5i:p2ij8JAokp2)ij:JAokpJ@g(j^ g4,H"ҁ҂64`BCHj*Hj(0*:C??*82*6C?C&A$4*42*"B@NO0+D@2*H|AD@7@2+DA4*HBBDA7A JN 0+Wfkf j8fj:g>jV?**?*(?*&?*$r0* N!PON9pjVg C$ J&jjNTOLxNuH0&H$Irp INh262<@ JNh28J@j2<@ JpNh28JDoRCgNJCk2H ЀЁr2H ЀЁr K0N*4H ЀЂ22 K"kf0Np`B@L NuHO$H6* JCk8"ji:iG0<jTfxj8lp2*8DAAofj:l`4*:DBBoVHkHkHkHS0r N!мNG g0C 1C1E1DBh "yn1i BA1A1A1AL8NuNGNuNu/ / $HG*0+fN NZ>N#:#>!|wDp"| RNFAV0*@ "P3@"yR3@"P3j"P3jpj"P3@7@rj"P3A7A K"yn0)rN"&_$_Nu/ / E4AV0"yR3@"P3@"P3j"P3jG*0*"P3@7@2*"P3A7Ap"| jNF j!j  Kr"yn0)N"NZ\&_$_NuH|lgn`|dgn4|gn|gW@gv|gt`z|ag\S@gXS@gT`h|e|b^@0;N>>>>>>>|m| b<@0;N `` `RH`HNuH>O><$H?BI*0<ogNx",fHx"| |NlXO)P ,g2/| @0`B<amJ<znD`/BD<am <znv`(<Am<Znxv `Jo< l x<`<@H JN&HH JN g"gd&HKn ggB+BA U0(N#2C J,U0.N%:/WTBg8 J42"U0)N%2 U0(N#2C J,U0.N%6/W`2 U0(N#2BC|fSC L42C"U0)N%BA U0(N#2+g * g @N^6%H * fdA+N^6%H `R K%P0(H%@`@ j N^x`4 j N^x KN^6%H `&j gr0* K"kfN`B@`p&_$_NuH8Gj `:*?j>* 8* ofԺ|fpjgrªgG&`G'`pgG'L`G(B@?@ ?@ ?|?| ?j pD?@rj ?At D?B#+Hy+ THhjC+A*T0-rN$>O$onG:In0*f2*g867j0*jS@7@2*jSA7A K"T0)rN"` KBA"T0)N" T0(@j 62(Aj 7A4jSBh7B0+jS@h7@.6*4*CJCfn0(rN"0/H|fBA T0(N#`Br T0(N#0/H|_@fr T0(N#`2/I| T0(N#ro T0(N$BA T0(N#0H@W@f,RSRkSkSk K"T0)N"SSSkRkRk` K"T0)N"r T0(N#r T0(N#l2/p i| T0(N#BBBA T0(N#M&0H@S@g2IAUAg 4JBWBfv0H@W@fBA T0(N#`2/p i| T0(N#0=@=@ <2+=A=A=A0+=@=@2+=A=A N"T0)rN!2/p i| T0(N#0H@U@g 2IAWAfLpS=@=@ N<*oFj `^<* jo Th`J<* Th`"<*oFj `<* jo Th0* j Th@`<* Thj 4 o20NpCf rjgz0H@S@gS@gS@g`TSTkUkUk`RSRkSkSkr T0(N"r T0(N#r T0(N$BA T0(N# K"T0)N" KBA"T0)N"pjOBL||NuH?>O$otG8In0*f2*g867j0*jS@7@2*jSA7A K"T0)rN"` KBA"T0)N"2*H ЀЁ R/HAt "oif0(|g8( `BD o h . g @N&`BC/j@ /@r||o|2/@IA|?A JAot ohgRo roBQAf4/BJ|_Bf T hlr`BA?A T:(4* @62* @7A4* j@SB7B2* j@SA7A0*4*@?@J@f$"/@¼f0(rN"0/g ~pEG|E`>/BO||oBJGfBA T0(N#`2|fr T0(N#`r T0(N#2 T0(N#2 T0(N$BA T0(N# K"T0)N"JCor`>+oRG`>koGRG4 W20N|>/Bp o|PVl|k` zjDkzjDk`ZzjDk`8zjDkk`:k` 0*Bk0*Ck`0*Bkk`0*BkkJDgr T0(N#l`r T0(N#l2IA| T0(N#4JB|B2IA|0A T0(N#ro T0(N# Kr"T0)N! KBA"T0)N"pjO L2* ?A?A?A0* jS@?@?@2* jSA?A?A A"T0)rN! KBA"T0)N"pjOLNuH?>O$o^2*H ЀЁ*R*m &m KN&0* jS@?@2*f,4*f& yn?h&?h (?h *0( h?@,`?j&?j(?j*?j,po&o*po(o,0/,oo?o,0/,o(m@A&r"yn0)N":* /j r yn0(N""/ p| yn0(N#$BA yn0(N"./ |?2 yn0(N#20/ |?@J@f yn?hIHoHo"L L2/*yn0-N"PO"/ p| yn0(N#@MHVHTHo$"L L*yn0-N$O 0oo?j ?jrGg4*ooRERoUoToTo0/nn>"/ t|?AJAgSAgSAgDSAgl`0.o`^pjnorGgUo"L Ltr*yn0-N#N`D0*nn@o"L Ltr*yn0-N#N`"L LtBA*yn0-N#N0/n?|0H?@|o?| om*IB>/Gl>p| KN,HKp gdn8g< gSMSD  g -gJDnJDo.  gf<`|D0H"K LNB4`pD@`<0H"K LNB4pǖG<`",JFo0H"K LNB4`pF@gF of&Bgr??/ L4"yn0)2/ N%P\O` L42/"yn0)N%oJCoomA&BA"yn0)N"pjO.L|NuH0$H6&I j 2|,|bA2;N4Tt0H"¼t$(ļ!A`0H"¼$(ļ!A`0Hr€t$(ļ!A`~0Hr?€$(ļ!A`` (?@!@`J (?!@`4 (?!@`$ (?!@`"K0 JN{(`pL NuH8>O$o8GIn0*f2*g867j0*jS@7@2*jSA7A K"T0)rN"` KBA"T0)N"0*2*@f0*H$ԂԀ R h *hrj 6tj 7B0* j7@2* j7A T0(rN"BA T0(N#r T0(N$pm g& T2(ARAkRSRkSk0(BAN#`r T0(N# K"T0)N"6* ThCj r0(N#$BA T0(N"HoHoCA,T2.0.N"POr T0(N#@CAtBA,T0.N#NBA T0(N#2pm f T2(ASAktk60(rN# K"T0)N"r T0(N#r T0(N#lr T0(N#BBBA T0(N#8* j Thph@@A,`42"T0)N%p jg>6 2* jRA7A7A4* jRB7B7B7j Kr"T0)N! grr T0(N"8*H TUDJDjBD0H/ UN"d& U.B U4rj "T0)N% W` U4rj "T0)N% KBA"T0)N"pjOL|NuH8$H&I PNG(KBC`RLRCHA,bN gpCHNG(HJCo 0H"KNB40$j LNug<]fRH |f |fRHNuRH`Nu/ / $H jN&Hf&j` KN&H [g%K"K JNN&_$_Nu/ $HB%|,aNBj $_NuH8$H(I PN&&jBD [g$0H"K RNhJf30g<|f8`RDp| KN&H f8`RK`LNu// $HvQ%|,a` JN20SCJ@n$_&NuH8YO(I$h &j2|gn|b:A2;N.,| g|gSAgSAg`pNG&H gBrB@N~ * g @N^6'H`A,aN^6'H +g%K KN`8` jNH`"L KN` L'P'h7h`(`zBk . glrk gk r0+ W"W"ifNBk `H"L KN`>"L KNN`4 kNH LN^6'H fZA,aN^6'H`FB@`pXOLNu/ / &o $H2` |fRQ ]f *|gRQRJf$HpQ6` [fRSRJf&_$_NuH>QO/H$I?@,o48>2H$Ԃԁ(HpW8tW9B9|9|9| )| 9I9I9oBERR<`>2H ЀЁ*oRR V [f4;B;B;| vR`p;@;@;|BC V?j0*jS@?@2*jSA?A`( U>?h 0(h S@?@2( h SA?A0j l> 0/j l?j 6* jSCol?C6* jSCol?C0on 2/ooB@`RAr"U0)N"8+:+pg~BA?A>tD?BrE?A<* `N>* `:?G?F 0DS@?@ 2ESA?A UHhj"KA(U0,rN$rXOD0* j@mE0* j@m`B@?@>6*DJCorD?A0@j ?@`pj?@?j 0/o?@ 6*EJCorE?A0@j ?@ `pj?@?j 0/ o?@ UHhj"KAr(U0,N$rXOABA"U0)N"pjOLO$H&j 2+0+Nv(H gz0,HЀ2,HN>&8+ : ynhJEk47h 0H"N>A&"L yn0( KN$7D `2+0+Nv,H f LNwrn?A ?Apn?@?@Hy,f/ "NAr*yn0-N$C VN0D@H"N>"/0H"N> VB@"N~"L N*yn0-N$ NNw<%Lpf 'L'|B@OL|8NuH8YO(I$h 2|gnSAg"SAgvWAg`| gv|gP`p NG&H g*%@B. "gtĪf"A )f JNR@ff8`` WR%h`R JN%L`F jNG JNl`4&L j !k1k`&j(S gr0+ L"lfN`B@`pXOLNuH8I,n0,RlJ@fEnAH"R"i<0 "R0) "i$HBgBgBBBA0*"N BXO6|lJ@j^G,l8IHpS|6H*t2g8$ g4pmTf, MNHp M,mNBgBgBBBA0*"N BXO6`SfJCk |n0`A0pN pL|Nu/ B@CHA,2io BPJ@g`R@2I$qRP" g J$_NuH<8(HEH6*`0H&r" g "L K*k0NSCJCjL<NuH8EH6*`R0H&r" gDt kVg<kV4+ k$kV K"kNpkVgC$ K(kN`kVNHpSCJCjLNuH&H <NG$H <"KN *g @N[%H gfN^ *^g0 @N[%H^ f jN\$`> j^N^ j^NT *Zg0 @N\%HZ f jN\$ j^N\$ JNH` *Jg @N^6%HJ *Ng @N^6%HN5|V5|X5|BCGHI,nKn`t0H"3fhko7C0H'"gtjTg"J A,A,npdN0*$ U5@$2*& U5A&0*( U5@(2** U5A* J`RC|mA0{pN L|NuH8QO$H0* j$rjVgjV"jNJ@f JN6J@jp`G,n *fAN[%H5C 0HAH!Ir0?A?ANip yn"hr0?A?A?**?*(?*&?*$?/4/2/ 0/ NO 0N 20N \JCk0HAHBPOLNuH8$HjV"yn@fBiFvd` J"jrN0* k2SCJAnJCn JNG,n0*Xk"gCX A(A(lpeN j^N\$ jN\$ jZN]" jJN^x jNN^xfBN3BCGHI`00Hf$BTf0STJ@o 0H"3g JNH`RCToLNu?6( JCoNiBgBgBgBgr 0N!PO6NuH8O$H&jI$A,pjVg>89h9h9h0+jDf 2+jFgjV7jD7jF`$01l1l1lpjTg2 yn8 yn9h  yn9h  yn9h`0*H|2*HA4FBkk0F@kkHlHl?+?+BgC"A"2*"B@4NO0l yn2(h Ao8.^ g @4(H"ҁ҂20l0,l yn2( hAo9h 5kD5kF0+f2+gjVBkBk jVpjTg JN JN ?,?,?,?r0* N!POpjVgPr@ yn"h?|?PBo?j ?T ?l?l?lA&yn0rNN9pjVgjVC$ J&jjNNi&OLNu/ / O$H0* ojVG$67i7i7i0*gjVpjTg JN JN ?+?+?+?r0* N!POpjVgLr@ yn"h?PBo?j ?S?k ?k ?kA&yn0rNN9pjVgjVC$ J&jjNNi&O&_$_Nu/ $H0* o@jV5Q$5i&5i(5i*N ?**?*(?*&?*$r0* N!PO$_NuH>O$H?j &j(j^0*H|?@2*HA>F@k4/kFAk0kBF$ g0,H"ҁҀ<4>*$8*&6*(:**Ho Ho0+F??+BgCABB2*"B@NOoll0`0/ 6o l2`2/ :Kn Uh l0` U0( 6 Uhl2` U2(: Uhl0(`06 Uhl2(`2:MH0.o?@2nCAl4`4nC>0.nE@l2` 2.nE8Vl0`0>nl2.`28 U0(h hS@Gl> U0( hhFDl8Ho Ho???CA42*"pNOo 0/o2/oWSAWoF?Ao 4o & g0:,H(؄؅H 2/ Uh9A8/FSD9D5o45o65o 85o :0+o o?@2+D@@l7@:+o W0+2DAAl7AHj*Hj(0/F??/2/F?C&A$4/2*"B@NO0*"|gr jTfBC4/o 8+H 눐ЄD2HN&jg5C>0/oBgBgBg?r N!PO2/ H 눐Ё2+HN&jBg5CB0/oBgBgBg?rN!POOL|NuH8QO$H0*(yBo`09B?@Gn0*"|g S2(o0*H|o?o(j:,BFJEo4H"ҁ҂>4804?@>`0<4H"ҁ҂tf\6toolg0D@80oWBF2H ЀЁ爼tl<42H ЀЁ99oo?C8G2H ЀЁ:4JEnzW9ovj*pj"g Shpj"g Sh0*"| g Sh *^g @4(H"ҁ҂牖p0*H|C@d`09@jVPOLNu/ $H2UAg` JNp`B@$_Nu/0/N $Nu/ o 0/N$Nu/ oNT$Nu/ oN8$Nu/ oNr $Nu/ oN$Nu/ oNH$Nu/ oN$Nu/ oNp$Nu/ oN$Nu/"o oN$Nu/"o oN$Nu/2/0/ oNs$Nu/"o oNp$Nu/"o0/ oN$Nu/2/0/ oNt$Nu/2/0/ oNj$Nu/0/ oNl$Nu/"o oNl\$Nu/0/ oNm$Nu/0/ oNp $Nu/0/ oNpx$Nu/ oNY~$Nu/ oN[ $Nu/ oN\$$Nu/ oN^$Nu/0/"o oN_F$Nu/ oN` $Nu/"o oNa$Nu/0/ oNe$Nu/2/0/ oNh2$Nu/0/ oNh$Nu/ oNT$Nu/2/0/"o oNQ$Nu/2/ 0/Nv $Nu/ oNw<$Nu/ oNwF$Nu/2/ 0/N,$Nu/2/ 0/N.X$Nu/0/ oN*H$Nu/0/ oN*$Nu/ oN^6 $Nu/ oN^x$Nu/ oN\ $Nu/ oN]"$Nu/ oN]@ $Nu/ oN]l$Nu/ oN^ $Nu/ oN^.$Nu/ oN]t $Nu/ oN]$Nu/ /NG $Nu/ oNH$Nu/ oNG$Nu/ oNB>$Nu/"o oN=$Nu/"o oNG $Nu///"o o N"<N'@` +jB l'@$k:* p Wg(Jo"+ 눐Ё"N&`BCj>g5C>JEoBgBgBg?r 0N!PO"+ 눐Ё"N&jBg5CBJEoBgBgBg?r0N!PO`"+ 눐Ё"N&j@g5C@JEoBgBgBg?r0N!PO(Jo"+ 눐Ё"N&`BCj + ѫ`4 + `* +ѫ` +`B` '@`B@`pXOL8NuH0&H86|m6<E\2Hp JN~B20 K"J f$`.< f2$ H…HBBtAB`g2SCJAf JL NuHBB6(f `&  f8:HŋHEEDBm`RBRCgBn0L8Nu//BB&f`$  f68HĉHDDC`RBg8SAJDf0(&NuH?>O oh2(H ЀЁ(P,l &n grkg LN?| pkg rkgBo oh0( ?@?@0( ?@rkJotkHB2(?A?A4(?B?B2ol?o2/ol?or ohhotho2oo?ool?@0/on 2/oo oh0(`I(89o9o9oKn Lr"U0)N"6+>+r U0(N#p@kf\r U0(N"BA U0(N"2+ U0(N#$E HRHR"J J2+,U0.N"PO2 U0(N#@BA U0(N#2"J JtBA,U0.N#NBA U0(N$/k ,+?k  k,.2/k?Ato?B2o9I 9I`0/ooj2/ fff\0/9@ 9@2/kSA9A9A(n$ /o4+|f W$P" g*BD`  f02HHAA@`RDDof:G`zJEkgJEo2HA\p N~M\`,< f 82GHHAAD` 2SDJAf`REgomBA\4/2/"U0)N%ol&0o8ln`8 L"U0)N$&p Whg8rhf 4+|f$0+pfR0g8fF0+|g0f" +@2H2+HN>o9@8` 0/9@88f\`6 kpf0+|g +@2H2+HN>o9@8 +D2H2+HN>oS@9@ 9@0ln UHhj"HCj Lr $U0*N$rXO0/9@ 9@`<0/9@8 UHhj"HCj Lr $U0*N$rXO`8 L"U0)N$&0+oPRS0/omr0<kg."+0$+ԫ lm8/ f *+ff0+|f"+0 k,.2+B P0N~?@2 W P0N?@r U0(N"r U0(N$0/G ohh ?@ 2+2kh ?A"4/ kSB?B$6/"kSC?C&4+SBg SBgJSBg`:po&?@"`8r U0(N#BA U0(N#A "U0)N"`po ?@$A "U0)N$& LBA"U0)N"p ohhO8L|Nu// (0"(Ҩ S(o"(($ R!BJjB$(&JnJo>Joxl`tl $( ₐ`tԨ "(( Rl Jjp!@&(@"(Ҩ o"( on. (R"( l&Jjvg h!C(&NuH0$H&" g&J` [NG SJf JNGL NuH0&H&(RJo NG$H f` J "k,`$XJPI SJfL NuH0$H(&JoN$*(ԁ$m NpJ@gp` &j,zڪ(Jo "K"ANת(`ZJjV &j,Dzڪ((Jo "C KN"B@$*( j,A(N~ *(jB(B@L 8NuH>O&H/I& ЩS/@$R/@ Jo NpJ@f/o /(o /k('@( /R/@"/ K N/H g + kNPBB o*h UN?@> o2($"k, q(0N?@.` ,k,$V" fE/2/0 JN:2 J0N8/@ UN<.HІ,0H܀pІNG(H g0H"JNJDg2Hp APN~"UAPNCPAPN^,=FBnXMRoP'o'okk'Cz'o o ('@~'@'o0/HШ'@'C0'k42+60$"k, q(NH'@@`L,`: ,k, VNG  o,"g ANR@=@`BnRl oNGOL|NuH>O&H$I"* N/H g + kNjBB *R/@8+2*$ k, p(0N ?@2*$* k, p(0N>2/@o0?W>.` *k,,U"gl N02/N62 N0N<:CHJoH2-H*Jo.pЁNG(H g~0H"NNC`A0N`*;EBmRo|'Rz *'@~'@'@4"*'A'A'j 0/H'@@'o'okk`L*`: *k, UNG  o* g @NR@;@`BmRn oNGO L|NuH>O$H&Ij Bo jpfp0*|gBB"*8 *0N f "+ f k"Pg: J"KN`vpf k"Pf J"KN`X?|'S'k (*+R"+  JNl/H g( * jN(BBp"+"j,ANpЄ/@rҫ҄/A JNbJ@g oNG`j%Sz%k~%k%k /k pf̰f2/f J Nۄ`j *j, o PN&֫. 0/HހJoVpЇNG(H g&2-o +"UN o "P +AN0/o"+ "W$+A(N^`%D0%C420* LNH%@@*;GBm`Vj *j, o PN.ޫJo4pЇNG(H g +"UN o "P +AN`*;GBm + o ,p NN&>/Hރ Jo6pЇNG(H g "NN0/o"+ "W LN^`|`20* LNH%@@"+$*j,K*;GBm|`@ "*j,$ o ,p( NN. NN^6(H g>*;GBmRpЫm%C4 ЫS%@0%j0%j4%o%E`j~`B "*j, UNGo$  o*"g ANR@;@`BmRn"/D / JN oNGjOL|NuH<$H *gN"* *zN&H g:&*" *z JNDJ@f 0*|gBB"*8 *0 JN *z(j,&**j`"( g @N9@`Bl9|XMPL SJf jNG%K *zR%@%j8%j%j8%j<%j%j<%jz0%j~42*60*$*0 j, p(NH%@@2*>0*$*8 j, p(NH%@D jpg "*08f *4pjg2*nABjn`.JDf*JEf& *fjfjr0 K"kfN`JDfJEg 20 JNPj%jL%jPL 8NuHHoHoHo Ho 0r N!-;jJ;jHC MNG "ynPI MNG BFJDo&pjg0*hjG2-mAl<*0/f22/f,ml&4DBml>Fml0D@mlJDgJCgr0 o"o"ifN`, o0(4l0(6l0<N0+kn& ynHhj"HCj Kr$yn0*N$rXO?-?-?-4BA0 LNZ\O0<N9F9GO,LhRl0g@&jT" g ?j5|0*\ K"kfrN5o*`  j,pRlXOL 8NuH<&I"(,g($$A IN&jpCHNG(H fp`80*g *R"M LN"KN^$ MNG` "K LN$5CB@L<Nu/ h $h g *( JNtJ@gp` *( JNXB@$_NuH0$H&j,&*(`0+o SNGPKSJj j,NG * jNnBBp%@D%@@%@<%@4%@8%@0jL Nu/ "h $i 0(HH%@ 2(HH%A 2*HN>5@J * 2*HN>5@Hjj * Jjpl%@pЪ( Jjpl%@$_Nu/ kFpЩ`R(o"`.r$$h,r(g`R(nr$$h,r(f#@$_NuH8&H$I "(k, T$f%|/B`2+|g4+pfH0f0"+4 T%H8f"+<4%A`b2,H4%A`R8f>%T%k<`@ kpf* +D@%@"+@/2+F0+ TN %H`%T0,H%@LNu/ $H jpfBB"*(pNn`BB"*8 *0 JN\0*|gj0<jg JN$_Nu/ / $H&I0*|g6"*0f$*4f *8f "*< g|BB"*8 *0 JN%S0%k42*60*$*0 j, p(NH%@@%k8%k <2*>0*$*8 j, p(NH%@Djt"*8 *0 JN&_$_NuH>O&H$Ig2+|ft`BB?B0+|fr`BA>JAf"<am <zn<`<Am <Zn< JN.&+0/k4M.I 0+|g`  k,/H2(o$/kx؂` o8(HĘ o*P`dgfX0g"M J NhJ@g "M JN@J@f40/fJg-H NN g5xH NN fSMSJj/|SJjR`/k(R`  k,/H2(o$/*P(`|gfn0g"M J NhJ@g "M JN@J@fJ0/f(Jg$-H NN g.5xH NN g()C)D Ї)@ "L KN^`(RMRfBRoPrpNj kO L|Nu/ $h, ((r` tjH҂PJ$SJj"$_NuH8O$H& j,8(&P:<I.`SFJFo3`H LN g`REEo3PH LN gFo /C.0H/@2H/A C JN` rpNjOLxNuH>O$H(I/j "o&i 2|bA2;N"8vB>8hRX^hx\&.8BLV^|XB6*H>^h|rJT$.7T`"+4 +0 KN0`"L KN`k`0+| fVBT`"L KN`k`k`k`k`k`~k`t kpf8`d JN5kJ5kH`N + kNBB`6 KN`,"L KNV` 8`7T2+60+$+0 k, p(NlH'@@2+>0+$+8 k, p(NLH'@D`"L KNv`pЫ((` +0 k,20H(` +0*k,2+B0+ UNݾ6H(`~ KNt`t0+|g. kpf "L KN<`V(0)k4)k8)k< `<(`2"L KNt`&'Tr'lv` +rg"+0*k, kpg kpfpmg."f./C/ kv,krN`7|p`7|p`7|p`7|p`Bkp`7|p`/L'TT'lX7l\`z KN.`pk k``k_`Vp kgL2<kg@ KN`p kg.2<kf"k KN` '@4'@<2+60+$+0 k, p(N`H'@@'@D`(0` JNJ@g8` KN` +0*k, UNGBBm"L +0 KN +0 KN` +0*k,2-o(`l(/`b2 yn0(N#$7@`7THkHkCA2+*yn0-N"PO`6`'T  o'| JNL`"L JN`'T +$o'@` KN KN`k KN` KN`R0`@S0` + ѫ0`0 + 0 +0jB0`z'k(0`p'T0 +0jB0 +0(oV`'T&+ l'C +j6B`.'T +jB&+( RJkl'C` JN<`pkg JN8/L l'Hb/H /|HCT/I/h p *o*m"LNCpg o *o*mN`jpkg JN/L l'H^/H /|CT/I/h p $o$j"LNCpg o $o$jNC pd o $o$jNC/p o $o$jNB@ KNl`p KNl`B@`pOL|Nu/ $HpNG g"BBA1A1A%@,%|$r%A%A($_Nu/ / UO$h <NG&H fp`j%K <C.D KN2+ yn0(N#$7@HkHkCA$yn2*0*N"PO7|p7| KNDB@TO&_$_NuH(k C K*lpdNCp K*lNCpe K*lNJCg p K$lNXOL<Nu/ YO.$hC J0<ND0< JN8A/XO$_Nu/ YO.$hC J0<N0< JN A/XO$_NuH<*I$Hp JN&Hp JN(H f" f "J MN`@ gdB"J MN6 MNE`B"J MNz6 E|fpL<NuH<$H(I&j K\//"L MN XO6"J MN^p J(kN0L<NuPmhm4hBl 0(h@mB@NupNu/ HyCC^A3iNETXO$H gNJ@gA/pN $_NuH,YOIHWHoHoHTr B@N!NuH>&HK> yn0(FfA(NB>` yn$h@gp(j JN`f ynBhH`P2H ЀЁ(kI J0N*0,S@g S@gS@g` (l p L,lN`N`` MNB>N*6jL|NuH$H6J@kH"ҁҀ&jI*l ,mZ)N$g"N k p"N0<n 9@ ` p""yBf k N k !mJBl 0+| f k "k "0 JNlL|Nu/ yn$hX"R ig3| JN0* k JB@Nl$_Nu?/ E@hjjjjj yn"h<6)pCgjpCgjpCgjpCgjpCgjp@Cgj JNB>| fXBCpjg|pjg|pjg|pjg|pjg|pjg|@ yn"h<3C$_6NuH0B@ACN&Jo.A^"<0N0N yn"h<3yEA&j^9fH6+H$Ԃԃ43(H"ҁ҂23H ЀЁ634H ЀЂ7'Cr JNr&H g$p NG& gC8p N KNrJ@g` KL NuHO yn&hX@f(k6(F0HЀЀNG*H g2HҁM?|P?|0BC"yn3CH` 2H ЀЁ4HԂ;(=(RCN*8j yn2(Llk4HPHAhPXA?A 4(Nlk6H…0HBhR?B BC1CH`0HЀ25o ?A>6o |z`,2H ЀЁ>?tA0/2N~J@g:`TFp 4H"ҁ҂t gJEon SBh2H ЀЁ<4>H$Ԃԇ9(>49( kp( K0Nl2H ЀЁ kp99 K0NlRCN*8j" MNH ynBhJOLxNu/ yn"hX Q$P gN$_Nu/ N$H f N$H g0* nrjTf JNT$_NuH8$H6J@kH"ҁҀ&jIk?k k $,g "B k p"N0< lh 9@ `$p""yBf k N l "k #hJBl p l hTgk2+ 0 J"jfNLNu yn hXNrNuH<$HIn T0(Fn !JXN`` T&h@gp *k KN`H TBhH`62H ЀЁ(jI lf J0N*&l K"k NJ@f N*6jL<Nu/ yn2(`H ЀЁ h\A$h JNT$_NuH8$H(I&j g6+2JCo4+H"ҁ҂77C4H"ҁ҂ sf2|7I47I2`2H ЀЁ7s22H ЀЁBssA1| !|!L !lZ9CX J0N`9|XLNuH8&H$I6JCk(k2H ЀЁt0Nl8,`2H ЀЁ842H ЀЁ父tf0H$ԂԀ0H"ҁҀ9(24(f9D0,2j9C49C22H ЀЁ9`2H ЀЁ929C2 SBh4LNuH<$H&I yn@fh0Y@gU@g`@ ynBhHBk`$2H ЀЁ(jI lf7|`ZN*6j`N2H ЀЁ(jI*l `& yn*h@0Y@gU@g `Cp M$mN`Cp M$mNL<NuH8&H$IIB2|fgn6| gnUAg_AgFSAg`ޒ|gƒ|UgxSAg~`ƒ|g|bA2;Nv8@H"J KN` J9h)h 9h9h`|)J`t)J`l)J`d KN`Z"J KN`P"J KN`F0 KN`<0 KN`20 KN`("R KNx` KN*` KN` KN `B@`pLNu/ $H P f jh` jh j2(p"jf JN$_NuH0$h&P6+ 8+ kfrC0HAHX@5@ppC4J@JXB5BtD2ABI5A5ArBE<>*`@0HEHX@4H"ҁ҂50@FH5REEfBERF2H ЀЁ>2JGf>*2`@0HEHX@4H"ҁ҂50@FH5REEfBERF2H ЀЁ>2|n` kfrC0HAHX@5@5@pvD4BCJ5BrrD0@AH5@BE<>*`@0HEHX@4H"ҁ҂56CFK5RFFfBFRE2H ЀЁ>2JGf>*2`@0HEHX@4H"ҁ҂56CFK5RFFfBFRE2H ЀЁ>2|nL NuH<$H"yn0)6g2):g&j$ g kf(k ,g *@ KpN KNHB RNH JNpACN"&Jo8 yn"h<3A^"<0N0N` JNHL<Nu/ yn$hX"R ig3| JN`0* k JB@Nl$_NuAANuH8$HG$I,pjVg$67l7l7l"LN *jV`*89k9k9k"ynPI JN *jV?+?+?+?r0* N!PON9LNuH$hE0&j C J(kpjNp J(kNpi J(kNTOLNuH>O$H#GG AFNr&H f`|k`T(kMn g*J`KH. V: V;h7m $7m&2 V0(N#$HoHoCA2-$V0*N"PO0/9@2/9A V0( 4(BB>2,@o9@ V0(4(2ABA>0,Wo9W"M0< LNrC0< LNr0- H/@C L0<NrC0< LNrE $%LBj"Jp LNr0< LNr kA0%H5|"J0< LNr kAH%H5|"J0< LNrp LNr KOL|NuNNu/ / $H&I2UAg| g$YAgF|g:`L yn0(:ff@ JN`80< jNrp jNr`&`AF NB>`B@`p&_$_Nu/ / YO&H(IHWHoBgBgBgCABB2+"pNOpT|o8"L KNXO(_&_NuH$hEH&j C J(kpjNp J(kNpi J(kNTOLNu/ &H// kNXO&_NuAFNu/YOM, I"o HzaXO VBXO,_Nu"VS@eQ,NuH8]O$H&I(o&BCx%p JR@g2fJ@g@HNBEg>BA< <b;k`|<*f<`&<0< b ACp a$Wb<gt<.f6<*f4`$<0< b ACp a$Wb4g<߲<Lf g`<hggr@dp|?@0;N`````N`N``````````````````````````NNN````````````````` [0`|A`0A2"LaN@`\ [2"LaL@`JJEj `p0?4 La"TO@`*JEj `0H?4 LaTO@` JEj `p0?4 LaTO@`JEj `p0?4 LaTO@`@HN0\OLxNup24C8jxA aA pJWF@?@gA 2SAktaSb (Q2/@4/(jt@jtBgf 0Ao@@Alx?B?D`hH0$H&IB(v`H0$H&IvJWFCJBj4Cb6xJAkCc8Cf K0a0 JN` 0 JN0 Kap0DL Nu6x0/g f@ JaP0/g@AN0/g@ Ja,0/g@A N0/g g@ Ja0OLNuH0E6`H0E4&H6g8Kg SC JpNQ J0|gNL Nu00000000 JgJgJgJgJg JgJgJfSHggggg ggf @NugfSHNuJgNug fC`Jg INuSHNu g<g8g4g0g,g(g$g ggggg ggf @Nu"HJgJgJgJgJg JgJgJf SNu"Jg JgJgJfSHSefB ANuSeg gb pNuJfpNupNu"SefBJgSf ANu/ / g($Ig"f&Hggg"J K`A&_$_Nu`H0$H|g|$bGRrtgJ3kSJgtJ@f"p <0f:pgb<߶<Xf(pf"`N|f<0fg><߶<Xfg.G3d"3d&HCHCJCfԃԁd` & gSJ"L Nu3"Lp` 3!Lp& g"`//"4UB|"bZC"t&HCJCf&HC;0NRBH@B@H@f`$?&8BCHC06H@0HC;0&RBJf8QB" _&Nu3!L`0123456789abcdefghijklmnopqrstuvwxyz/ EBABBSe2g2 ge p` Jfp`p$_NuH &/?<HNA\OJf 9g @ NJ@fp @LNuH0&gPR<e a g!CCH> "A`rGHB&S f. < a gj&@Ap !|'H&HB#HBA"P` )d I"Q f`rd ` #@#C"nAL Nuk |`3 L`/ oLQ d nf@aBJg*`6CH> g,g"@ f` "/?<INA\OJj`p$_Nugp`H8$<CGHB g" c &@ f`(@ ,gb*"Ҩeg ` )H`p"@")Ө )H`>"@ gb" ҩeg`N"(ө`" "H" ҩf @"(ө" l eb&/ ?<INA\OJfQLNuP`Jg/bg2 4gf!Sf`f`!Sg"gH?LxH?LxH?LxH?Lx`H?Lx8H?LxH?LxH?LxH?LxH?LxpH?LxHH?Lx H?LH?SfvLx2|HgS@!!Q|gSA!Q`2 4gfSf`f`S"gH?LxHxLxHx(LxHxPLxHxxLxHxLxHxLxHxLxHxLxHx@LxHxhLxHxLxHxLHSfxLx2|HgS@ Q|gSAQ _Nu/$gSe40HB4 gxH_>"&(*,."B$B&B(B*B,BH~H~H~H~H~H~H~H~H~H~H~H~H~H~H~H~H~H~H~H`SfL||0HgS@!Q|gSAQ _Nu  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~@@@@@@@@@@@@@@@@@@@@@@@@@@@::::::8888888888888888888866666644444444444444444444@  !"#  !"#$jD BJjD$HBJBf"$HBJBf $jDNuHBЂ$jDNuHBЂ$jDNu$jD"BJjD$HBJBf4$HBJBfH@B@H@$ jDNuB@H@HB0@0H@0H@$ jDNu AH@r2B@tЀӁd҈рӁQF@$ jDNu"@$jDJjD$HBJBf.$HBJBfB@H@$ jDNuB@H@HB0B@H@$ jDNu A"B@H@HABAtҁрdЈӁрQ$ jDNuHR???<NM\O$_NuHR/HP??<JNAO $_NuHRHP?<INA\O$_NuHR/?<HNA\O @$_NuH>@NAO $_NuH>?NAO $_NuHR??<>NAXO$_NuHR?<NATO$_NuHR//HQHP??<KNAO$_NuHR?HP?<=NAPO$_NuHR?HP?<C0#H 222"2"<*`HQC0#H 22 W22"<.a"_2NuC0#H 2222"<+`HQ30#P"<,a"_2"o2Nu30#P"#HfNu#HfA 1A rm$<a#HfNuHRpNBT@$_Nu#HjAZ#Hn3rfta#Hj#0HnNuHQHP2<ta"_2"_2A8"o2" "o$o 24242422$ANuCH^#H A #Hr&taj#0Hn#HjNuC222BQC"$<3| r`2RBfr `CH $<r`2RBfr`#HnCtr`2RBfrta#0HnNu/ #R#V#Z#^$_NuOK (C) 1991, 1992, 1993ACS pro 2.00Stefan BachertAutor&&&q 0){(0)x{(&0 !{(0 !x{(????80 3gggg30 8&&&0????80 0 ````0 0 8''0&0???? 0'''' 0'n'&0???? 0     0''&0!!7 Hl7d @ @?xxp㇇ 8p<`ßp0 Ϗ<("A  &Z &&(&7 &( & @&>&r  ACS 2.00 (c) 1991, 1992, 1993 Stefan Bachert0123456789ABCDEF \*.*: UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD33333333333333333333333333333333+ + +@+`++++ + + + + + + + + + + + + + + + + + + + + + + + + |]  0 0@P`tii&$8L393`YZZ>Z\p‚’¢º 0LbrwÂÖ*êþ+(8JZl|ĎĞ|=cĮľ{`* n04Ldd  =+-*/()!&|[]{}<>,.;:$%?`'^#~@\"[2][ | Soll das ACCESSORY | >>%s << | gestartet werden?][JA| NEIN ][3][ | Kein Speicher| mehr vorhanden! ][ OK ][2][ Unbekannte GEM-Nachricht | erhalten.| ID = '%s'| Weiterhin berichten?][JA| NEIN ][1][| Modul konnte| nicht geladen | werden][ OK ][3][ Keine freie GEM-Fenster-ID | mehr vorhanden!| Abhilfe: ein offenes| GEM-Fenster schlieen.][ OK ][3][ Kein freier ACS-Fenster-| Einschub mehr vorhanden! | Abhilfe: ein ACS-Fenster| lschen][ OK ]PAPIERKORBOK-------------------- Aktionen ffnen ^O Schlieen ^UPulldown Mens Lschen ^D Beenden ^Q Fenster Nchstes ^W Optionen aus Liste ^LDas Ziehen des Neu-Symboles auf ein anderes Objekt erzeugt ein neues Objekt. Ein Doppelklick darauf erzeugt ein weiteres Fenster der Applikation.NEUInformationGenerischer DESKTOP des ACS 2.00 von Stefan BachertVerhaltenObjekte werden durch Ziehen auf den Papierkorb gelschtVerstecke ZeigerGrows/ShrinksFehler akustischZentriere DialogSmart RedrawAbbruch Info... ^I Vertikal ^T Modul laden.. ^M Horizontal ^Z ber mich... Verhalten... ^BModul nachladen2!00q 2a00q 0){(0)x{(20!{(0)x{(00)!x{(00 !{(0)x{({{(2{{(2{{(2{{(2{{(2{{(1+nt2knt1nt2-``pppppp1p1p1p1p1p1p1p1p1p1pppppppp5J62 0 Hc@DDDDDDDDDDDDDDDL 67\0   H?UU" W*EU'U>JWU'w''}*UPUT'@'w'UAVwU_gVWUA?780 0 HZZ# 0 1  1X  1q $P   3A  0  0  0 0 0 0 01 `11:p5222 521Ib$"!1b"521| %,'3.)30*52,3V$3V A 3 3 @3z353  A 4B 4* @3z35 3  A 3 3 @3z34 4  A  3 3 @3  344r4Z 4 44 @3 @3  X800'9sjl\p,mp px769n0xBj1B^H(Dp1BbH(ll9nH(`AMDESKTOP.CFGAuf diesem Fenster knnen Ausgaben analog printf erfolgen! Ein ACS 2.00 FeatureOKPROTOCOL PROTOCOL InformationDCCq 0!{(0)x{(C0){(ntC| 9q$9q T=u T'Ϟ| Ty T7= T<| T7 TDEDC 0 HA DZ D* @DD*DrDB  b8ccCC'Esjl\pHnj  *BrƀƌƀƌG( G G (08PӐ00Jbf0N!NHN<#P#(Np93RNuH8JfnN!ACEdG߶I"I#LI6#LI>#L IV#LA#HA&A'HA8'HA 'H AZ'HLNu%spNuNVxH0$HA$ P gb jײfZ *JoN"j&Im"pC~2* @m R@QC~-Iz` B1-jzHnz"|I@N XOBp`pL N^NuH8I$&T g$k Kp"KNBp`pLNuH&Hv kײfDI$Jf>N "hN*H g$(A$'HA 'HA'H "m MN`v`v0L8NuC!I!|C!I1|װA$BNuJfN!NHN$RNuAPPFLAGEXITCODEEXITPROCTERMPROCERRORADDINOUTRESRANDSEEDFILEMODETEST6888STACKLIMINPUTOUTPUTSAVE02EX SAVE03EXSAVE04EXSAVE05EXSAVE06EXSAVE07EX SAVE08EX$BASEPAGE(_paramco,_fpuctrl._parampt0AVAIL4ROVER>OSBLKLISB_fpumodeF_installH_halt_halt0_runtime_startupX_swapvec_swapintz_assign_resette_rewritt*_run0errt_runerrovUPCASEUPCASETA_write0w_writewo_write0i_writein_write0s_writest_write0r_write1r_write2r&_writelnZ__getchaf__iotest__putcha__int2st<__tos2tp__getpas__openfu__closef __influs (__infunc <__outfun j__stdinf __stdout __fnaerr __nofoer _ _fpuinit b_ t_fpuxxop |_ _fpu1op _lxcnv P_pow10 _sin:__sinj__square__square*__str0reav_str1reax_str2reaz___tan_norma0f_ret012_retnan_txmover_txoverf_txinval__xclg2_xcln2(_xcph<_xc1P_xmather__xxsub__xxdec__xxsub_xxadd__xxinc>__xxaddB_L__xxinvP_xxdivl__xxdiv__xxmul__xxmul_xyentry_xxentry_norm012 Z_xxinval h_xxdivze v_xxflow _xxoverf _xxunder _initFlaISYSTEM!ACSDESCR"*_initFlaJHELLOM#"ACSINIT#>_initFlaKHELLO$ DOSERRORL_initFlaNDOS$R_initFlaOTOS$nACSBLKPACSDESCRTERRNOL_BASPAGN_APPRINIT_CALTACSINIT$~START_AC$ACCGEMDO%jOLDGEMDO%XLINE%YLINE&ADR_STAR* ADR_NEXT*ADR_ADD*HADR_DEL*ADR_UNSE+ADR_BOX,ADR_FIND-ADR_DRAG.XAEV_UNHI3AEV_QUIT3AEV_MESS9EVENTHAN:rACSINIT0;ACS_CALLA_FILESEETFITINFINTERSECG AX_IFREE0GAX_MALLOGAX_FREEHAX_RELEAHpAME_POPUQAME_ROOTRFAME_DROPRAME_KEYSAME_NAMETINITIALIUTERMINATXbINMOUSEY8TRMOUSEYVAMO_NEWY~AMO_POINYAMO_BUSYYAMO_UNBUZAMO_HIDEZ>AMO_SHOWZ\AMO_RESTZAMO_RETUZAOB_CREA[AOB_DELE\$AIC_CREA\AIC_DELE]"AIM_CREA]@AIM_DELE]lATE_CREA]tATE_DELE]AUS_CREA^AUS_DELE^.AST_CREA^6AST_DELE^xAOB_FIX^AOB_OFFS_FAOB_SAVE`AOB_RESTaAOB_WOBKbAOB_EXECcAOB_ALIAcAOB_SELEd AOB_WATCeAEV_RELEg6AOB_KEYgAOB_FINDh2AOB_UPhAWI_DIAEiAWI_DIASi&AWI_OBJCivAWI_OBCHjAWI_OBRElAWI_REDRl\AWI_ARROmAWI_HSLIp AWI_VSLIpxAWI_OBVIpAOB_CHDErpAWI_KEYSsAWI_SCROtINBACKPLvzABP_CREAvABP_DELEw_CHRCLA1>_DIGCNVT>_LMUL>_LDIV_LMODBCONOUTjMSHRINK|MFREEMALLOCFWRITEFREADFCLOSEDGETDRVPEXECFOPENFCREATE"DGETPATH4SETSCREEFLOGBASE\KEYTBLlKBDVBASE_AESAPPL_EXIAPPL_INIAPPL_WRIEVNT_MULEVNT_TIMJFORM_BUT`FORM_CENFORM_DIAFORM_KEYGRAF_DRAGRAF_GRO$GRAF_HANFGRAF_MKSjGRAF_MOUGRAF_RUBGRAF_SHRGRAF_WATMENU_BARMENU_TNOOBJC_CHA4OBJC_DRAZOBJC_EDI|OBJC_FINOBJC_OFFRSRC_OBFWIND_CALWIND_CLO 2WIND_CRE BWIND_DEL \WIND_FIN lWIND_OPE ~WIND_UPD FORM_ALE FSEL_EXI FSEL_INP MENU_REG SHEL_REA!SHEL_WRI!"WIND_GET!_MEMCLULHBAES_PBHFVDI_PBH^ACSBLKnGEM_PB_GEMPARBVDI_BLKLINEARVDIESCV_initFlabACSHVDI_BLKdGEM_PBVDI_PB߶AES_PB_initFlaGEMHFORMI@INOUTFUNIDFLUSHFUNIHCLOSEFUNIOPENFUNCIACSPROTOJN_initFlaWWRITELNJtz LB" N       :>0~@(P 0`jZ88H l*BRN8 4B @ >^* J`@&  4 & J      P 4   $&8 X :bl(D.6:n4  :L^ z  P(4:(TH0&0."$D2V$LL    & p 4&( 4D"(H,0(H8<&F8H ",R8*   ($    L|hD<,( F@(2.6Z*:<0,>28, 2^N$@("0   J&8H@*<* "8(6&  $80     L        ,\*  & 0   0 $j.@ T  "4d  8<$,  * B$n@.02 ,<4B ~*2 & . $ 6<0B8t.&    <  . (~"$ J" @BD* :Xj"FD<z<   P"&B^&:D`V26  &BP4F 60RJ0N2&*&BF$&Bn$&B R>"t        "  4T",  & B`, ,F"& z &z *z(:2 l@&  2   jZP 82 "2,   *H(64V , ,>  F ,P0  @ X,P  B$J 4$ 2 X>N>  \:  6*R@" "<" "    ( X&&"$*B,ZJ 26r"N4<BfB&xB,D"H$b `,h$&j .ZR&..0 $ (  \r d lB\2Z ,> $ \XL @ . lP & *4$  ",2  $2 0"pZ&^F .$XV   H $"&, ( L > X"T4&B>@<   * 4" >( d (":B: Z  ~tD.R,H "X($*,j$$&$$ 4D  . .0 $ H6$ L HRRR20 Hd            nH0 $ $ $ $ < $ < $ $ $ <0H0H0H0(:$P   $ >0(: 0$ ZlC:\STAD\*.IMG.IMGIMGIMGO\*.IMGr`S 1捛HBLD *dXF":|B(\i (.H9I&L+7 A4NՌNRK%c#u!G+2s&^ Z=L mL1WOpI;@ة9'ѫ2"&j O9WID1cG@2|xF6 )2e)Y߆q<㟸7o\un[o1Uهu!FMWBoцLv :bBr`Fu^͕8#/&ҸI7 B EI{68y"Hz"p6N)";b飖Jv BF\ Qn{m>fxNHg Pointer auf Rootfenster } IF (window <> NIL) THEN BEGIN window^.service(window, AS_NEWCALL, @@DIR_WI.create); { Routine fr Neu-Ikon einsetzten } window := @DIR_WI; { Hole Pointer auf Direc.-Fenster } window^.create(NIL); { Fenster sofort erzeugen } init_acs := OK; { Alles richtig gelaufen } END ELSE init_acs := FAIL; { Fehler aufgetreten } END; { ------------------------------------------------------------- } { Hauptprogramm } { -------------{ This file was created with ACS 2.0 (c) Stefan Bachert 1991, 1992 The contents are based on file: F:\PASCAL\ACS2\HELLO\HELLO.ACS compiled at: Sat Jan 02 03:08:46 1993 } Const { STRINGS } TEXT_001: packed array [1..6] of char = 'WORLD'#0; TEXT_002: packed array [1..14] of char = ' HELLO WORLD '#0; TEXT_003: packed array [1..1] of char = (#0); TEXT_005: packed array [1..6] of char = 'HELLO'#0; { OBJECT TREES } WORLD : Array [0 .. 2] of ACSOBJECT = ( (aes: (ob_next: -1; ob_head: 1; ob_tail: 2; ob_type: 20; ob_flags: $0000; ob_state: $0000;ob_spec: (index: $00001100);ob_x: 0; ob_y: 0; ob_width: 16; ob_height: 5)), (aes: (ob_next: 2; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_005);ob_x: 5; ob_y: 1; ob_width: 6; ob_height: 1)), (aes: (ob_next: 0; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0020; ob_state: $0000;ob_spec: (free_string: @TEXT_001);ob_x: 5; ob_y: 3; ob_width: 5; ob_height: 1)) ); { WINDOWS } HELLO: Awindow = ( user: NIL; service: Awi_service; create: hello_make; open: Awi_open; init: Awi_init; work: @WORLD; ob_edit: -1; ob_col: -1; wi_id: -1; wi_kind: $000b; wi_act: (x: 0; y: 0; w: 34; h: 14); wi_slider: (x: -1; y: -1; w: -1; h: -1); snap_mask: $f0f0; name: @TEXT_002; info: @TEXT_003; wi_type: $2710; kind: $0003; icon : -1; iconblk: NIL; menu: NIL; keys: Awi_keys; obchange: Awi_obchange; redraw: Awi_redraw; topped: Awi_topped; closed: Awi_closed; fulled: Awi_fulled; arrowed: Awi_arrowed; hslid: Awi_hslid; vslid: Awi_vslid; sized: Awi_sized; moved: Awi_moved); ACSdescr: Adescr = ( magic: 'ACS 2.0'#0; version: 200; dx: -4; dy: -4; flags: $001b; acc_reg: ' HELLO WORLD'#0' '; root: NIL; acc: NIL; mouse: ( (number: 0; form: NIL), (number: 2; form: NIL), (number: 3; form: NIL), (number: 4; form: NIL), (number: 1; form: NIL), (number: 5; form: NIL), (number: 6; form: NIL), (number: 7; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL)) ); ULL}, { 0, NULL}, { 0, NULL}, { 0, NULL}, { 0, NULL}, { 0, NULL}, { 0, NULL}, { 0, NULL}, { 0, NULL}, { 0, NULL}, { 0, NULL} } }; /* ANSI-C Routines */ /* 'A_3Dbutton' Not defined yet by user */ /* 'Auo_string' Not defined yet by user */ .ACS     ACS 1.0d HELLO WORLDYO3O38ALERT LISTEtDATA LISThFENSTER LISTEO3..ZHELLO_001b S_Ctx "'-ICON LISTE-|IMAGE LIST-2MAUSFORM LISTE,MENU LISTE,, OBJECT LISTE_C,H POPUP LISTE+,< REFERENZ LISTE+ TEDINFO LISTE+F+ TEXT LISTE*+8TEXT_001hEWORLD**TEXT_002 "UUT@5UUUV? HELLO WORLD *:*TEXT_003UUT5UUUV?)*,TEXT_005UUSHELLO)USERBLK LISTE(WORLD_001oShello_make?Uffg  { Beispielapplikation fr ACS "HELLO" 27.09.91 Stefan Bachert (Pure C) 02.01.92 Michael Schlter (Pure Pascal) Letzte nderung: 02.01.93 } PROGRAM hello_word; {$X+} USES ACS; FUNCTION hello_make(para: Pointer): AwindowPtr; FORWARD; { Mu vorher Definiert werden } {$I HELLO.I} { ACS-File wird geladen } { ----------------------------------------------------------------- } { Erzeugt ein Hello-World Fenster } { ----------------------------------------------------------------- } FUNCTION hello_make(para: Pointer): AwindowPtr; VAR wi : AWindowPtr; BEGIN wi := Awi_create(@HELLO); { Erzeuge Fenster } IF wi <> NIL THEN { Wenn OK dann } wi^.open(wi); { ffne das Fenster } hello_make := wi; { Fensterpointer zurckgeben } END; { ----------------------------------------------------------------- } { ACS Initialisieren und NEU-Ikon auf den Desktop legen } { ----------------------------------------------------------------- } FUNCTION init_acs: INTEGER; VAR wi : AwindowPtr; BEGIN wi := Awi_root; { Root window } IF (wi <> NIL) THEN { Wenn alles klar } BEGIN wi^.service (wi, AS_NEWCALL, @@HELLO.create);{ NEU-Ikon anlegen } wi := @HELLO; { Zeiger auf Hellofensterstruktur } wi^.create(NIL); { Erzeuge sofort ein Fenster } init_acs := OK; END ELSE init_acs := FAIL; { Das ging daneben } END; { ----------------------------------------------------------------- } { Hauptprogramm } { ----------------------------------------------------------------- } BEGIN { ACS } start_acs (init_acs, @ACSdescr); { und los } END..ACS  ACS 1.0d INPUT WORLDYoSoS8ALERT LISTEtDATA LIST-5DIALOG001O   --FENSTER LISTE_C-VICON LISTE- IMAGE LIST9F,vINPUT_001b S_Ctx cc'<INP_LINE1+ INP_LINE2+N MAUSFORM LISTE+ MENU LISTE** OBJECT LISTEC*d POPUP LISTE* *TREFERENZ LISTE:)TEDINFO LISTE):TEDINFO_01()TEDI_001*(j(TEXT LISTE((ZTEXT_001,+2.:____''TEXT_002  Eingabeprfung 'X'TEXT_003 d0H''JTEXT_005"yR yN JJxXXXX;&TEXT_006`|Gg 0*: jhabcd&N;hTEXT_011.:____&USERBLK LISTE%inp_make3,3T3|33inp_service { This file was created with ACS 2.0 (c) Stefan Bachert 1991, 1992 The contents are based on file: F:\PASCAL\ACS2\INPUT\INPUT.ACS compiled at: Sat Jan 02 19:28:06 1993 } Const { STRINGS } TEXT_001: packed array [1..8] of char = '2.:____'#0; TEXT_002: packed array [1..17] of char = ' Eingabeprfung '#0; TEXT_003: packed array [1..1] of char = (#0); TEXT_005: packed array [1..5] of char = 'XXXX'#0; TEXT_006: packed array [1..5] of char = 'abcd'#0; TEXT_01: packed array [1..8] of char = '1.:____'#0; { TEDINFOS } TEDINFO_01: TEDINFO = (te_ptext: @TEXT_006; te_ptmplt: @TEXT_01; te_pvalid: @TEXT_005; te_font: 3; te_just: 2; te_color: $1180; te_thickness: -1; te_txtlen: 5; te_tmplen: 8); TEDI_001: TEDINFO = (te_ptext: @TEXT_006; te_ptmplt: @TEXT_001; te_pvalid: @TEXT_005; te_font: 3; te_just: 2; te_color: $1180; te_thickness: -1; te_txtlen: 5; te_tmplen: 8); { OBJECT TREES } INP_LINE1 = 1; INP_LINE2 = 2; DIALOG : Array [0 .. 2] of ACSOBJECT = ( (aes: (ob_next: -1; ob_head: 1; ob_tail: 2; ob_type: 20; ob_flags: $0000; ob_state: $0000;ob_spec: (index: $00001100);ob_x: 0; ob_y: 0; ob_width: 18; ob_height: 5)), (aes: (ob_next: 2; ob_head: -1; ob_tail: -1; ob_type: 30; ob_flags: $0008; ob_state: $0000;ob_spec: (free_string: @TEDINFO_01);ob_x: 4; ob_y: 1; ob_width: 9; ob_height: 1)), (aes: (ob_next: 0; ob_head: -1; ob_tail: -1; ob_type: 30; ob_flags: $0028; ob_state: $0000;ob_spec: (free_string: @TEDI_001);ob_x: 4; ob_y: 3; ob_width: 9; ob_height: 1)) ); { WINDOWS } INPUT: Awindow = ( user: NIL; service: inp_service; create: inp_make; open: Awi_open; init: Awi_init; work: @DIALOG; ob_edit: -1; ob_col: -1; wi_id: -1; wi_kind: $000b; wi_act: (x: 0; y: 0; w: 99; h: 99); wi_slider: (x: -1; y: -1; w: -1; h: -1); snap_mask: $f0f0; name: @TEXT_002; info: @TEXT_003; wi_type: $2710; kind: $0003; icon : -1; iconblk: NIL; menu: NIL; keys: Awi_keys; obchange: Awi_obchange; redraw: Awi_redraw; topped: Awi_topped; closed: Awi_closed; fulled: Awi_fulled; arrowed: Awi_arrowed; hslid: Awi_hslid; vslid: Awi_vslid; sized: Awi_sized; moved: Awi_moved); ACSdescr: Adescr = ( magic: 'ACS 2.0'#0; version: 200; dx: -4; dy: -4; flags: $001b; acc_reg: ' INPUT '#0' '; root: NIL; acc: NIL; mouse: ( (number: 0; form: NIL), (number: 2; form: NIL), (number: 3; form: NIL), (number: 4; form: NIL), (number: 1; form: NIL), (number: 5; form: NIL), (number: 6; form: NIL), (number: 7; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL)) ); { Beispielapplikation fr ACS "INPUT" 02.09.91 Stefan Bachert (Pure C) 02.01.93 Michael Schlter (Pure Pascal) 15.01.93 Stefan Bachert Letzte nderung: 15.01.93 } PROGRAM input; {$X+} USES GEM, ACS; CONST BNAME : ARRAY [1..10] OF CHAR = ' Inputle'#0; Type IntegerPtr = ^Integer; FUNCTION inp_make(para: POINTER): AWindowPtr; FORWARD; FUNCTION inp_service(wi: AWindowPtr; task: INTEGER; in_out: POINTER): BOOLEAN; FORWARD; {$I INPUT.I} { ----------------------------------------------------------------- } { Erzeuge ein Inputfenster } { ----------------------------------------------------------------- } FUNCTION inp_make(para: POINTER): AWindowPtr; VAR wi : AWindowPtr; BEGIN wi := Awi_create(@INPUT); { Erzeuge das Fenster } IF wi <> NIL THEN wi^.open(wi); { ffne das Fenster } inp_make := wi; END; { ----------------------------------------------------------------- } { Service-Routine } { ----------------------------------------------------------------- } FUNCTION inp_service(wi: AWindowPtr; task: INTEGER; in_out: POINTER): BOOLEAN; VAR obnr : INTEGER; st : STRING; ip: INTEGERPtr; { ------------------------------------------------------------- } FUNCTION strup(VAR str : STRING) : STRING; { wandelt String in Grobuchstaben um } VAR loop : BYTE; BEGIN FOR loop := 1 TO LENGTH(str) DO str[loop] := UPCASE(str[loop]); strup := str; END; { ------------------------------------------------------------- } BEGIN CASE task OF AS_TERM: Awi_delete(wi); { Nun ist Schlu } AS_FOCUSCHG: BEGIN obnr := wi^.ob_edit;{ ermittelt Objektnr. } IF obnr >= 0 THEN { Wenn Objekt vorhanden } BEGIN GetPText(AESTreePtr(wi^.work), obnr, st); IF st <> '' THEN { lese Text aus und kontrolliere ob Zeichen vorhanden } BEGIN strup(st); { Wandel Text in Grobuchstaben um } SetPText(AESTreePtr(wi^.work), obnr, st); wi^.obchange(wi, obnr, -1); { Text zurckschreiben und nderung sichtbar machen } END ELSE BEGIN ip := IntegerPtr (in_out); ip^ := wi^.ob_edit;{ Textcursor in das Objekt stellen } END; END; END ELSE BEGIN inp_service := FALSE; { task konnte nicht bearbeitet werden } EXIT; { Abbrechen } END; END; inp_service := TRUE; { task wurde bearbeitet } END; { ----------------------------------------------------------------- } { ACS Initialisieren und NEU-Ikon auf den Desktop legen } { ----------------------------------------------------------------- } FUNCTION init_acs: INTEGER; VAR wi : AwindowPtr; BEGIN wi := Awi_root; { Root window } IF (wi <> NIL) THEN { Wenn alles klar } BEGIN wi^.service (wi, AS_NEWCALL, @@INPUT.create); wi := @INPUT; wi^.create(NIL); { sofort Fenster erzeugen } init_acs := OK; { NEU-Ikon angelegt } END ELSE BEGIN init_acs := FAIL; { Das ging daneben } END; END; { ----------------------------------------------------------------- } { Ersetzt die ACSinit0-Routine } { ----------------------------------------------------------------- } FUNCTION my_init: INTEGER; BEGIN MOVE(BNAME, ACSblk^.basename, LENGTH(BNAME)); { neuen Basenamen eintragen } my_init := OK; END; { ----------------------------------------------------------------- } { Hauptprogramm } { ----------------------------------------------------------------- } BEGIN { ACS } ACSblk^. ACSinit0 := my_init; { eigenes ACSinit0 einbauen } start_acs (init_acs, @ACSdescr); { und los } END.@@@@pABBBBBBBBA@G@@@CBBBBBBB0BP BC@G@@file_makecccnLLO.ACS compiled at: Sat Jan 02 03:08:46 1993 } Const { STRINGS } TEXT_001: packed array [1..6] of char = 'WORLD'#0; TEXT_002: packed array [1..14] of char = ' HELLO WORLD '#0; TEXT_003: packed array [1..1] of char = (#0); TEXT_005: packed array [1..6] of char = 'HELLO'#0; { OBJECT TREES } WORLD : Array [0 .. 2] of ACSOBJECT = ( (aes: (ob_next: -1; ob_head: 1; ob_tail: 2; ob_type: 20; ob_flags: $0000; ob_state: $0000;ob_spec: (index: $00001100);ob_x: 0; ob_y: 0; ob_width: 16; ob_height: 5)), (aes: (ob_next: 2; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_005);ob_x: 5; ob_y: 1; ob_width: 6; ob_height: 1)), (aes: (ob_next: 0; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0020; ob_state: $0000;ob_spec: (free_string: @TEXT_001);ob_x: 5; ob_y: 3; ob_width: 5; ob_heigh.ACS8 -ACS 1.0d ACS ACCESSORYoS_CHALERT LISTEtDATA LIST..ZDEMOW_001b\nOUTLIN_Ctx0/ ", '.,QdDRAGS_001_C       ,P,FENSTER LISTE_C,ICON LISTE+IMAGE LIST+rMAUSFORM LISTE++f MENU LISTEoS.*+ NULL_STRING nUSERP2*~ OBJ1h80 *4 OBJ2, h) OBJ23`8))OBJECT LISTEO3)JOBJ_1)OBJ_2sten Kn Optione(OBJ_3h80 @0h(lOBJ_4e Tn Tasten POBJnot4`<0$`Z'OBJxor34'POPUP LISTE'$'nREFERENZ LISTE/0&SEL_0e Tn Tasten &SEL_1h80 &FSEL_ANYX]%TEDINFO LISTE%b%HHTEXT LISTE  !"#$%&'()*+,% %TTEXT_001OBJ 1$$TEXT_002@hOBJ 2$Z$TEXT_003Dh80 OBJ 3$$LTEXT_004~*:|<~5U=OBJ 4## TEXT_005h80  ber mich ...#8#!TEXT_006 h--------------------"#("TEXT_007 ^Ion Probe  Count "~"# TEXT_008h80  0 Selected""h$ TEXT_009 6  1 Selected!"%TEXT_010_______________________ >0 Selected!b!& TEXT_011VP Complex !!J'TEXT_012] Obj 1 in List  (TEXT_0130n Info  Obj 2 in List 8 )TEXT_014__n Info  Obj 2 & 3 in List *TEXT_015nfo ^I n Pr Obj 4 not in Listl+TEXT_016be Tn Tast Obj 3 ^ 4 in ListX, TEXT_017U< SELECTION -USERBLK LISTE]._MENU01________________________CZZ  " & P    !         #$% ' ( )*+x/menu_make<>耀80menu_service@8 { ACS } start_acs (init_acs, @ACSdescr); { und los } END.{ This file was created with ACS 2.0 (c) Stefan Bachert 1991, 1992 The contents are based on file: F:\PASCAL\ACS2\MENUE\MENUE.ACS compiled at: Sat Jan 02 16:49:32 1993 } { Pascal Prototypes } Function menu_make (para: Pointer): AwindowPtr; Function menu_service (wi: AwindowPtr; task: Integer; in_out: Pointer): Boolean; Const { STRINGS } NULL_STRING: packed array [1..1] of char = (#0); TEXT_001: packed array [1..6] of char = 'OBJ 1'#0; TEXT_002: packed array [1..6] of char = 'OBJ 2'#0; TEXT_003: packed array [1..6] of char = 'OBJ 3'#0; TEXT_004: packed array [1..6] of char = 'OBJ 4'#0; TEXT_005: packed array [1..16] of char = ' ber mich ...'#0; TEXT_006: packed array [1..21] of char = '--------------------'#0; TEXT_007: packed array [1..8] of char = ' Count '#0; TEXT_008: packed array [1..13] of char = ' 0 Selected'#0; TEXT_009: packed array [1..13] of char = ' 1 Selected'#0; TEXT_010: packed array [1..14] of char = ' >0 Selected'#0; TEXT_011: packed array [1..10] of char = ' Complex '#0; TEXT_012: packed array [1..16] of char = ' Obj 1 in List'#0; TEXT_013: packed array [1..16] of char = ' Obj 2 in List'#0; TEXT_014: packed array [1..20] of char = ' Obj 2 & 3 in List'#0; TEXT_015: packed array [1..20] of char = ' Obj 4 not in List'#0; TEXT_016: packed array [1..20] of char = ' Obj 3 ^ 4 in List'#0; TEXT_017: packed array [1..12] of char = ' SELECTION '#0; { MENU TREES } SEL_0 = 17; SEL_1 = 18; SEL_ANY = 19; OBJ1 = 21; OBJ2 = 22; OBJ23 = 23; OBJnot4 = 24; OBJxor34 = 25; _MENU : Array [0 .. 25] of ACSOBJECT = ( (aes: (ob_next: -1; ob_head: 1; ob_tail: 6; ob_type: 25; ob_flags: $0000; ob_state: $0000;ob_spec: (index: $00000000);ob_x: 0; ob_y: 0; ob_width: 90; ob_height: 25)), (aes: (ob_next: 6; ob_head: 2; ob_tail: 2; ob_type: 20; ob_flags: $0000; ob_state: $0000;ob_spec: (index: $00001100);ob_x: 0; ob_y: 0; ob_width: 90; ob_height: 513)), (aes: (ob_next: 1; ob_head: 3; ob_tail: 5; ob_type: 25; ob_flags: $0000; ob_state: $0000;ob_spec: (index: $00000000);ob_x: 2; ob_y: 0; ob_width: 22; ob_height: 769)), (aes: (ob_next: 4; ob_head: -1; ob_tail: -1; ob_type: 32; ob_flags: $0000; ob_state: $2000;ob_spec: (free_string: @NULL_STRING);ob_x: 0; ob_y: 0; ob_width: 6; ob_height: 769)), (aes: (ob_next: 5; ob_head: -1; ob_tail: -1; ob_type: 32; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_007);ob_x: 6; ob_y: 0; ob_width: 7; ob_height: 769)), (aes: (ob_next: 2; ob_head: -1; ob_tail: -1; ob_type: 32; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_011);ob_x: 13; ob_y: 0; ob_width: 9; ob_height: 769)), (aes: (ob_next: 0; ob_head: 7; ob_tail: 20; ob_type: 25; ob_flags: $0000; ob_state: $0000;ob_spec: (index: $00000000);ob_x: 0; ob_y: 769; ob_width: 80; ob_height: 19)), (aes: (ob_next: 16; ob_head: 8; ob_tail: 15; ob_type: 20; ob_flags: $0000; ob_state: $0000;ob_spec: (index: $00ff1100);ob_x: 2; ob_y: 0; ob_width: 20; ob_height: 8)), (aes: (ob_next: 9; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $2000;ob_spec: (free_string: @TEXT_005);ob_x: 0; ob_y: 0; ob_width: 20; ob_height: 1)), (aes: (ob_next: 10; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $2008;ob_spec: (free_string: @TEXT_006);ob_x: 0; ob_y: 1; ob_width: 20; ob_height: 1)), (aes: (ob_next: 11; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $2000;ob_spec: (free_string: @NULL_STRING);ob_x: 0; ob_y: 2; ob_width: 20; ob_height: 1)), (aes: (ob_next: 12; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $2000;ob_spec: (free_string: @NULL_STRING);ob_x: 0; ob_y: 3; ob_width: 20; ob_height: 1)), (aes: (ob_next: 13; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $2000;ob_spec: (free_string: @NULL_STRING);ob_x: 0; ob_y: 4; ob_width: 20; ob_height: 1)), (aes: (ob_next: 14; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $2000;ob_spec: (free_string: @NULL_STRING);ob_x: 0; ob_y: 5; ob_width: 20; ob_height: 1)), (aes: (ob_next: 15; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $2000;ob_spec: (free_string: @NULL_STRING);ob_x: 0; ob_y: 6; ob_width: 20; ob_height: 1)), (aes: (ob_next: 7; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $2000;ob_spec: (free_string: @NULL_STRING);ob_x: 0; ob_y: 7; ob_width: 20; ob_height: 1)), (aes: (ob_next: 20; ob_head: 17; ob_tail: 19; ob_type: 20; ob_flags: $0000; ob_state: $0000;ob_spec: (index: $00ff1101);ob_x: 8; ob_y: 0; ob_width: 14; ob_height: 3)), (aes: (ob_next: 18; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_008);ob_x: 0; ob_y: 0; ob_width: 14; ob_height: 1)), (aes: (ob_next: 19; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0008;ob_spec: (free_string: @TEXT_009);ob_x: 0; ob_y: 1; ob_width: 14; ob_height: 1)), (aes: (ob_next: 16; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0008;ob_spec: (free_string: @TEXT_010);ob_x: 0; ob_y: 2; ob_width: 14; ob_height: 1)), (aes: (ob_next: 6; ob_head: 21; ob_tail: 25; ob_type: 20; ob_flags: $0000; ob_state: $0000;ob_spec: (index: $00ff1101);ob_x: 15; ob_y: 0; ob_width: 21; ob_height: 5)), (aes: (ob_next: 22; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0008;ob_spec: (free_string: @TEXT_012);ob_x: 0; ob_y: 0; ob_width: 21; ob_height: 1)), (aes: (ob_next: 23; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0008;ob_spec: (free_string: @TEXT_013);ob_x: 0; ob_y: 1; ob_width: 21; ob_height: 1)), (aes: (ob_next: 24; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0008;ob_spec: (free_string: @TEXT_014);ob_x: 0; ob_y: 2; ob_width: 21; ob_height: 1)), (aes: (ob_next: 25; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_015);ob_x: 0; ob_y: 3; ob_width: 21; ob_height: 1)), (aes: (ob_next: 20; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0020; ob_state: $0008;ob_spec: (free_string: @TEXT_016);ob_x: 0; ob_y: 4; ob_width: 21; ob_height: 1)) ); { OBJECT TREES } DRAGS : Array [0 .. 8] of ACSOBJECT = ( (aes: (ob_next: -1; ob_head: 1; ob_tail: 7; ob_type: 20; ob_flags: $0000; ob_state: $0000;ob_spec: (index: $00ff1100);ob_x: 0; ob_y: 0; ob_width: 22; ob_height: 9)), (aes: (ob_next: 3; ob_head: -1; ob_tail: -1; ob_type: 26; ob_flags: $2000; ob_state: $0000;ob_spec: (free_string: @TEXT_001);ob_x: 2; ob_y: 1; ob_width: 7; ob_height: 3)), (acs :(ob_flags: $8000; key: $0000;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: OBJ_1)), (aes: (ob_next: 5; ob_head: -1; ob_tail: -1; ob_type: 26; ob_flags: $2000; ob_state: $0000;ob_spec: (free_string: @TEXT_002);ob_x: 13; ob_y: 1; ob_width: 7; ob_height: 3)), (acs :(ob_flags: $8000; key: $0000;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: OBJ_2)), (aes: (ob_next: 7; ob_head: -1; ob_tail: -1; ob_type: 26; ob_flags: $2000; ob_state: $0000;ob_spec: (free_string: @TEXT_003);ob_x: 2; ob_y: 5; ob_width: 7; ob_height: 3)), (acs :(ob_flags: $8000; key: $0000;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: OBJ_3)), (aes: (ob_next: 0; ob_head: -1; ob_tail: -1; ob_type: 26; ob_flags: $2000; ob_state: $0000;ob_spec: (free_string: @TEXT_004);ob_x: 13; ob_y: 5; ob_width: 7; ob_height: 3)), (acs :(ob_flags: $8020; key: $0000;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: OBJ_4)) ); { WINDOWS } DEMO: Awindow = ( user: NIL; service: menu_service; create: menu_make; open: Awi_open; init: Awi_init; work: @DRAGS; ob_edit: -1; ob_col: -1; wi_id: -1; wi_kind: $000b; wi_act: (x: 0; y: 0; w: 34; h: 14); wi_slider: (x: -1; y: -1; w: -1; h: -1); snap_mask: $f0f0; name: @TEXT_017; info: @NULL_STRING; wi_type: $2710; kind: $0003; icon : -1; iconblk: NIL; menu: @_MENU; keys: Awi_keys; obchange: Awi_obchange; redraw: Awi_redraw; topped: Awi_topped; closed: Awi_closed; fulled: Awi_fulled; arrowed: Awi_arrowed; hslid: Awi_hslid; vslid: Awi_vslid; sized: Awi_sized; moved: Awi_moved); ACSdescr: Adescr = ( magic: 'ACS 2.0'#0; version: 200; dx: -4; dy: -4; flags: $000a; acc_reg: ' ACS ACCESSORY'#0' '; root: NIL; acc: NIL; mouse: ( (number: 0; form: NIL), (number: 2; form: NIL), (number: 3; form: NIL), (number: 4; form: NIL), (number: 1; form: NIL), (number: 5; form: NIL), (number: 6; form: NIL), (number: 7; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL)) ); implementation { Pascal Routines } { 'menu_make' Not defined yet by user } { 'menu_service' Not defined yet by user } LLO_001b SO3t! "'* ICON LISTE)) IMAGE LIST)d MAUSFORM LISTE) MENU LISTEO3() OBJECT LISTEO3(vPOPUP LISTEO3((ZREFERENZ LISTEO3 !' 'jSUNRISE${ Beispielapplikation fr ACS "Menu" 03.09.91 Stefan Bachert (Pure C) 02.01.93 Michael Schlter (Pure Pascal) Letzte nderung: 02.01.93 } PROGRAM menu; {$X+} USES ACS, MENUEM; { ----------------------------------------------------------------- } { ACS Initialisieren und NEU-Ikon auf den Desktop legen } { ----------------------------------------------------------------- } FUNCTION init_acs: INTEGER; VAR wi : AwindowPtr; BEGIN wi := Awi_root; { Root window } IF wi <> NIL THEN { Wenn alles klar } BEGIN wi^.service (wi, AS_NEWCALL, @@DEMO.create); init_acs := OK; { NEU-Ikon angelegt } END ELSE BEGIN init_acs := FAIL; { Das ging daneben } END; END; { ----------------------------------------------------------------- } { Hauptprogramm } { ----------------------------------------------------------------- } BEGIN { ACS } start_acs (init_acs, @ACSdescr); { und los } END.m: NIL), (number: 0; form: NIL), (nu{ UNIT MENUEM ab for PurePascal (c) 1992 Stefan Bachert PURE PASCAL Version: Michael Schlter (@SL) Letzte nderung: 02.01.1993 } { ACHTUNG: Bis zur jetztigen PP Version (07.11.92) gibt die XOR-Verknpfung in set_menu einen Internal error. Ich hoffe der Fehler ist in einer der nchsten Versionen behoben. Zum Testen kann eine andere Verknpfung ein- gesetzt werden, z.B. AND, OR. (In der Version vom Dez. 92 soll der Fehler behoben sein) } UNIT menuem; {$X+} INTERFACE USES GEM, ACS; CONST OBJ_1 = 1; { OBJ_1 ist Button mit Objektnr. 1 } OBJ_2 = 2; OBJ_3 = 3; OBJ_4 = 4; {$I MENUE.I} { Lade ACS-File ein } { ----------------------------------------------------------------- } { Setze Meneintrge je nach selektiertem Objekt } { ----------------------------------------------------------------- } PROCEDURE set_menu(wi: AWindowPtr); VAR nr, count : INTEGER; o1, o2, o3, o4 : BOOLEAN; BEGIN count := 0; o1 := FALSE; o2 := FALSE; o3 := FALSE; o4 := FALSE; Aselect^.next := 0; { Liste von vorne lesen } nr := Adr_next; { Erste Objekt holen } WHILE nr >= 0 DO { Wenn noch ein Objekt in der Liste } BEGIN INC(count); { Erhhe Zhler } CASE wi^.work^[nr+1].acs.aob_type OF { Setzte Flag des jeweiligen Objektes } OBJ_1: o1 := TRUE; OBJ_2: o2 := TRUE; OBJ_3: o3 := TRUE; OBJ_4: o4 := TRUE; END; nr := Adr_next; { Nchste Objekt aus der Liste holen } END; IF count = 0 THEN { Wenn kein Objekt selektiert } wi^.menu^[SEL_0].aes.ob_state := wi^.menu^[SEL_0].aes.ob_state AND (NOT DISABLED) ELSE wi^.menu^[SEL_0].aes.ob_state := wi^.menu^[SEL_0].aes.ob_state OR DISABLED; IF count = 1 THEN { Wenn ein Objekt selektiert } wi^.menu^[SEL_1].aes.ob_state := wi^.menu^[SEL_1].aes.ob_state AND (NOT DISABLED) ELSE wi^.menu^[SEL_1].aes.ob_state := wi^.menu^[SEL_1].aes.ob_state OR DISABLED; IF count > 0 THEN { Wenn Objekt(e) selektiert } wi^.menu^[SEL_ANY].aes.ob_state := wi^.menu^[SEL_ANY].aes.ob_state AND (NOT DISABLED) ELSE wi^.menu^[SEL_ANY].aes.ob_state := wi^.menu^[SEL_ANY].aes.ob_state OR DISABLED; IF o1 THEN { Wenn Objekt 1 selektiert } wi^.menu^[OBJ1].aes.ob_state := wi^.menu^[OBJ1].aes.ob_state AND (NOT DISABLED) ELSE wi^.menu^[OBJ1].aes.ob_state := wi^.menu^[OBJ1].aes.ob_state OR DISABLED; IF o2 THEN { Wenn Objekt 2 selektiert } wi^.menu^[OBJ2].aes.ob_state := wi^.menu^[OBJ2].aes.ob_state AND (NOT DISABLED) ELSE wi^.menu^[OBJ2].aes.ob_state := wi^.menu^[OBJ2].aes.ob_state OR DISABLED; IF o2 AND o3 THEN { Wenn Objekt 2 und Objekt 3 selektiert } wi^.menu^[OBJ23].aes.ob_state := wi^.menu^[OBJ23].aes.ob_state AND (NOT DISABLED) ELSE wi^.menu^[OBJ23].aes.ob_state := wi^.menu^[OBJ23].aes.ob_state OR DISABLED; IF NOT o4 THEN { Wenn nicht Objekt 4 selektiert } wi^.menu^[OBJnot4].aes.ob_state := wi^.menu^[OBJnot4].aes.ob_state AND (NOT DISABLED) ELSE wi^.menu^[OBJnot4].aes.ob_state := wi^.menu^[OBJnot4].aes.ob_state OR DISABLED; IF o3 xor o4 THEN { Wenn Objekt 3 oder Objekt 4 selektiert } wi^.menu^[OBJxor34].aes.ob_state := wi^.menu^[OBJxor34].aes.ob_state AND (NOT DISABLED) ELSE wi^.menu^[OBJxor34].aes.ob_state := wi^.menu^[OBJxor34].aes.ob_state OR DISABLED; END; { ----------------------------------------------------------------- } { Erzeuge Fenster } { ----------------------------------------------------------------- } FUNCTION menu_make(para: Pointer): AwindowPtr; VAR wi : AwindowPtr; BEGIN wi := Awi_create (@DEMO); { Erzeuge Fenster } IF wi <> NIL THEN { Wenn OK } wi^. open (wi); { ffne das Fenster } menu_make := wi; { und zurck } END; { ----------------------------------------------------------------- } { Service Routine } { ----------------------------------------------------------------- } Function menu_service (wi: AwindowPtr; task: Integer; in_out: Pointer): Boolean; BEGIN CASE task OF AS_TERM: Awi_delete(wi); { Nun ist Schlu } AS_SELECTDEL, AS_SELECTADD: set_menu(wi); { verndert Menuzeile } AS_DELETE: Adr_unselect; { Wert auf Null setzten (lschen) } ELSE BEGIN menu_service := FALSE; { task konnte nicht bearbeitet werden } EXIT; { Abbrechen } END; END; menu_service := TRUE; { task wurde bearbeitet } END; BEGIN END.ʓT!E ]o^z WFz<~wa 2tx_A(BO_MEMCLULHBAES_PBHFVDI_PBH^ACSBLKnGEM_PB_GEMPARBVDI_BLKLINEARVDIESCV_initFlabACSHVDI_BLKdGEM_PBVDI_PB߶AES_PB_initFlaGEMHFORMI@INOUTFUNIDFLUSHFUNIHCLOSEFUNIOPENFUNCIACSPROTOJN_initFlaWWRITELNJtHolzgerlingen, 20.12.91 Der Wunsch einen eigenen Desktop zu installieren, wurde mehrfach geuert. Der Verzicht auf den generischen Desktop bedeutet ein Verlust an Funktionalitt, sofern diese nicht doch wieder selbst programmiert wird. Die Demo zeigt wie ein einfacher Desktop installiert wird. Beachten Sie, da Fenster nicht ikonifiziert werden knnen, da die entsprechende Funktion nicht implementiert wurde. Daher tragen alle Fenster das Flag 'AW_STAY'. Stefan BachertACSOBJECT = ( (aes: (ob_next: -1; ob_head: 1; ob_tail: 2; ob_type: 20; ob_flags: $0000; ob_state: $0000;ob_spec: (index: $00001100);ob_x: 0; ob_y: 0; ob_width: 16; ob_height: 5)), (aes: (ob_next: 2; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_005);ob_x: 5; ob_y: 1; ob_width: 6; ob_height: 1)), (aes: (ob_next: 0; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0020; ob_state: $0000;ob_spec: (free_string: @TEXT_001);ob_x: 5; ob_y: 3; ob_width: 5; ob_heigh{ This file was created with ACS 2.0 (c) Stefan Bachert 1991, 1992 The contents are based on file: F:\PASCAL\ACS2\OWN_DESK\DESK.ACS compiled at: Fri Jan 01 22:31:32 1993 } Const { STRINGS } TEXT_001: packed array [1..6] of char = 'WORLD'#0; TEXT_002: packed array [1..14] of char = ' HELLO WORLD '#0; TEXT_003: packed array [1..1] of char = (#0); TEXT_004: packed array [1..8] of char = ' HELLO '#0; TEXT_005: packed array [1..6] of char = 'HELLO'#0; TEXT_006: packed array [1..21] of char = ' mit eigenem Desktop'#0; TEXT_007: packed array [1..16] of char = ' ber mich ...'#0; TEXT_008: packed array [1..21] of char = '--------------------'#0; TEXT_009: packed array [1..11] of char = ' Quit ^Q'#0; TEXT_010: packed array [1..8] of char = ' Datei '#0; TEXT_011: packed array [1..11] of char = ' Neu ^N'#0; TEXT_012: packed array [1..9] of char = '--------'#0; TEXT_013: packed array [1..12] of char = '-----------'#0; TEXT_014: packed array [1..6] of char = ' Neu'#0; TEXT_015: packed array [1..7] of char = ' Quit'#0; TEXT_017: packed array [1..7] of char = ' Info'#0; { TEDINFOS } TEDI_001: TEDINFO = (te_ptext: @TEXT_005; te_ptmplt: @TEXT_003; te_pvalid: @TEXT_003; te_font: 3; te_just: 2; te_color: $1101; te_thickness: 1; te_txtlen: 6; te_tmplen: 1); { MENU TREES } DESK_MENU : Array [0 .. 20] of ACSOBJECT = ( (aes: (ob_next: -1; ob_head: 1; ob_tail: 5; ob_type: 25; ob_flags: $0000; ob_state: $0000;ob_spec: (index: $00000000);ob_x: 0; ob_y: 0; ob_width: 90; ob_height: 25)), (aes: (ob_next: 5; ob_head: 2; ob_tail: 2; ob_type: 20; ob_flags: $0000; ob_state: $0000;ob_spec: (index: $00001100);ob_x: 0; ob_y: 0; ob_width: 90; ob_height: 513)), (aes: (ob_next: 1; ob_head: 3; ob_tail: 4; ob_type: 25; ob_flags: $0000; ob_state: $0000;ob_spec: (index: $00000000);ob_x: 2; ob_y: 0; ob_width: 13; ob_height: 769)), (aes: (ob_next: 4; ob_head: -1; ob_tail: -1; ob_type: 32; ob_flags: $0000; ob_state: $2000;ob_spec: (free_string: @TEXT_003);ob_x: 0; ob_y: 0; ob_width: 6; ob_height: 769)), (aes: (ob_next: 2; ob_head: -1; ob_tail: -1; ob_type: 32; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_010);ob_x: 6; ob_y: 0; ob_width: 7; ob_height: 769)), (aes: (ob_next: 0; ob_head: 6; ob_tail: 15; ob_type: 25; ob_flags: $0000; ob_state: $0000;ob_spec: (index: $00000000);ob_x: 0; ob_y: 769; ob_width: 80; ob_height: 19)), (aes: (ob_next: 15; ob_head: 7; ob_tail: 14; ob_type: 20; ob_flags: $0000; ob_state: $0000;ob_spec: (index: $00ff1100);ob_x: 2; ob_y: 0; ob_width: 20; ob_height: 8)), (aes: (ob_next: 8; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $2000;ob_spec: (free_string: @TEXT_007);ob_x: 0; ob_y: 0; ob_width: 20; ob_height: 1)), (aes: (ob_next: 9; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $2008;ob_spec: (free_string: @TEXT_008);ob_x: 0; ob_y: 1; ob_width: 20; ob_height: 1)), (aes: (ob_next: 10; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $2000;ob_spec: (free_string: @TEXT_003);ob_x: 0; ob_y: 2; ob_width: 20; ob_height: 1)), (aes: (ob_next: 11; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $2000;ob_spec: (free_string: @TEXT_003);ob_x: 0; ob_y: 3; ob_width: 20; ob_height: 1)), (aes: (ob_next: 12; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $2000;ob_spec: (free_string: @TEXT_003);ob_x: 0; ob_y: 4; ob_width: 20; ob_height: 1)), (aes: (ob_next: 13; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $2000;ob_spec: (free_string: @TEXT_003);ob_x: 0; ob_y: 5; ob_width: 20; ob_height: 1)), (aes: (ob_next: 14; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $2000;ob_spec: (free_string: @TEXT_003);ob_x: 0; ob_y: 6; ob_width: 20; ob_height: 1)), (aes: (ob_next: 6; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $2000;ob_spec: (free_string: @TEXT_003);ob_x: 0; ob_y: 7; ob_width: 20; ob_height: 1)), (aes: (ob_next: 5; ob_head: 16; ob_tail: 19; ob_type: 20; ob_flags: $0000; ob_state: $0000;ob_spec: (index: $00ff1101);ob_x: 8; ob_y: 0; ob_width: 11; ob_height: 3)), (aes: (ob_next: 18; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_011);ob_x: 0; ob_y: 0; ob_width: 11; ob_height: 1)), (acs :(click: new_window; ob_flags: $8000; key: $000e;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)), (aes: (ob_next: 19; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0008;ob_spec: (free_string: @TEXT_013);ob_x: 0; ob_y: 1; ob_width: 11; ob_height: 1)), (aes: (ob_next: 15; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_009);ob_x: 0; ob_y: 2; ob_width: 11; ob_height: 1)), (acs :(click: quit; ob_flags: $8020; key: $0011;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)) ); { POPUP TREES } ASK : Array [0 .. 7] of ACSOBJECT = ( (aes: (ob_next: -1; ob_head: 1; ob_tail: 6; ob_type: 20; ob_flags: $0000; ob_state: $0020;ob_spec: (index: $00ff1100);ob_x: 0; ob_y: 0; ob_width: 8; ob_height: 4)), (aes: (ob_next: 2; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0008;ob_spec: (free_string: @TEXT_012);ob_x: 0; ob_y: 2; ob_width: 8; ob_height: 1)), (aes: (ob_next: 4; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_014);ob_x: 0; ob_y: 1; ob_width: 8; ob_height: 1)), (acs :(click: new_window; ob_flags: $8000; key: $0000;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)), (aes: (ob_next: 6; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_017);ob_x: 0; ob_y: 0; ob_width: 8; ob_height: 1)), (acs :(click: about; ob_flags: $8000; key: $0000;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)), (aes: (ob_next: 0; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_015);ob_x: 0; ob_y: 3; ob_width: 8; ob_height: 1)), (acs :(click: quit; ob_flags: $8020; key: $0000;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)) ); { OBJECT TREES } DESK_INNER : Array [0 .. 3] of ACSOBJECT = ( (aes: (ob_next: -1; ob_head: 2; ob_tail: 2; ob_type: 20; ob_flags: $0040; ob_state: $0000;ob_spec: (index: $00001141);ob_x: 0; ob_y: 0; ob_width: 43; ob_height: 16)), (acs :(click: any_where; ob_flags: $8000; key: $0000;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)), (aes: (ob_next: 0; ob_head: -1; ob_tail: -1; ob_type: 22; ob_flags: $0005; ob_state: $0030;ob_spec: (free_string: @TEDI_001);ob_x: 9; ob_y: 5; ob_width: 9; ob_height: 3)), (acs :(click: new_window; ob_flags: $8020; key: $0000;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)) ); WORLD : Array [0 .. 2] of ACSOBJECT = ( (aes: (ob_next: -1; ob_head: 1; ob_tail: 2; ob_type: 20; ob_flags: $0000; ob_state: $0000;ob_spec: (index: $00001100);ob_x: 0; ob_y: 0; ob_width: 16; ob_height: 5)), (aes: (ob_next: 2; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEXT_005);ob_x: 5; ob_y: 1; ob_width: 6; ob_height: 1)), (aes: (ob_next: 0; ob_head: -1; ob_tail: -1; ob_type: 28; ob_flags: $0020; ob_state: $0000;ob_spec: (free_string: @TEXT_001);ob_x: 5; ob_y: 3; ob_width: 5; ob_height: 1)) ); { WINDOWS } HELLO: Awindow = ( user: NIL; service: Awi_service; create: hello_make; open: Awi_open; init: Awi_init; work: @WORLD; ob_edit: -1; ob_col: -1; wi_id: -1; wi_kind: $000b; wi_act: (x: 0; y: 0; w: 34; h: 14); wi_slider: (x: -1; y: -1; w: -1; h: -1); snap_mask: $fff0; name: @TEXT_002; info: @TEXT_003; wi_type: $2710; kind: $0004; icon : -1; iconblk: NIL; menu: NIL; keys: Awi_keys; obchange: Awi_obchange; redraw: Awi_redraw; topped: Awi_topped; closed: Awi_closed; fulled: Awi_fulled; arrowed: Awi_arrowed; hslid: Awi_hslid; vslid: Awi_vslid; sized: Awi_sized; moved: Awi_moved); MY_DESK: Awindow = ( user: NIL; service: desk_service; create: desk_make; open: Awi_open; init: Awi_init; work: @DESK_INNER; ob_edit: -1; ob_col: -1; wi_id: -1; wi_kind: $0fff; wi_act: (x: 0; y: 0; w: 40; h: 16); wi_slider: (x: -1; y: -1; w: -1; h: -1); snap_mask: $fff8; name: @TEXT_004; info: @TEXT_006; wi_type: $2710; kind: $0004; icon : -1; iconblk: NIL; menu: @DESK_MENU; keys: Awi_keys; obchange: Awi_obchange; redraw: Awi_redraw; topped: Awi_topped; closed: Awi_closed; fulled: Awi_fulled; arrowed: Awi_arrowed; hslid: Awi_hslid; vslid: Awi_vslid; sized: Awi_sized; moved: Awi_moved); ACSdescr: Adescr = ( magic: 'ACS 2.0'#0; version: 200; dx: -4; dy: -4; flags: $001b; acc_reg: ' HELLO WORLD'#0' '; root: @MY_DESK; acc: NIL; mouse: ( (number: 0; form: NIL), (number: 2; form: NIL), (number: 3; form: NIL), (number: 4; form: NIL), (number: 1; form: NIL), (number: 5; form: NIL), (number: 6; form: NIL), (number: 7; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL)) ); { Beispielapplikation fr ACS "Hello World" mit eigenem Desktop 20.12.92 Stefan Bachert (Pure C) 06.10.92 Michael Schlter (Pure Pascal) Letzte nderung: 01.01.93 } PROGRAM hello_world; { Programmname } {$X+} { Functionen knnen ohne Resultat aufgerufen werden } USES ACS, GEM; { bentigte Units } PROCEDURE any_where; FORWARD; { Definitionen werden schon } PROCEDURE new_window; FORWARD; { in DESK.I bentigt } FUNCTION desk_make(not_used : POINTER) : AWindowPtr; FORWARD; FUNCTION hello_make( not_used : POINTER) : AWindowPtr; FORWARD; FUNCTION desk_service( window : AWindowPtr; task : INTEGER; in_out : POINTER) : BOOLEAN; FORWARD; PROCEDURE about; FORWARD; PROCEDURE quit; FORWARD; {$I DESK.I} { einladen der Definitionen } { --------------------------------------------------------- } { Die About Me Dialogbox wird ausgegeben } { --------------------------------------------------------- } PROCEDURE about; BEGIN ACSBlk^.ACSaboutme; END; { --------------------------------------------------------- } { Das Programm wird beendet } { --------------------------------------------------------- } PROCEDURE quit; BEGIN ACSBlk^.ACSclose; END; { --------------------------------------------------------- } { Erzeugt bei Drcken des Mausbuttons ein Popupmenu } { --------------------------------------------------------- } PROCEDURE any_where; BEGIN Ame_popup(ev_window, @ask, -1, -1); { Popupmenu aufbauen } END; { --------------------------------------------------------- } { Button auf Desktop wurde gedrckt } { --------------------------------------------------------- } PROCEDURE new_window; BEGIN HELLO.create(NIL); { Erzeugt ein Hallo-Fenster } END; { --------------------------------------------------------- } { Erzeuge den Desktop } { --------------------------------------------------------- } FUNCTION desk_make(not_used : POINTER) : AWindowPtr; VAR wi : AWindowPtr; { Pointer auf Fensterrecord } BEGIN wi := Awi_create(@MY_DESK); { Erzeuge Fenster } IF (wi = NIL) THEN { Wenn nicht mglich } desk_make := NIL { Dann Error } ELSE BEGIN IF (wi^.work = NIL) THEN { Wenn kein Arbeitsobject } desk_make := wi { Pointer des Fensterrecords zurckgeben } ELSE BEGIN IF (application <> 0) THEN { Wenn als ACC gestartet } BEGIN { Desktop an Fensterkoordinaten anpassen } wi^.work^[0].aes.ob_x := ACSblk^.desk.x; wi^.work^[0].aes.ob_y := ACSblk^.desk.y; wi^.work^[0].aes.ob_width := ACSblk^.desk.w; wi^.work^[0].aes.ob_height := ACSblk^.desk.h; END ELSE BEGIN { Sonst alle auf Null setzten } wi^.work^[0].aes.ob_x := 0; wi^.work^[0].aes.ob_y := 0; wi^.work^[0].aes.ob_width := 0; wi^.work^[0].aes.ob_height := 0; END; desk_make := wi { Pointer des Fensterrecords zurckgeben } END; END; END; { --------------------------------------------------------- } { Erzeuge Hello-World Fenster } { --------------------------------------------------------- } FUNCTION hello_make( not_used : POINTER) : AWindowPtr; VAR wi : AWindowPtr; { Pointer auf Fensterrecord } BEGIN wi := Awi_create(@HELLO); { Erzeuge Fenster } IF (wi = NIL) THEN { Wenn nicht mglich } hello_make := NIL { Dann ein Fehler } ELSE BEGIN IF (wi^.open(wi) <> 0) THEN { Sonst ffne Fenster } BEGIN Awi_delete(wi); { Wenn nicht mglich, dann lsche Fenster wieder } hello_make := NIL; { Und Fehler zurckgeben } END ELSE hello_make := wi; { Sonst Pointer des Fensterrecords zurckgeben } END; END; { --------------------------------------------------------- } { Lsche ein Fenster } { --------------------------------------------------------- } PROCEDURE term(window : AWindowPtr); BEGIN IF (application <> 0) THEN { Wenn als ACC gestartet } Awi_delete(window) { Fenster wird gelscht } ELSE Awi_closed(window); { Sonst: Fenster wird Iconifiziert } END; { --------------------------------------------------------- } { Function, die die Nachrichten vom ACS bearbeitet } { --------------------------------------------------------- } FUNCTION desk_service( window : AWindowPtr; task : INTEGER; in_out : POINTER) : BOOLEAN; BEGIN CASE task OF AS_TERM: term(window); { Fenster soll geschlossen werden } ELSE BEGIN desk_service := FALSE; { Message wurde nicht bearbeitet } EXIT; END; END; desk_service := TRUE; { Message wurde bearbeitet } END; { --------------------------------------------------------- } { Initialisieren der Applikation } { --------------------------------------------------------- } FUNCTION init_acs : INTEGER; VAR window : AWindowPtr; { Pointer auf Fensterrecord } BEGIN window := Awi_root; { Hole Pointer auf Rootfenster } IF (window <> NIL) THEN { Pointer vorhanden? } BEGIN window^.service(window, AS_NEWCALL, @@HELLO.create); { Routine fr Neu-Ikon einsetzten } window := @HELLO; { Hole Pointer auf Hallo-World-Fenster } window^.create(NIL); { Fenster sofort erzeugen } init_acs := OK; { Alles richtig gelaufen } END ELSE init_acs := FAIL; { Fehler aufgetreten } END; BEGIN { Programmstart } start_acs(init_acs, @ACSdescr); { ACS starten } END. { Programmende })*+x/menu_make<>耀80menu_service@8 { ACS } start_acs (init_acs, @ACSdescr); { und los } END..ACS  # ACS 1.0d HELLO WORLDY ?#O3HALERT LISTE--ASKP0013X _C  *"%!+-<DATA LIST,z,ppDESK_INNER_Cj@A+&0  *((J((DESK_MENU_CZZ   P               *  +''FENSTER LISTEO3 &'HELLO_001b SO3t)$ "'&|ICON LISTE&2 IMAGE LIST% MAUSFORM LISTE%% MENU LISTEO3$$ MY_DESKO3t('('$X$ OBJECT LISTEO3$$$LPOPUP LISTEO3##REFERENZ LISTEO3%&'()*+#>#TEDINFO LISTE"#TEDI_001n">"@@TEXT LISTE !"!"0TEXT_001hEWORLD!!TEXT_002UUUUUUUUUꪪ HELLO WORLD !2!|TEXT_003UUT5UUUV?  !"TEXT_004 'EDOBST HELLO   TEXT_005UUSHELLO  bTEXT_006G.C  mit eigenem Desktop TEXT_007UU_UUUU ber mich ...NTEXT_008=UUUUU0uUUU--------------------: TEXT_009hdZ % Quit ^QTEXT_010 ^In Probe  Datei 8 TEXT_011 ^In Probe  Neu ^N& TEXT_012 Tn Optione--------~ TEXT_013_______________________-----------&p TEXT_014UUUUꪪ Neu!TEXT_0150at| % Quitr"TEXT_017@@0 Info(#USERBLK LISTE.x$WORLD_001_C%55about^.ACSaboutmeO3Procedure about; { Click routine } Begin End; \&any_where5u 'desk_make R z(desk_serviceigCnvT ~)hello_make?Uffg4*new_window Tn Optione+quit^.ACScloseO3! "'* ICON LISTE)) IMAGE LIST)d MAUSFORM LISTE) MENU LISTEO3() OBJECT LISTEO3(vPOPUP LISTEO3((ZREFERENZ LISTEO3 !' 'jSUNRISE${ This file was created with ACS 2.0 (c) Stefan Bachert 1991, 1992 The contents are based on file: F:\PASCAL\ACS2\PLOT\PLOT.ACS compiled at: Mon Jan 04 07:36:22 1993 } { Pascal Prototypes } Procedure area; Procedure clear; Procedure pcircle; Function plot_init (wi: AwindowPtr): Integer; Function plot_make (para: Pointer): AwindowPtr; Procedure ptext; Const { STRINGS } TEXT_01: packed array [1..1] of char = (#0); TEXT_02: packed array [1..9] of char = 'Ausgaben'#0; TEXT_03: packed array [1..10] of char = ' CONTROL '#0; TEXT_04: packed array [1..6] of char = 'Texte'#0; TEXT_05: packed array [1..9] of char = 'Ellipsen'#0; TEXT_06: packed array [1..8] of char = 'Lschen'#0; TEXT_08: packed array [1..8] of char = 'Flchen'#0; { TEDINFOS } TEDINFO_01: TEDINFO = (te_ptext: @TEXT_02; te_ptmplt: @TEXT_01; te_pvalid: @TEXT_01; te_font: 3; te_just: 2; te_color: $1071; te_thickness: 0; te_txtlen: 9; te_tmplen: 1); { AUSERBLK } A_3DBUTTON02: AUSERBLK = (ub_code: A_3Dbutton; ub_parm: $21211108; ub_serv: Auo_string; ub_ptr1: NIL; ub_ptr2: NIL; ub_ptr3: NIL); A_3DBUTTON03: AUSERBLK = (ub_code: A_3Dbutton; ub_parm: $20110108; ub_serv: Auo_string; ub_ptr1: @TEXT_08; ub_ptr2: NIL; ub_ptr3: NIL); A_3DBUTTON04: AUSERBLK = (ub_code: A_3Dbutton; ub_parm: $20110108; ub_serv: Auo_string; ub_ptr1: @TEXT_04; ub_ptr2: NIL; ub_ptr3: NIL); A_3DBUTTON05: AUSERBLK = (ub_code: A_3Dbutton; ub_parm: $20110108; ub_serv: Auo_string; ub_ptr1: @TEXT_06; ub_ptr2: NIL; ub_ptr3: NIL); A_3DBUTTON06: AUSERBLK = (ub_code: A_3Dbutton; ub_parm: $20010108; ub_serv: Auo_string; ub_ptr1: NIL; ub_ptr2: NIL; ub_ptr3: NIL); A_3DBUTTON07: AUSERBLK = (ub_code: A_3Dbutton; ub_parm: $20110108; ub_serv: Auo_string; ub_ptr1: @TEXT_05; ub_ptr2: NIL; ub_ptr3: NIL); { OBJECT TREES } CONTDIA : Array [0 .. 10] of ACSOBJECT = ( (aes: (ob_next: -1; ob_head: 1; ob_tail: 9; ob_type: 24; ob_flags: $0000; ob_state: $0010;ob_spec: (free_string: @A_3DBUTTON06);ob_x: 0; ob_y: 0; ob_width: 26; ob_height: 9)), (aes: (ob_next: 3; ob_head: 2; ob_tail: 2; ob_type: 24; ob_flags: $0000; ob_state: $0010;ob_spec: (free_string: @A_3DBUTTON02);ob_x: 2; ob_y: 1; ob_width: 22; ob_height: 1)), (aes: (ob_next: 1; ob_head: -1; ob_tail: -1; ob_type: 22; ob_flags: $0000; ob_state: $0000;ob_spec: (free_string: @TEDINFO_01);ob_x: 0; ob_y: 0; ob_width: 22; ob_height: 1)), (aes: (ob_next: 5; ob_head: -1; ob_tail: -1; ob_type: 24; ob_flags: $0005; ob_state: $0010;ob_spec: (free_string: @A_3DBUTTON03);ob_x: 2; ob_y: 3; ob_width: 10; ob_height: 2)), (acs :(click: area; ob_flags: $8000; key: $8821;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)), (aes: (ob_next: 7; ob_head: -1; ob_tail: -1; ob_type: 24; ob_flags: $0005; ob_state: $0010;ob_spec: (free_string: @A_3DBUTTON07);ob_x: 14; ob_y: 3; ob_width: 10; ob_height: 2)), (acs :(click: pcircle; ob_flags: $8000; key: $8812;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)), (aes: (ob_next: 9; ob_head: -1; ob_tail: -1; ob_type: 24; ob_flags: $0005; ob_state: $0010;ob_spec: (free_string: @A_3DBUTTON04);ob_x: 2; ob_y: 6; ob_width: 10; ob_height: 2)), (acs :(click: ptext; ob_flags: $8000; key: $8814;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)), (aes: (ob_next: 0; ob_head: -1; ob_tail: -1; ob_type: 24; ob_flags: $0005; ob_state: $0010;ob_spec: (free_string: @A_3DBUTTON05);ob_x: 14; ob_y: 6; ob_width: 10; ob_height: 2)), (acs :(click: clear; ob_flags: $8020; key: $8826;userp1: NIL;userp2: NIL;mo_index: 0; aob_type: 0)) ); { WINDOWS } CONTROL: Awindow = ( user: NIL; service: Awi_service; create: plot_make; open: Awi_open; init: plot_init; work: @CONTDIA; ob_edit: -1; ob_col: -1; wi_id: -1; wi_kind: $0fef; wi_act: (x: 0; y: 0; w: 120; h: 50); wi_slider: (x: -1; y: -1; w: -1; h: -1); snap_mask: $f0f0; name: @TEXT_03; info: @TEXT_01; wi_type: $2710; kind: $0003; icon : -1; iconblk: NIL; menu: NIL; keys: Awi_keys; obchange: Awi_obchange; redraw: Awi_redraw; topped: Awi_topped; closed: Awi_closed; fulled: Awi_fulled; arrowed: Awi_arrowed; hslid: Awi_hslid; vslid: Awi_vslid; sized: Awi_sized; moved: Awi_moved); ACSdescr: Adescr = ( magic: 'ACS 2.0'#0; version: 200; dx: -4; dy: -4; flags: $0033; acc_reg: ' ACS Plot-Test'#0' '; root: NIL; acc: NIL; mouse: ( (number: 0; form: NIL), (number: 2; form: NIL), (number: 3; form: NIL), (number: 4; form: NIL), (number: 1; form: NIL), (number: 5; form: NIL), (number: 6; form: NIL), (number: 7; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL)) ); implementation { Pascal Routines } { 'area' Not defined yet by user } { 'clear' Not defined yet by user } { 'pcircle' Not defined yet by user } { 'plot_init' Not defined yet by user } { 'plot_make' Not defined yet by user } { 'ptext' Not defined yet by user } * *TREFERENZ LISTE:)TEDINFO LISTE):TEDINFO_01()TEDI_001*(j(TEXT LISTE((ZTEXT_001,+2.:____''.ACS( "!ACS 2.03 ACS Plot-Test 3O3H0x20010108Lv0x20110108L,0x21211108L.ALERT LIST.<.A_3DBUTTON02  -.A_3DBUTTON03  -h-A_3DBUTTON04  ,-HA_3DBUTTON05  ,, A_3DBUTTON06  ,*,t A_3DBUTTON07  + A_3Dbutton+ Auo_string)/ CONTDIAoS   #!  % ( $&()&CONTROL1Stx'& x2'(DATA LIST(HICON LIST'IMAGE LIST'MENU LIST'jMOUSEFORM LIST''^OBJECTTREE LISTO3 &POPUP LIST&LI,REFERENCE LIST_C #$%&'(%&@TEDINFO LIST%%TEDINFO_01q %%dTEXT LIST $%TEXT_01$j$ TEXT_02Ausgaben$$X TEXT_03 CONTROL #$TEXT_04Texte#Z# TEXT_05Ellipsen##JTEXT_06Lschen"" TEXT_08Flchen"<"!USERBLK LIST !"0"WINDOW LISTC!R#areaH$clear!%pcircle &plot_init7'plot_make(ptext{ UNIT PLOTM ab for PurePascal (c) 1992 Stefan Bachert PURE PASCAL Version: Michael Schlter (@SL) Letzte nderung: 04.01.1993 } UNIT plotm; {$X+} INTERFACE USES GEM, ACS; VAR plotterw : AWindowPtr; { Globale Vairable } {$I PLOT.I} { Lade ACS-File ein } VAR count, update : INTEGER; { Lokale Varaiable } { ----------------------------------------------------------------- } { Lscht den Inhalt des Plot-Fensters } { ----------------------------------------------------------------- } PROCEDURE clear; BEGIN IF plotterw <> NIL THEN BEGIN w_clr(plotterw); w_update(plotterw); END; END; { ----------------------------------------------------------------- } { Mal eine RECHTECK } { ----------------------------------------------------------------- } PROCEDURE area; VAR handle : INTEGER; pxy : ARRAY_8; BEGIN IF plotterw <> NIL THEN BEGIN count := 50; { Wartezeit bis zum nchsten Plot } plotterw^.service(plotterw, AS_PLOTHANDLE, @handle); { Ermittle akt. VDI-Handle } pxy[0] := Random(63) SHL 2; { Zufllige Koordinaten ermitteln } pxy[1] := Random(63) SHL 2; pxy[2] := pxy[0] + (Random(15) SHL 2) + 15; pxy[3] := pxy[1] + (Random(15) SHL 2) + 15; vswr_mode(handle, MD_REPLACE); { Flche ersetzt Hintergrund } vsf_color(handle, Random(ncolors - 1) +1); { Farbe d. Flche } vsf_interior(handle, FIS_PATTERN); { Flche hat Muster } vsf_style(handle, Random(15) + 1); { Flchenstyle } vsf_perimeter(handle, 1); { Umrandung an } w_bar(plotterw, pxy); { zeichnet ausgeflltes Rechteck } w_update(plotterw); { Frischt die Anzeige auf. } END; END; { ----------------------------------------------------------------- } { Gibt einen Text aus } { ----------------------------------------------------------------- } PROCEDURE ptext; VAR handle, point, temp, x, y : INTEGER; name : STRING32; BEGIN IF plotterw <> NIL THEN BEGIN count := 50; { Wartezeit bis zum nchsten Plot } plotterw^.service(plotterw, AS_PLOTHANDLE, @handle); { Ermittle akt. VDI-Handle } vst_font(handle, vqt_name(handle, Random(ACSblk^.fonts) + 1, name)); { Whl ein Font aus } point := vst_point(handle, 99, temp, temp, temp, temp); { Ermittelt max. Hhe des Zeichensatzes } IF (point <= 99) AND (point >= 1) THEN BEGIN vst_point(handle, point SHR 1, temp, temp, temp,temp); { Setzt Zeichenhhe } x := Random(63) SHL 2; y := Random(63) SHL 2; vswr_mode(handle, MD_REPLACE); { Flche ersetzt Hintergrund } vst_color(handle, Random(ncolors - 1) +1); { Farbe d. Textes } vst_effects(handle, 0); { Text hat keine Effekte } vst_rotation(handle, 0); { Keine Textrotation } vst_alignment(handle, 0, 5, temp, temp); { Schriftausrichtung } name := 'Textprobe' + #0; { Text erstellen } w_gtext(plotterw, x, y, @name[1]);{ gibt Text aus } w_update(plotterw); { Frischt die Anzeige auf. } END; END; END; { ----------------------------------------------------------------- } { Mal einen Kreis } { ----------------------------------------------------------------- } PROCEDURE pcircle; VAR handle, x, y, xrad, yrad : INTEGER; BEGIN IF plotterw <> NIL THEN BEGIN count := 50; { Wartezeit bis zum nchsten Plot } plotterw^.service(plotterw, AS_PLOTHANDLE, @handle); { Ermittle akt. VDI-Handle } x := Random(63) SHL 2; { Zufllige Koordinaten ermitteln } y := Random(63) SHL 2; xrad := (Random(15) SHL 1) + 7; yrad := (Random(15) SHL 1) + 7; vswr_mode(handle, MD_REPLACE); { Kreis ersetzt Hintergrund } vsf_color(handle, Random(ncolors - 1) +1); { Farbe d. Flche } vsf_interior(handle, FIS_PATTERN); { Flche hat Muster } vsf_style(handle, Random(15) + 1); { Flchenstyle } vsf_perimeter(handle, 1); { Umrandung an } w_ellipse(plotterw, x, y, xrad, yrad); { zeichnet ausgefllten Kreis } w_update(plotterw); { Frischt die Anzeige auf. } END; END; { ----------------------------------------------------------------- } { Mal eine kleine Plots } { ----------------------------------------------------------------- } FUNCTION plot_init(wi: AWindowPtr): INTEGER; VAR handle, x, y : INTEGER; BEGIN wi^.state := wi^.state OR AWS_LATEUPDATE; IF plotterw <> NIL THEN BEGIN DEC(count); IF count <= 0 THEN BEGIN count := 0; { Falls < 0 } plotterw^.service(plotterw, AS_PLOTHANDLE, @handle); { Ermittle akt. VDI-Handle } x := Random(63) SHL 2; { Zufllige Koordinaten ermitteln } y := Random(63) SHL 2; vswr_mode(handle, MD_REPLACE); { Kreis ersetzt Hintergrund } vsf_color(handle, BLACK); { Farbe d. Flche } vsf_interior(handle, FIS_HOLLOW); { Kreis hat kein Muster } vsf_perimeter(handle, 1); { Umrandung an } w_circle(plotterw, x, y, 5); { zeichnet Kreis } DEC(update); IF update <= 0 THEN BEGIN update := 5; w_update(plotterw); { Frischt die Anzeige auf. } END; END; END; plot_init := OK; END; { ----------------------------------------------------------------- } { Erstellt ein Fenster } { ----------------------------------------------------------------- } FUNCTION plot_make(para: Pointer): AwindowPtr; VAR wi : AwindowPtr; BEGIN wi := Awi_create (@CONTROL); { Erzeuge Fenster } IF wi <> NIL THEN { Wenn OK } wi^. open (wi); { ffne das Fenster } plot_make := wi; { und zurck } END; BEGIN Randomize; update := 0; END. inp_make; open: Awi_open; init: Awi_init; work: @DIALOG; ob_edit: -1; ob_col: -1; wi_id: -1; wi_kind: $000b; wi_act: (x: 0; y: 0; w: 99; h: 99); wi_slider: (x: -1; y: -1; w: -1; h: -1); snap_mask: $f0f0; name: @TEXT_002; info: @TEXT_003; wi_type: $2710; kind: $0003; icon : -1; iconblk: NIL; menu: NIL; keys: Awi_keys; obchange: Awi_obchange; redraw: Awi_redraw; { Beispielapplikation fr ACS "PLOT" 02.12.92 Stefan Bachert (Pure C) 04.01.93 Michael Schlter (Pure Pascal) Letzte nderung: 04.01.93 } PROGRAM plot; {$X+} USES ACS, PLOTM; { ----------------------------------------------------------------- } { ACS Initialisieren und NEU-Ikon auf den Desktop legen } { ----------------------------------------------------------------- } FUNCTION init_acs: INTEGER; BEGIN plotterw := AWindowPtr(get_plotter)^.create(NIL);{ Erzeuge Plotter-Fenster } CONTROL.create(NIL); { Erzeuge Control-Fenster } IF plotterw <> NIL THEN plotterw^.open(plotterw); { ffne das Fenster } init_acs := OK; END; { ----------------------------------------------------------------- } { Hauptprogramm } { ----------------------------------------------------------------- } BEGIN { ACS } start_acs (init_acs, @ACSdescr); { und los } END.prima|di poterlo configurare con|il CPX.][ OK ][1][Du mste ha startat|musaccelerator programmet|innan du kan ndra dess|instllningar.][ OK ]b  6f d:0`Z:2^L"v [[le7#FTf1!0f?BM}bn} ~͎>7F! wbQ6`?&vϾMBM ] 8Pĺ bDA:0jj4P).ِSue,x@+KZBvpAqM?gW}w^mm9yYXsve(-ن%]J UwUZW̚Qgw}ǭ Ԕ$ػ,ݙ4$bUmٯ8}}3zwekMOX%Ayz{K:zx$T>>> PURE-C <<<< for ATARI-ST Version 1.0 (C)88-90 Borland International &H f&op`B@#3 k # Ј<.@#Jy g<"@(I$k,"Jf"JfB// ?<?<JNAO A<~kRrRAfA6<HCBB`6 !jBJ)gHiRC` "fSI "WSAkHiRCBSQJ)gHiRCHy`$ON0 J"LNf? 9äg @N 9èg @NN?<LNA/ AXN>$H f` J"j N J$_NuH8$H(I2UAg]Ag `F JNV`@6*JCk82H ЀЁ j"p &Qg KNhr0 J"jfN`8`B@`pLNuC yDANjB@NuH8N$H fp` GXCph J(jN$K"jNB@LNu x (( hl0(A`,H|fA<  @#6#: #./| y2N y: 6 y.N!>|NuH"y> y: 6Jxg?/Hy@N y: LNsHyx/<!NMP#2Nu/92/<!NMPNuH0QO8:6ED Rh o`GBpCg Sg062< R0(ND` SUUg6UU2?E?C?CAr"R0)NPOL 8NuH0QO8:6ED RhodGB0@|g Sg062< R0(ND` SUUg6UU2Ar"R0)NPOL 8NuH6YO yD"h@&iBCKED`*|l00HЀ yD"hT81HW"M K0N~XO yD"h@0)4U2)6W0H$ԂԀ s(f23(|g s( ,P`2H ЀЁ,s 0n2I54n50nnS@54nnSB5 0n54n50nn S@5 5`H0H5520H$ԂԀs(SA4J5 24H ЀЂsSA0H5BrRC yDhFmXOLlNuH(O?@?AEDr R0(Nvr R0(N*BBBA R0(N`r R0(NR R>?h 0(h S@?@2( hSA?AA"R0)rNZ0<NLIDBC9C`8|l:0H tf:/t/t8/t2/t ?A Rh l~h Rh lxh 42/ 0ar420ah42/0/ aZ4/ 2/0aL42/ 0a420a4/ 20a4/2/ 0a`Z:/0Ht/t8/t Rh l~h 420a420a420aL420aBRC RhFm‘0<NLABA"R0)NZBlOLNu yDBhHNuAD"P0)HiFmpNu"P0)HRiHHЀ"P"iT01NuH0UO$H6GD S@g N j S!J@p4H"ҁ҂ jp fN"S0)DiFoBr0H$ԂԀ犂p( "jf J0N S0(FRhFHЀ S"hT3>Cp J&jNTOL NuHCp J*jN` SCTLJCn\TOL<NuH0ED R&h@0(FoPBC`40HЀ R"hT81RC4H ЀЂ k20 |"kf K0N RhFmBhFp K$kNL NuH8$H6:8(IH$ԂԀ&jk0kS@lmplnhk0kS@QmXlnR2<kfHtk f@0+| g0a`.<+JFo&"L420 Jaz2H ЀЁ j<0FfLxNuH8O86N*:N$H gGDp Shffa S h?l0lS@?@2,lSA?AC4*62*4 JB@az S h2H ЀЁ82DfJGk0`0LNuH?|?h0(h S@?@?h 2( h SA?A 2|?I ?I?I?I?I?I?I?IC$k KpNaB&0/VHH@?@ 2/THHA?A?oV:K8:T yD>(fpGg|G0@?w 4/H"ҁ҂ҁ yD h/2pGg|G0@2/w g(?w 4/H"ҁ҂ҁ yD h?j ?j ?jN*H0| |(b4@0;NR(((((((((dr~6666(((((( ((((((((2*0*N0`C K(kjN` K"knN`pkTg K"krN`p K(kN` K"kvN`0* K"kzN`z0* K"k~N`j0* K"kN`\C K(kN`PC K(kN`Dp K(kN`6aT yD1|~`$ g MN ` MaF` J"yD"iNNFPOL<NuHaED R2(d0(bN*6N&H g"R8)dk6JDj(r i R!| R!| R!|L R!|L R!|N R1| R$_NuH06&H$Ia$"J K0aL NuNuPmhm4hBl 0(h@mB@NupNuH8O&H(IE` %f +sfTK`fBp"L JN"K JNApNfOLNuH QO68 yD$h\"JAN=|g2H ЀЁ爸r f ?/?/?/4/r0 JN\O`&p???/ ?/ ?/ 4/ r J0NO POLNu/ $I?*?*?*4rB@ yD h\N\O$_NuH>O$H(IGD S!J\K 0nr JB@NE:`:BT0nBUvM `D0g2@g8BUt"NBA JN:HWHo SHhfHoHhdBgBgBgBgBgBgBgBgBgBgBgBgp?"HCb4rpNO.8r@gBD2/ S0(f JNEhJ@k:"Mr JN6`p Shfg2/A|f"J hXNPO `BHoHoC@ABN(POo:o80/:2*AA:4/80*@@;Bpj;@rj;ApNV"SPI MN$pU5@rm5A MN>/H"S?)?) ?) 4)rB@ JN\OBDC Ja8H"ҁҀ42| fI0,|g$gr 4H ЀЂrfl S!J\ S1D` SBhh TNp4H"ҁ҂rg8pr g0t?02 |? S?(?( ?( 4( J0BANO S0(hgL2H ЀЁr "M oN?JDf 0* |@fR2H ЀЁ42| g< S?(?( ?( ?(?*C M4*2*0*NO YUYm` SBhhpNV S"hX#oj S"hX#of S"hX3CVpC S hXA4NA a0OO,H$I(oHNZAN8P6 Jp\NN&Hg" f8N<A|:B@ANC" JNp\ JNN&HC$ANj"L KNKB yD"h0|g| g|g`Ho&"M JNXO8`/Ho*"M JN|PO8JDgv0/&gngj *:fb MNr f -.f "L MNp. MN: fC% MN"L MNp\ JNN&H"MANj,J`A0N8N NO(L|Nu0Ql00(il1i0h2iAoh00(h2)iAoh1ANu0h2iAl`0i2(h4)iBl`2)i4Qo`404(io`4)1B2@1I0h1@2(oJ@n B@1@1@Nu/ $H g0"yD2)6f4)8g JNr`N& JNrN>$_Nu// & yD2(6f4(8g N$H`N& N$HN> fAipNf` J$_&NuH8$H gBGʰ Sp n <a(H f Ja>`(B& S (R S!LNu/ / Eʰ` R ( pa R (SJn RB R&P ga$`&_$_NuH8(H$I6H"ҁҀAt hf6rh f.G0+|g $gAD"P#LX"P#J\"P3C` SNLNuH $H:0*H$ԂԀ42(H"ҁ҂620*H"ҁҀ82` 2H ЀЁ622H ЀЁ82Ef0L8NuH0QO&H$I68^f2AN=2H ЀЁJDgj `j C K$kjNPOL NuH6O&H$I6 Ia88r"J K0aHWHo CAN(POp2/@|?@MKzBo 2H ЀЁ?r?r"J M0N=0j4H"ҁ҂牑rBU0-j4H"ҁ҂牑rBm>m yDhh JGo2H ЀЁ爟rU>-m yDh hJGo2H ЀЁ爟rm MN>/H?-?-?-4r0 JN\OpNVHWHoHoHo HoBgBgBgBgBgBgBgp???/.?/2??/2C842pNO.>pNV?/4/ r0 JN`TO<@f|Fgؑ0<NL0/ g>4H"ҁ҂r p?42 |??.?.?. J0BA4NO JFkpp4H"ҁ҂r f\"J N0N=p?r0H$ԂԀ犂r( ??.?.?. J0BA4NO 2H ЀЁr ?| `Bo 0<NL:JFj?/4/ r0* JN`TO<J@kHWHo CAN(POp2/@|?@Fg`4H"ҁ҂ 2 fL"M oN?2H ЀЁ55"J K0BAa60 Ja.8r"J K0a`FgpGg"M oN?2H ЀЁ55NEJFo6jg0jg*2*H ЀЁ爼rgN70"J KaTN7BA0"J KaO"LlNuH>O,H:IKHWHo"L MN(POp2/@|?@?|Bo 4H"ҁ҂<6JFkn`2H ЀЁ<6Fgp4H"ҁ҂v gغFg@2H ЀЁ462H ЀЁ爕v0H$ԂԀ26(0H$ԂԀ犓v(G0"N KN=0j4H"ҁ҂牑vBS0+j4H"ҁ҂牑vBk0k yDhh ?@J@o4H"ҁ҂牑vS0+k yDh h?@J@o4H"ҁ҂牑vk KN>/H ?+?+?+4r0 NN\OEpNVHWHoHoHo HTBgBgBgBgBgBgBgp??????/0"M42pNO.?@ pNV?4r0 NN`TO<og 2/ gh0/H$ԂԀv( 0<NLp?4/H"ҁ҂06 |??*?*?* N0/BA4NO 0<NLJFkFgp4H"ҁ҂v ft"N J0N=0<NLp?r0H$ԂԀ犂v( ??*?*?* N0BA4NO 0<NL2H ЀЁv ?| `Bo ?F0/ g4H"ҁ҂ 6 fr66C>6JGkd?4C N0rN`TO@fL2H ЀЁv=Bv N0a84H"ҁ҂vJ@kvEg NNF@fdJFjT2H ЀЁ>6`60 NNF6?4r NN`TO8J@k@f2H ЀЁ>6JGjJGoJDj po g8"K o N?0O$L|NuH0O&H$I?@?AANv JN?k0+j8l`0*8?@?k20ANJ@g22+H ЀЁ83?4 K0rN`TO:@l"K JaPOL 8NuH0YO$H6?A&j^$ g KNEh>J@kt4+H"ҁ҂:32H ЀЁ<30+H$ԂԀ>3(680 KNF6J@k,kf`(2H ЀЁ<32H ЀЁ>3Ffp`^GfN70* f$BA K0N0"K Jar0 KN`"r0"K Ja0"K JaBA0"K JapN7B@XOL NuH $H6*"yD2H ЀЁ5 622H ЀЁ820H$ԂԀ r( N*JEgRE0 yD:4H"ҁ҂牚rr4H ЀЂr<*0H"ҁҀ<22H ЀЁ82Dg22H ЀЁ<22H ЀЁr0H$ԂԀr(`LxNuH8OEDN R0J@k 3ʴG RHhHh"K KNPO R1@ R1@ RHhHh Hh HhrB@NO R"R3hIHT"RCAʶNXO R1l R1l Lr"R0)NT R1l R hf1|` R hf1|r L"R0)N R1l  R1l R1l R1l R1y 6 R"h igp`B@ R1@8 R2(6g"HCANJ@g R(HB("RC RANjp/ RANN(H gC RANjB"RC RANjp\ RANN(H f6"R ):fC RA Nj RB(`&"RC RA Nj`RL"L RA NjBp. RANN(H g\B`X R h6N7B@NV0OvLNu/ O09ʴgpNVED R hNNfN7"B@NVp R"h j0NL$_NuSyf09f y09NLNu09RyJ@f 0<NLNuSyf0<NL y09NLNu?/ 69By0!y yD$h j0NL$_NuH>UO(Hv$Hּp JEhg N%&H g"L NBW$K*J0*|f2* | f*H|| bB4; N T*xxfx j N;@*H%H `^ j N;(H*L%M ,g C,@ JpN Wf6`8 j N; *H%H `" j N:*H%H ` j N<*H%H f`p JEhg. KTOL|NuH<$H g&J0+|f2+ | f+H|| bnB4; N N$dBdBZB k N;`@(k ,g K*@pN LN;`" k N"KpN SN<$ kN<%H kN<%H g "*g$f` J&_$_Nu/ $H g$ jN?j2j|?A4*jSB?B2*0/WR@NT*H gPBoBo 2/W?A tj?B0<NL/ "SCjAr$S0*NXO0<NL MOL,Nu/ / O$H&I f2?+?+?+??+?+4+2pNhO N`0O*H&I?@ 6E 2H ЀЁI4<lfpl fJCgl@ `l plgvHoHo HoHor B@NO0- o fNrmVg4-Rg>NF"Jp M,mN;R;|0-"KAarC MNNrB@ MNGB0,| gDJCgrlgN j0"K Ma`pl g M0N`0 MN`pDlfrlg|tl f K0NF6H"ҁҀ83`>p4H"ҁ҂sgps g23 | M"mf0N2H ЀЁ83Dfrl 0 M"mfN`plgr4, A M"mf0NOL|NuH+k0"KAN=7G0k2/koj8l oj:mJEgC JNNN2H ЀЁ s *P4*j MN5@BjV#>+?k0*4k0*6k4C20 KN:|f7G7oO L,NuH>O$H86&j$ gbRAf4H ЀЂ63 I 849j69j89j::* JEkK42H ЀЁ<3 >+>4k4-k0<NLMHnHnHnHVr 0NO`"L NN$0.gn0.mJ@jnn0.oTCf??.?.4r K0N\O`42H ЀЁ7 t???.?.?. K0r4NO HnHnHnHVr 0NO0.n`0<NL j1G j1W2H ЀЁ7 OL|NuH0QO$H6rjVg"yD"i\AN=`0"jAN=0*4W2*6oC J&jjNPOL NuH3(4H"ҁ҂ sf67H>+4H"ҁ҂23H ЀЁ2H$Ԃԁ7(?/?/?/4/r0+ KN\Ooo0/o??/?/4/r LB@N\OHoHoHo Ho r 0NO0/n 0<NL j1D j1EO L`2 <2*@HNT@>` <2*BHNT@>?WKI 6+8+0/ |b@0;N 0@P`pJDg0*:k`nDg0*:k`^JDg0/k`NDg0/k`>JCg0*8k`.Cg0*8k`JCg0/k`Cg0/k0+oBkko7E0+oBkko7F0+D@2/DAAD@7@4+DB0/D@@DB7BSof JN?W20 JNR\HTHU"L LN(POpUf0/Wg JNOL8+:*8<*:2jkp2)jkpil5i8pil5i:p2ij8JAokp2)ij:JAokpJ@g(j^ g4,H"ҁ҂64`BCHj*Hj(0*:C??*82*6C?C&A$4*42*"B@NO0+D@2*H|AD@7@2+DA4*HBBDA7A JN0+Wfkf j8fj:g>jV?**?*(?*&?*$r0* NBPONpjVg C$ J&jjNTOLxNuH0&H$Irp INE62<@ JNE8J@j2<@ JpNE8JDoRCgNJCk2H ЀЁr2H ЀЁr K0a*4H ЀЂ22 K"kf0Np`B@L NuHO$H6* JCk8"ji:iG0<jTfxj8lp2*8DAAofj:l`4*:DBBoVHkHkHkHS0r NO0+gj2+gbHoHoHo Ho 0r NO0/f2/gC4 J(jjN`(ID"TPI KN$C4 KN$0+g2+gK0;@:2+;A ;A0kS@;@ ;@2+kSA;A;AJDg(JDoUm pm 67D`mm0D@7@JEg,JEommpm7@7E`mm 0D@7@0mnP2-mnF M"T0)BANZ0<NL THhj"HCj Mr,T0.NXO0<NL"K J(jjNO L|8Nu09RyJ@fBN#N~A"P3 333 3NuH6:x@D0 yDHЀ2HN|мN% g0C 1C1E1DBh "yD1i BA1A1A1AL8NuN%VNuNu/ / $HG0+fa N8 ND##!|Up"| RNA0*@ "P3@"y 3@"P3j"P3jpj"P3@7@rj"P3A7A K"yD0)rNZ&_$_Nu/ / E A0"y 3@"P3@"P3j"P3jG0*"P3@7@2*"P3A7Ap"| jN j!j  Kr"yD0)NZN8(&_$_NuH|lgn`|dgn4|gn|gW@gv|gt`z|ag\S@gXS@gT`h|e|b^@0;N>>>>>>>|m| b<@0;N `` `RH`HNuH>O><$H?BI0<ogNx",fHx"| |N*XO)P ,g2/| @0`B<amJ<znD`/BD<am <znv`(<Am<Znxv `Jo< l x<`<@H JN:&HH JN: g"gd&HKD ggB+BA U0(NC J,U0.NR:/WTBg8 J42"U0)N.2 U0(NC J,U0.NR6/W`2 U0(NBC|fSC L42C"U0)N.BA U0(N+g * g @N<%H * fdA N<%H `R K%P0(H%@`@ j NpgPrS?A?A?Atk?B?B?B rk?A?A tk?B?BAr"T0)Npjgr T0(NvTSTkUkUk Kr"T0)N?S67o Kr"T0)N0k?@r@g@6t@7B` 0/@7@60+k?@r@g@7@t@7B`0/@7@7@ Kr"T0)N KBA"T0)NZpjO$L<NuH?Gj `:*?j>* 8* ofԺ|fpjgrªgG`Gǔ`pgG:`GB@?@ ?@ ?|?| ?j pD?@rj ?At D?B#Hy THhjCA*T0-rNPO#Hy THhjCAr&T0+NPO`BvEC|lv|oF|l|0@@2/AA4/g zjfr T0(NvBA T0(Nr T0(Nr T0(N??42 T0(NXOpg^r T0(NRr T0(N*r T0(NpBBBA T0(N`?<BgpF?rC?4 T0(2NPOpjgHr T0(Nvr T0(NBA T0(NpF?rC?4 T0(2NXOABA"T0)NZpjO&L>O$onG:ID0*f2*g867j0*jS@7@2*jSA7A K"T0)rNZ` KBA"T0)NZ T0(@j 62(Aj 7A4jSBh7B0+jS@h7@.6*4*CJCfn0(rNv0/H|fBA T0(N`Br T0(N0/H|_@fr T0(N`2/I| T0(Nro T0(NBA T0(N0H@W@f,RSRkSkSk K"T0)N>SSSkRkRk` K"T0)N>r T0(NRr T0(N*2/p i| T0(NpBBBA T0(N`M&0H@S@g2IAUAg 4JBWBfv0H@W@fBA T0(Np`2/p i| T0(Np0=@=@ <2+=A=A=A0+=@=@2+=A=A N"T0)rN2/p i| T0(Np0H@U@g 2IAWAfLpS=@=@ N<*oFj `^<* jo Th`J<* Th`"<*oFj `<* jo Th0* j Th@`<* Thj 4 o20apCf rjgz0H@S@gS@gS@g`TSTkUkUk`RSRkSkSkr T0(Nvr T0(Nr T0(NBA T0(N K"T0)N> KBA"T0)NZpjOBL||NuH?>O$otG8ID0*f2*g867j0*jS@7@2*jSA7A K"T0)rNZ` KBA"T0)NZ2*H ЀЁ R/HAt "oif0(|g8( `BD o h . g @N&`BC/j@ /@r||o|2/@IA|?A JAot ohgRo roBQAf4/BJ|_Bf T hlr`BA?A T:(4* @62* @7A4* j@SB7B2* j@SA7A0*4*@?@J@f$"/@¼f0(rNv0/g ~pEG|E`>/BO||oBJGfBA T0(N`2|fr T0(N`r T0(N2 T0(N2 T0(NBA T0(N K"T0)N>JCor`>+oRG`>koGRG4 W20a|>/Bp o| KBA"T0)NZpjODL|NuH08O$o$GID0*f2*g867j0*jS@7@2*jSA7A K"T0)rNZ` KBA"T0)NZ6 7j 0jS@7@2+jSA7A.6*0*CJCf T0(rNv0H@|J@g|@g`6r T0(N`r T0(N2IA| T0(N`2r T0(Nr0H@|HA p"T0)N~ro T0(N0H@| gr`BA T0(N K"T0)N>pCfrjgFr T0(Nvr T0(Nr T0(NBA T0(N K"T0)N> KBA"T0)NZpjO L NuH<8O$o,GID0*f2*g867j0*jS@7@2*jSA7A K"T0)rNZ` KBA"T0)NZ.0*jfr T0(Nv0*@2*A T4(B6(C8* 7D68* 7D7DBD:ME|gx:M|||b^E:;PNP 08@HS`Sk`8S`"SzjDk`$kS`Sk`Sk` S:*Ck:M||pM|bE:;PNP0>PVl|k` zjDkzjDk`ZzjDk`8zjDkk`:k` 0*Bk0*Ck`0*Bkk`0*BkkJDgr T0(N*`r T0(N*2IA| T0(NR4JB|B2IA|0A T0(N`ro T0(Np Kr"T0)N KBA"T0)NZpjO L2* ?A?A?A0* jS@?@?@2* jSA?A?A A"T0)rN KBA"T0)NZpjOLNuH?>O$o^2*H ЀЁ*R*m &m KN&0* jS@?@2*f,4*f& yD?h&?h (?h *0( h?@,`?j&?j(?j*?j,po&o*po(o,0/,oo?o,0/,o(m@A&r"yD0)NZ:* /j r yD0(Nv"/ p| yD0(NBA yD0(N./ |?2 yD0(N0/ |?@J@f yD?hIHoHo"L L2/*yD0-NPO"/ p| yD0(NMHVHTHo$"L L*yD0-NˆO 0oo?j ?jrGg4*ooRERoUoToTo0/nn>"/ t|?AJAgSAgSAgDSAgl`0.o`^pjnorGgUo"L Ltr*yD0-N `D0*nn@o"L Ltr*yD0-N `"L LtBA*yD0-N 0/n?|0H?@|o?| om*I>/Gl>p| KN:,HKp gdn8g< gSMSD  g -gJDnJDo.  gf<`|D0H"K LNB4`pD@`<0H"K LNB4pǖG<`",JFo0H"K LNB4`pF@gF of&Bgr??/ L4"yD0)2/ N\O` L42/"yD0)N.oJCoomA&BA"yD0)NZpjO.L|NuH0$H6&I j 2|,|bA2;N4Tt0H"¼t$(ļ!A`0H"¼$(ļ!A`0Hr€t$(ļ!A`~0Hr?€$(ļ!A`` (?@!@`J (?!@`4 (?!@`$ (?!@`"K0 JNX`pL NuH8>O$o8GID0*f2*g867j0*jS@7@2*jSA7A K"T0)rNZ` KBA"T0)NZ0*2*@f0*H$ԂԀ R h *hrj 6tj 7B0* j7@2* j7A T0(rNvBA T0(Nr T0(Npm g& T2(ARAkRSRkSk0(BAN`r T0(N K"T0)N>6* ThCj r0(NBA T0(NHoHoCA,T2.0.NPOr T0(NCAtBA,T0.N BA T0(Npm f T2(ASAktk60(rN K"T0)N>r T0(Npr T0(N*r T0(NRBBBA T0(N`8* j Thph@@AN42"T0)N.p jg>6 2* jRA7A7A4* jRB7B7B7j Kr"T0)N grr T0(Nv8*H TUDJDjBD0H/ UN"d& U.B U4rj "T0)N. W` U4rj "T0)N. KBA"T0)NZpjOL|NuH8$H&I PN%V(KBC`RLRCHAPN: gpCHN%(HJCo 0H"KNB40$j LNug<]fRH |f |fRHNuRH`Nu/ / $H ja&Hf&j` Ka&H [g%K"K JaN&_$_Nu/ $HB%|OaBj $_NuH8$H(I PN&&jBD [g$0H"K RNJ@f30g<|f8`RDp| KN:&H f8`RK`LNu// $HvQ%|O` Ja20SCJ@n$_&NuH8YO(I$h &j2|gn|b:A2;N.,| g|gSAgSAg`pN%&H gBrB@N * g @N<'H`AON<'H +g%K Ka`8` jN%`"L Ka` L'P'h7h`(`zBk . glrk gk r0+ W"W"ifNBk `H"L Ka`>"L KaN`4 kN% LN<'H fZAON<'H`FB@`pXOLNu/ / &o $H2` |fRQ ]f *|gRQRJf$HpQ6` [fRSRJf&_$_NuH>QO/H$I?@,o48>2H$Ԃԁ(HpW8tW9B9|9|9| )| 9I9I9oBERR<`>2H ЀЁ*oRR V [f4;B;B;| vR`p;@;@;|BC V?j0*jS@?@2*jSA?A`( U>?h 0(h S@?@2( h SA?A0j l> 0/j l?j 6* jSCol?C6* jSCol?C0on 2/ooB@`RAr"U0)NZ8+:+pg~BA?A>tD?BrE?A<* `N>* `:?G?F 0DS@?@ 2ESA?A UHhj"KA(U0,rNXOD0* j@mE0* j@m`B@?@>6*DJCorD?A0@j ?@`pj?@?j 0/o?@ 6*EJCorE?A0@j ?@ `pj?@?j 0/ o?@ UHhj"KAr(U0,NXOABA"U0)NZpjOLO$H&j 2+0+NT(H gz0,HЀ2,HN|&8+ : yDhJEk47h 0H"N|A&"L yD0( KN7D `2+0+NT,H f LNUp`|fp=| A&"N yD0( KNB@?@ ?@?@>rn?A ?Apn?@?@HyT/ "NAr*yD0-NPO`^=| 0H"N|C VN0D@H"N|"/0H"N| VB@"N"L N*yD0-N NNU%Lpf 'L'|B@OL|8NuH8YO(I$h 2|gnSAg"SAgvWAg`| gv|gP`p N%&H g*%@B. "gtĪf"A )f JaR@ff8`` WR%h`R Ja%L`F jN%V Jal`4&L j !k1k`&j(S gr0+ L"lfN`B@`pXOLNuH8I\0,RlJ@fEDA"R"i<0 "R0) "i$HBgBgBBBA0*"NXO6|lJ@j^GZ8IpS|6H*t2g8$ g4pmTf, MNp M,mNBgBgBBBA0*"NXO6`SfJCk |n0`A"pNfpL|Nu/ B@CA̐2io BPJ@g`R@2I$qRP" g J$_NuH<8(HE6*`0H&r" g "L K*k0NSCJCjL<NuH8E6*`R0H&r" gDt kVg<kV4+ k$kV K"kNpkVgC$ K(kN`kVN&&H <N%$H <"KN *g @N8%H gfN j^Nr0?A?ANFp yD"hr0?A?A?**?*(?*&?*$?/4/2/ 0/ NO 0N0NJCk0HABPOLNuH8$HjV"yD@fBiFvd` J"jrN0* k2SCJAnJCn JaG\0*Xk"gCX A(A(lpeN j^N9 jN9 jZN: jJN89h9h9h0+jDf 2+jFgjV7jD7jF`$01l1l1lpjTg2 yD8 yD9h  yD9h  yD9h`0*H|2*HA4FBkk0F@kkHlHl?+?+BgC"A"2*"B@4NO0l yD2(h Ao8.^ g @4(H"ҁ҂20l0,l yD2( hAo9h 5kD5kF0+f2+gjVBkBk jVpjTg JN JN?,?,?,?r0* NBPOpjVgPr@ yD"h?|?PBo?j ?T ?l?l?lA&yD0rNNpjVgjVC$ J&jjNNFOLNu/ / O$H0* ojVG$67i7i7i0*gjVpjTg JN JN?+?+?+?r0* NBPOpjVgLr@ yD"h?PBo?j ?S?k ?k ?kA&yD0rNNpjVgjVC$ J&jjNNFO&_$_Nu/ $H0* o@jV5Q$5i&5i(5i*N?**?*(?*&?*$r0* NBPO$_NuH>O$H?j &j(j^0*H|?@2*HA>F@k4/kFAk0kBF$ g0,H"ҁҀ<4>*$8*&6*(:**Ho Ho0+F??+BgCABB2*"B@NOo l0`0/ 6o l2`2/ :KD Uh l0` U0( 6 Uhl2` U2(: Uhl0(`06 Uhl2(`2:M0.o?@2nCAl4`4nC>0.nE@l2` 2.nE8Vl0`0>nl2.`28 U0(h hS@Gl> U0( hhFDl8Ho Ho???CA42*"pNOo 0/o2/oWSAWoF?Ao 4o & g0:,H(؄؅H 2/ Uh9A8/FSD9D5o45o65o 85o :0+o o?@2+D@@l7@:+o W0+2DAAl7AHj*Hj(0/F??/2/F?C&A$4/2*"B@NO0*"|gr jTfBC4/o 8+H 눐ЄD2HN&jg5C>0/oBgBgBg?r NBPO2/ H 눐Ё2+HN&jBg5CB0/oBgBgBg?rNBPOOL|NuH8QO$H0*(yo`09?@GD0*"|g S2(o0*H|o?o(j:,BFJEo4H"ҁ҂>4804?@>`0<4H"ҁ҂tf\6toolg0D@80oWBF2H ЀЁ爼tl<42H ЀЁ99oo?C8G2H ЀЁ:4JEnzW9ovj*pj"g Shpj"g Sh0*"| g Sh *^g @4(H"ҁ҂牖p0*H|C@d`09@jVPOLNu/ $H2UAg` Jap`B@$_Nu/ / &HE g0 yD2(6f4(8g RNb`N& RNbN>$&_$_NuH8(HED R0(6f 2(8fN&B LpNXO(@GJk ACS3g LNb R0(6f 2(8fN>p`D", ҬҬҼ LB@NL R0(6f 2(8fN>(k'R'|̒ NB@LNuPmhm4hBl 0(h@mB@NupNu/ HyC&AwN# XO$H gNJ@gApNf$_NuH,YOIHWHoHoHTr B@NO0N*HNgV gRrmTgtm"f f$M`g6N`pmTf yD"h<")4g M"mrN` p M$mNXOL4Nu/ / &HED R0(6g2(8g4(:f hN` KN&_$_Nu yD hNNu yD hXNNuH8&H"yD0)Fgb$i@g(j Jp N`L yDBhH`62H ЀЁ(kI lf K0N$l p J(jNN6jLNu/ / yD2(`H ЀЁ h\A$h &j JpN&_$_Nu yD hXNNuAޞN NuH>&HK yD0(FfA(N ` yD$h@gp(j JN`f yDBhH`P2H ЀЁ(kI J0N0,S@g S@gS@g` (l p L,lN`a`` MN N6jL|NuH$H6J@kH"ҁҀ&jI*l ,mZ)N$g"N k p"N0<n 9@ ` p""yt k N k !mJBl 0+| f k "k "0 JNIL|Nu/ yD$hX"R ig3| JN0* k JB@NI$_Nu?/ Evjjjjj yD"h<6)pCgjpCgjpCgjpCgjpCgjp@Cgj JN | fXBCpjg|pjg|pjg|pjg|pjg|pjg|@ yD"h<3C$_6NuH0B@AN&Jo.A&"<0N0N yD"h<3yE&j^؞fH6+H$Ԃԃ43(H"ҁ҂23H ЀЁ634H ЀЂ7' JN>&H g$p N%& gC8p N KarJ@g` KL NuHO yD&hX@f(k6(F0HЀЀN%*H g2HҁM?|P?|0BC"yD3CH` 2H ЀЁ4HԂ;(=(RCN8j yD2(Llk4HPHAhPXA?A 4(Nlk6H…0HBhR?B BC1CH`0HЀ25o ?A>6o |z`,2H ЀЁ>?tA0/2a~J@g:`TFp 4H"ҁ҂t gJEon SBh2H ЀЁ<4>H$Ԃԇ9(>49( kp( K0NI2H ЀЁ kp99 K0NIRCN8j" MN% yDBhJOLxNu/ yD"hX Q$P gN$_Nu/ Nx$H f Nx$H g0* nrjTf JN $_NuH8$H6J@kH"ҁҀ&jIk?k k $,g "B k p"N0< lh 9@ `$p""yt k N l "k #hJBl p l hTgk2+ 0 J"jfNLNu yD hXNNuH<$HID T0(Fn !JXa`` T&h@gp *k KN`H TBhH`62H ЀЁ(jI lf J0N&l K"k NJ@f N6jL<Nu/ yD2(`H ЀЁ h\A$h JN $_NuH8$H(I&j g6+2JCo4+H"ҁ҂77C4H"ҁ҂ sf2|7I47I2`2H ЀЁ7s22H ЀЁBssA1| @!|F!L !lZ9CX J0a`9|XLNuH8&H$I6JCk(k2H ЀЁt0NI8,`2H ЀЁ842H ЀЁ父tf0H$ԂԀ0H"ҁҀ9(24(f9D0,2j9C49C22H ЀЁ9`2H ЀЁ929C2 SBh4LNuH<$H&I yD@fh0Y@gU@g`@ yDBhHBk`$2H ЀЁ(jI lf7|`ZN6j`N2H ЀЁ(jI*l `& yD*h@0Y@gU@g `Cp M$mN`Cp M$mNL<NuH8&H$II2|fgn6| gnUAg_AgFSAg`ޒ|gƒ|UgxSAg~`ƒ|g|bA2;Nv8@H"J Ka` J9h)h 9h9h`|)J`t)J`l)J`d KN`Z"J Ka`P"J Ka`F0 Ka`<0 Ka`20 Ka`("R KN` Ka*` Ka` Ka `B@`pLNu/ $H P f jh` jh j2(p"jf JN$_NuH0$h&P6+ 8+ kfrC0HAHX@5@ppC4J@JXB5BtD2ABI5A5ArBE<>*`@0HEHX@4H"ҁ҂50@FH5REEfBERF2H ЀЁ>2JGf>*2`@0HEHX@4H"ҁ҂50@FH5REEfBERF2H ЀЁ>2|n` kfrC0HAHX@5@5@pvD4BCJ5BrrD0@AH5@BE<>*`@0HEHX@4H"ҁ҂56CFK5RFFfBFRE2H ЀЁ>2JGf>*2`@0HEHX@4H"ҁ҂56CFK5RFFfBFRE2H ЀЁ>2|nL NuH<$H"yD0)6g2):g&j$ g kf(k ,g *@ KpN KN%B RN% JNVpAN&Jo8 yD"h<3A&"<0Nr0N` JNL<Nu/ yD$hX"R ig3| Ja`0* k JB@NI$_NuA(p"@ "ByA1B33O"Nu/ Hz?<&NN\O$_Nu JgJgJgJgJg JgJgJfSHggggg ggf @NugfSHNuJgNug fC`Jg INuSHNu g<g8g4g0g,g(g$g ggggg ggf @Nu"HJgJgJgJgJg JgJgJf SNu"Jg JgJgJfSHSefB ANuSeg gb pNuJfpNupNu"SefBJgSf ANu/ / g($Ig"f&Hggg"J K`A&_$_Nu`"CB@f ANuH &/?<HNA\OJf 9g @ NJ@fp @LNuH0&gPR<e a g!CC "A`rG&S f. < a gj&@Ap !|'H&#A"P` )d I"Q f`rd ` #@#C"nAL Nuk |`3 â`/ oLQ d nf@axJg*`6C g,g"@ f` "/?<INA\OJj`p$_Nugp`/ &y g/ &S?<INA\O`&y g/ &S?<INA\O`&_NuH8$<CG g" c &@ f`(@ ,gb*"Ҩeg ` )H`p"@")Ө )H`>"@ gb" ҩeg`N"(ө`" "H" ҩf @"(ө" l eb&/ ?<INA\OJfQLNuP`Jg/bg2 4gf!Sf`f`!Sg"gH?LxH?LxH?LxH?Lx`H?Lx8H?LxH?LxH?LxH?LxH?LxpH?LxHH?Lx H?LH?SfvLx2|HgS@!!Q|gSA!Q`2 4gfSf`f`S"gH?LxHxLxHx(LxHxPLxHxxLxHxLxHxLxHxLxHxLxHx@LxHxhLxHxLxHxLHSfxLx2|HgS@ Q|gSAQ _Nu/$gSe40HB4 gxH_>"&(*,."B$B&B(B*B,BH~H~H~H~H~H~H~H~H~H~H~H~H~H~H~H~H~H~H~H`SfL||0HgS@!Q|gSAQ _Nu  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~$jD BJjD$HBJBf"$HBJBf $jDNuHBЂ$jDNuHBЂ$jDNu$jD"BJjD$HBJBf4$HBJBfH@B@H@$ jDNuB@H@HB0@0H@0H@$ jDNu AH@r2B@tЀӁd҈рӁQF@$ jDNuHR???<NM\O$_NuHR/HP??<JNAO $_NuHRHP?<INA\O$_NuH>@NAO $_NuH>?NAO $_NuHR??<>NAXO$_NuHR?<NATO$_NuHR//HQHP??<KNAO$_NuHR?HP?<=NAPO$_NuHR?HP?<C#H 222"2"<*`HQC#H 22 W22"<.a"_2NuC#H 2222"<+`HQ3# "<,a"_2"o2Nu3# "V<dFFPNhR\HRIJ(KMNDpZ7J778 8(89?CEF1/`TUUU |  j<>%s << | gestartet werden?][JA| NEIN ][3][ | Kein Speicher| mehr vorhanden! ][ OK ][2][ Unbekannte GEM-Nachricht | erhalten.| ID = '%s'| Weiterhin berichten?][JA| NEIN ][1][| Modul konnte| nicht geladen | werden][ OK ][3][ Keine freie GEM-Fenster-ID | mehr vorhanden!| Abhilfe: ein offenes| GEM-Fenster schlieen.][ OK ][3][ Kein freier ACS-Fenster-| Einschub mehr vorhanden! | Abhilfe: ein ACS-Fenster| lschen][ OK ]PAPIERKORBOK-------------------- Aktionen ffnen ^O Schlieen ^UPulldown Mens Lschen ^D Beenden ^Q Fenster Nchstes ^W Optionen aus Liste ^LDas Ziehen des Neu-Symboles auf ein anderes Objekt erzeugt ein neues Objekt. Ein Doppelklick darauf erzeugt ein weiteres Fenster der Applikation.NEUInformationGenerischer DESKTOP des ACS 2.00 von Stefan BachertVerhaltenObjekte werden durch Ziehen auf den Papierkorb gelschtVerstecke ZeigerGrows/ShrinksFehler akustischZentriere DialogSmart RedrawAbbruch Info... ^I Vertikal ^T Modul laden.. ^M Horizontal ^Z ber mich... Verhalten... ^BModul nachladen/q oq f)Xf)xXf!Xf)xXf)!xXf !Xf)xXYXѱYXYXYXYXYX9t:x@yt:x@Йt:x@;a,`pppppp1p1p1p1p1p1p1p1p1p1ppppppppX+ 0 Hc@DDDDDDDDDDDDDDDL j   H?UU" W*EU'U>JWU'w''}*UPUT'@'w'UAVwU_gVWUA? 0 HZZ#    f   $P   O          *H@| @W$"!pT"@Њ %,'<)z*@,d"$) A   @҈(  A P 8 @҈   A   @҈   A    @Ҥ  Ӏh Ә Ӱ @ @   '؞PHRJ(<vdKMND|fxx1lH(1pH(|H(a,AMDESKTOP.CFG Jr  4,$ P   $&8 X :bl(D.6:n4  :L^ z  P(4:(TH0&0."$D2V$LL    & 4&( 4D"(H,0(H8<&F8H ",R8*   ($    L|hD<,( F@(2.6Z*:<0,>28, 2^N$@("0   J&8H@*<* "8(6&  $80     L        ,\*  & 0   0 $j.@ T  "4d  8<$,  * B$n@.02 ,<4B ~*2 & . $ 6<0B8t.&    <  . (~"$ J" @BD* :Xj"FD<z<   P"&B^&:D`V26  &BP4F 60RJ0N2&*&BF$&Bn$&B R>"t        "  4T",  & B`, ,F"& z &z *z(:2 l@&  2   jZP 82 "2,   *H(64V , ,>  F ,P0  @ X,P  B$J 4$ 2 X>N>  \:  6*R@" "<" "   < & *4$  ",2  $2 0"pZ&^F .$XV   H $"&, ( L > X"T4&B>@<   *D.R,<*L "X($*,j$$&$$ 4D  . .0 $ H6$ >864 HRRR20 H            nH0 $ $ $ $ < $ < $ $ $ <0H0H0H0(:$P   $H (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (number: 0; form: NIL), (n`:H*J``e >>>> PURE-C <<<< for ATARI-ST Version 1.0 (C)88-90 Borland International &H f&op`B@#d3d k #e Ј<.@#dJydg<"@(I$k,"Jf"JfB// ?<?<JNAO A<~kRrRAfA6<HCBB`6 !jBJ)gHiRC` "fSI "WSAkHiRCBSQJ)gHiRCHy`$ON0 J"LN ? 9:Jg @N 9:Ng @NN'?<LNA/ $H PN+` JN$_NuH6O yu$hX,RB@AN0X&KFPJjApN4`,jM`0< NNTG "K0< NNTB`4 o Mr0N/C0< NNT /o o"0N/R mAr0N/,jM0< NNT"K0< NNTB`4 o Mr0N/C0< NNT /o o"0N/R m0N0 JaOLlNu yu hXaNuH8 yu"hX$Q&R2(`H ЀЁ(h\gn K0<ՓNT0< KNTCFL0< KNT0< KNT0< LNTCFN0< LNT0< LNT$`NlLNuH>O$H&I(o,BB@N0F&Jkt2pN/(BB2pN/pЄN+$H g"0N/g JN*0N0`^B2HB2H0N0.AH/HB@ JN#h*H`Rp JN#h,H g2B"J K0<NT . fE`E0< KNT`"J0< KNT`cfp KNTC0< KNT0< KNT0< KNTE`Rp JN#h,H g2B"J L0<NT . fE`E0< LNT`"J0< LNT` dfp LNTC0< LNT0< LNT0< LNT WN*O L|Nu/ $H2UAg` Ja$p`B@$_Nu/ $P RNd$_NuH8OHyFXCeA:N(XO$H g( <N+/H #EADN(H f`( "J o XHN#.&lG` o /K?|Cp KNT0< KNTCFN0< KNT0< KNT0< KNTCFT0< KNT lA/H?|C0< KNT lA/H?|C0< KNT&lG/K?| Cp KNT0< KNTCFL0< KNT0< KNT0< KNTCFT0< KNT lAh/H?|C0< KNT lA8/H?| C0< KNT lHh"HC` Ja$XO L"l N LOLNu/ / EB"Jpi&ybNCpj&ybNCpk&ybNB@&_$_Nu/ / Nr$H fp`CDph J&jNB@&_$_Nu x (( hl0(A`,H|fA<  @#e#e d#e/|B yeN ye e yeN!e|NuH"ye ye eJxg?/Hy@N ye dLNsHy/<!NMP#eNu/9e/<!NMPNuH0QO8:6Eu Rh o`GepCg Sg062< R0(N7` SUUg6UU2?E?C?CAr"R0)N6POL 8NuH0QO8:6Eu RhodGe0@|g Sg062< R0(N7` SUUg6UU2Ar"R0)N6POL 8NuH6YO yu"h@&iBCKEe`*|l00HЀ yu"hT81HW"M K0N4XO yu"h@0)4U2)6W0H$ԂԀ s(f23(|g s( ,P`2H ЀЁ,s 0n2I54n50nnS@54nnSB5 0n54n50nn S@5 5`H0H5520H$ԂԀs(SA4J5 24H ЀЂsSA0H5BrRC yuhFmXOLlNuH(O?@?AEur R0(N7r R0(N7BBBA R0(N7r R0(N7 R>?h 0(h S@?@2( hSA?AA"R0)rN60<N2IeBC9C`8|l:0H tf:/t/t8/t2/t ?A Rh l~h Rh lxh 42/ 0ar420ah42/0/ aZ4/ 2/0aL42/ 0a420a4/ 20a4/2/ 0a`Z:/0Ht/t8/t Rh l~h 420a420a420aL420aBRC RhFm‘0<N2ABA"R0)N6BlOLNu yuBhHNuAu"P0)HiFmpNu"P0)HRiHHЀ"P"iT01NuH0UO$H6Gu S@g N S!J@p4H"ҁ҂ jp fN"S0)DiFoBr0H$ԂԀ犂p( "jf J0N S0(FRhFHЀ S"hT3>Cp J&jNTOL NuHCp J*jN` SCTLJCn\TOL<NuH0Eu R&h@0(FoPBC`40HЀ R"hT81RC4H ЀЂ k20 |"kf K0N RhFmBhFp K$kNL NuH8$H6:8(IH$ԂԀ&jk0kS@lmplnhk0kS@QmXlnR2<kfHtk f@0+| g0a`.<+JFo&"L420 Jaz2H ЀЁ j<0FfLxNuH8O86N4:NT$H gGup Shffa S h?l0lS@?@2,lSA?AC4*62*4 JB@az S h2H ЀЁ82DfJGk0`0LNuH?|?h0(h S@?@?h 2( h SA?A 2|?I ?I?I?I?I?I?I?IC$k KpNaB&0/VHH@?@ 2/THHA?A?oV:K8:T yu>(fpGg|G0@?w 4/H"ҁ҂ҁ yu h/2pGg|G0@2/w g(?w 4/H"ҁ҂ҁ yu h?j ?j ?jNr*H0| |(b4@0;NR(((((((((dr~6666(((((( ((((((((2*0*N5`C K(kjN` K"knN`pkTg K"krN`p K(kN` K"kvN`0* K"kzN`z0* K"k~N`j0* K"kN`\C K(kN`PC K(kN`Dp K(kN`6aT yu1|~`$ g MN` MaF` J"yu"iNNLhPOL<NuHaEu R2(d0(bN46NT&H g"R8)dk6JDj(r iO.|g Aav`SCJCnO$_&NuHO.6r@g U)f Ja`pN4pCg Ma`pCg20apCg S hfg0/aP SHhfHT"HCdAbN2PO0frCga$alN+N^ S!JX S hNB@N4N S0(6g29F\f S0(~gaN=$OL<Nu/ OCJoEpQ yJgVE$0r `|w4B|w 0@|wrPwB*"JAPN!$3JO$_NuN yu0(6f2(~gNNupN&NuAI"N%NuNuB@Nu/ / Eu&R7@&R'H&R'IN8DJ@fNN;B@`N;p&_$_Nu/ Eu$wCJ RAN# R!|2 R1|6 RBh8 RBh: R!|ET< RBh~ R!|t R1|D R!|uT RBh RB RB R!| R!| R!| R!|  R!| R!| R!| R1| R$_NuH06&H$Ia$"J K0aL NuNuPmhm4hBl 0(h@mB@NupNuH8O&H(IE` %f +sfTK`fBp"L JN$"K JN# ApN4OLNuH QO68 yu$h\"JANB|g2H ЀЁ爸r f ?/?/?/4/r0 JN3\O`&p???/ ?/ ?/ 4/ r J0N3O POLNu/ $I?*?*?*4rB@ yu h\N3\O$_NuH>O$H(IGu S!J\K 0nr JB@NKt:`:BT0nBUvM `D0g2@g8BUt"NBA JN3HWHo SHhfHoHhdBgBgBgBgBgBgBgBgBgBgBgBgp?"HCb4rpN1>O.8r@gBD2/ S0(f JNJJ@k:"Mr JN16`p Shfg2/A|f"J hXNUJ@fHo"M4/20 JN2XO6r 0H$ԂԀr(g0Uo:0/J@g|K4g|gF`ft"NBA0 JN32H ЀЁ r /P"oBt"NBA0 JN3 o`4t"NBA0 JN3t"NBA0 JN3`t"N2/0 JN3pDg S?(d4(br JB@N3TO:R@fhBU WfBC`l:* p S"h$_NuHO,H$I(oHNAN=6 Jp\N#|&Hg" f8N0<A|:B@AN0jCJ JN# p\ JN#|&HCJAN#"L KN# KB yu"h0|g| g|g`Ho&"M JN5.XO8`/Ho*"M JN5 PO8JDgv0/&gngj *:fb MN#r f -.f "L MN# p. MN#h fCJ MN# "L MN# p\ JN#|&H"MAN#,J`A0N>N. NO(L|Nu0Ql00(il1i0h2iAoh00(h2)iAoh1ANu0h2iAl`0i2(h4)iBl`2)i4Qo`404(io`4)1B2@1I0h1@2(oJ@n B@1@1@Nu/ $H g0"yu2)6f4)8g JN',`N JN',N$_Nu// & yu2(6f4(8g N&f$H`N N&f$HN fAPWpN4` J$_&NuH8$H gBGK$ Sp n <a(H f Ja>`(B& S (R S!LNu/ / EK$` R ( pa R (SJn RB R&P ga$`&_$_NuH8(H$I6H"ҁҀAt hf6rh f.G0+|g $gAu"P#LX"P#J\"P3C` SNLNuH $H:0*H$ԂԀ42(H"ҁ҂620*H"ҁҀ82` 2H ЀЁ622H ЀЁ82Ef0L8NuH0QO&H$I68^f2ANB2H ЀЁJDgj `j C K$kjNPOL NuH6O&H$I6 Ia88r"J K0aHWHo CAN2POp2/@|?@MKzBo 2H ЀЁ?r?r"J M0NB0j4H"ҁ҂牑rBU0-j4H"ҁ҂牑rBm>m yuhh JGo2H ЀЁ爟rU>-m yuh hJGo2H ЀЁ爟rm MND/H?-?-?-4r0 JN3\OpN4HWHoHoHo HoBgBgBgBgBgBgBgp???/.?/2??/2C842pN1>O.>pN4?/4/ r0 JN3TO<@f|Fgؑ0<N20/ g>4H"ҁ҂r p?42 |??.?.?. J0BA4N3O JFkpp4H"ҁ҂r f\"J N0NBp?r0H$ԂԀ犂r( ??.?.?. J0BA4N3O 2H ЀЁr ?| `Bo 0<N2:JFj?/4/ r0* JN3TO<J@kHWHo CAN2POp2/@|?@Fg`4H"ҁ҂ 2 fL"M oNE2H ЀЁ55"J K0BAa60 Ja.8r"J K0a`FgpGg"M oNE2H ЀЁ55NJxJFo6jg0jg*2*H ЀЁ爼rgN=$0"J KaTN=\BA0"J KaO"LlNuH>O,H:IKHWHo"L MN2POp2/@|?@?|Bo 4H"ҁ҂<6JFkn`2H ЀЁ<6Fgp4H"ҁ҂v gغFg@2H ЀЁ462H ЀЁ爕v0H$ԂԀ26(0H$ԂԀ犓v(G0"N KNB0j4H"ҁ҂牑vBS0+j4H"ҁ҂牑vBk0k yuhh ?@J@o4H"ҁ҂牑vS0+k yuh h?@J@o4H"ҁ҂牑vk KND/H ?+?+?+4r0 NN3\OEpN4HWHoHoHo HTBgBgBgBgBgBgBgp??????/0"M42pN1>O.?@ pN4?4r0 NN3TO<og 2/ gh0/H$ԂԀv( 0<N2p?4/H"ҁ҂06 |??*?*?* N0/BA4N3O 0<N2JFkFgp4H"ҁ҂v ft"N J0NB0<N2p?r0H$ԂԀ犂v( ??*?*?* N0BA4N3O 0<N22H ЀЁv ?| `Bo ?F0/ g4H"ҁ҂ 6 fr66C>6JGkd?4C N0rN3TO@fL2H ЀЁv=Bv N0a84H"ҁ҂vJ@kvEg NNL@fdJFjT2H ЀЁ>6`60 NNL6?4r NN3TO8J@k@f2H ЀЁ>6JGjJGoJDj po g8"K o NE0O$L|NuH0O&H$I?@?AAN$ JNA0/j82/j2HoHoC"A$N2PO yu0(@o2(Ao5o5oB@ Jax6NJxJCoN=$0"J KaN=\JCfvAN%60OL NuH068Nr$H&j^N=$|f yu hN` 0"K Ja:N=\r0 KN3jL NuH0QO$H:6&j^$ gf>?k0+j8l`0*8?@?k20AN J@g22+H ЀЁ83?4 K0rN3TO:@l"K JaPOL 8NuH0YO$H6?A&j^$ g KNJ>J@kt4+H"ҁ҂:32H ЀЁ<30+H$ԂԀ>3(680 KNL6J@k,kf`(2H ЀЁ<32H ЀЁ>3Ffp`^GfN=$0* f$BA K0N3j0"K Jar0 KN3j`"r0"K Ja0"K JaBA0"K JapN=\B@XOL NuH $H6*"yu2H ЀЁ5 622H ЀЁ820H$ԂԀ r( N#*JEgRE0 yu:4H"ҁ҂牚rr4H ЀЂr<*0H"ҁҀ<22H ЀЁ82Dg22H ЀЁ<22H ЀЁr0H$ԂԀr(`LxNuH8OEuN1 R0J@k 3K(G RHhHh"K KN2PO R1@ R1@ RHhHh Hh HhrB@N5O R"R3hIHT"RCAK*N6:XO R1l R1l Lr"R0)N8 R1l R hf1|` R hf1|r L"R0)N9n R1l  R1l R1l R1l R1yd6 R"h igp`B@ R1@8 R2(6g"HCAN5^J@g R(HB("RC RAN#p/ RAN#|(H gC RAN#B"RC RAN#p\ RAN#|(H f6"R ):fC RA N# RB(`&"RC RA N#`RL"L RA N#Bp. RAN#|(H g\B`X R hO.J@fO"$_Nu09K@RyK@J@f ByzlN j0N2$_NuSyznf09zlf yKD09KBN2Nu09zlRyzlJ@f 0<N2NuSyzlf0<N2 yKD09KBN2Nu?/ 69znByzn0KB!yKD yu$h j0N2$_NuH>UO(Hv$Hּp JEhg N+&H g"L N(BW$K*J0*|f2* | f*H|| bB4; N T*xxfx j N@*H%H `^ j NAD(H*L%M ,g C,@ JpN Wf6`8 j N@*H%H `" j N@(*H%H ` j NAx*H%H f`p JEhg. KTOL|NuH<$H g&J0+|f2+ | f+H|| bnB4; N N$dBdBZB k NA`@(k ,g K*@pN LNAp`" k NA` k N@` k N@dp KGhg\ JN+`L<Nu/ / &Hp"N+$H g"Kp"N( kNAx%H f` J&_$_Nu/ $H g jNA JN+`$_Nu/ / &HpN+$H f`p"K JN( J&_$_NuN+`Nu/ / &HpN+$H g>"KpN( SNAx$ kNAx%H kNAx%H g "*g$f` J&_$_Nu/ $H g$ jNA jNA RNA JN+`$_Nu/ / &HpN+$H f`p"K JN( J&_$_NuN+`NuH0$Hg,N#&R N+&H f` "J KN( K`AKNL NuKNgN+`Nu?/ $H0* |fj 0*|f JB@N420*|gLQ@g`j j 6(h0(h@l6jo5C6(h0(h @l6jo*5C`$ j 6(Kjo5C0*hl5hp JEhgb$_6NuH8&H$I6H"ҁҀAB@4(|| bB4; N &&N4&& ( rHD@`"h 0)D@`rprhgp2(|@gZp`V"h (QlrfF )r||o|")t|JAo 4(|@gRAth[BfRA4@0`pJ@jB@rh g|lp2(|@g|lpBAt h gJ@o2A`2DAA4(@64(@7B4BhA7B4BhA7B82H ЀЁ62|g"0H$ԂԀ犸r(f82(S82(k`LNuH4O$H0jjBP0*jjBjGu0j Sh J@oj0*j Sh hJ@oj0?j2j|?A4*jSB?B2*0/WR@NZ*H gPBoBo 2/W?A tj?B0<N2/ "SCjAr$S0*N8XO0<N2 MOL,Nu/ / O$H&I f2?+?+?+??+?+4+2pN1O N.`0O*H&I?@ 6E 2H ЀЁI4<lfpl fJCgl@ `l plgvHoHo HoHor B@N5O0- o fNrmVg4-Rg>NLR"Jp M,mN;R;|0-"KAarC MNT$rB@ MNL0,| gDJCgrlgN0"K Ma`pl g M0N `0 MN z`pDlfrlg|tl f K0NL6H"ҁҀ83`>p4H"ҁ҂sgps g23 | M"mf0N2H ЀЁ83Dfrl 0 M"mfN`plgr4, A M"mf0NOL|NuHO.:pN4pEft U:(bj4<(dj620AN J@g(JDfxxr4H ЀЂ爂s J"jf0N`VJDgPBD4H ЀЂ23 | J"jf0N`,0O LO.6pN4pCgTO6Nu/?4v@gt@|B@6(|gZvhfR6( JCgJ8|g8Df:8DB|g*`,f(|g"|g| g| g|Sg |r gS@`v hgp` AR@`8&NuH $H6:JCjBD`2H ЀЁ82JDk0<4H"ҁ҂rg:2H ЀЁ82`62H ЀЁ82JDk2H ЀЁ父rgJDk2H ЀЁ42Eg0`6`tL8NuH $H62H ЀЁ82JDjp`2H ЀЁ父rf0`6`LNu 9KPg r @B@NLNu/ YOHWHoHoHor B@N5O0/o$NT$H g2*otjVf B@rNLXO$_NuH4O$H:6WAftjVgjVBKP&j8*|fpjVf>+k0"KANB7G0k2/koj8l oj:mJEgC JNT$N.2H ЀЁ s *P4*j MN#5@BjV#KP>+?k0*4k0*6k4C20 KN3ʶ|f7G7oO L,NuH>O$H86&j$ gbRAf4H ЀЂ63 I 849j69j89j::* JEkK42H ЀЁ<3 >+>4k4-k0<N2MHnHnHnHVr 0N5O`"L NN*N0.gn0.mJ@jnn0.oTCf??.?.4r K0N3\O`42H ЀЁ7 t???.?.?. K0r4N3O HnHnHnHVr 0N5O0.n`0<N2 j1G j1W2H ЀЁ7 OL|NuH0QO$H6rjVg"yu"i\ANB`0"jANB0*4W2*6oC J&jjNPOL NuH3(4H"ҁ҂ sf67H>+4H"ҁ҂23H ЀЁ2H$Ԃԁ7(?/?/?/4/r0+ KN3\Ooo0/o??/?/4/r LB@N3\OHoHoHo Ho r 0N5O0/n 0<N2 j1D j1EO L`2 <2*@HN.T@>` <2*BHN.T@>?WKI 6+8+0/ |b@0;N 0@P`pJDg0*:k`nDg0*:k`^JDg0/k`NDg0/k`>JCg0*8k`.Cg0*8k`JCg0/k`Cg0/k0+oBkko7E0+oBkko7F0+D@2/DAAD@7@4+DB0/D@@DB7BSof JNb?W20 JNWHTHU"L LN2POpUf0/Wg JNbOL8+:*8<*:2jkp2)jkpil5i8pil5i:p2ij8JAokp2)ij:JAokpJ@g(j^ g4,H"ҁ҂64`BCHj*Hj(0*:C??*82*6C?C&A$4*42*"B@N4HO0+D@2*H|AD@7@2+DA4*HBBDA7A JNb0+Wfkf j8fj:g>jV?**?*(?*&?*$r0* N5PON.pjVg C$ J&jjNTOLxNuH0&H$Irp INKt62<@ JNKt8J@j2<@ JpNKt8JDoRCgNJCk2H ЀЁr2H ЀЁr K0a*4H ЀЂ22 K"kf0Np`B@L NuHO$H6* JCk8"ji:iG0<jTfxj8lp2*8DAAofj:l`4*:DBBoVHkHkHkHS0r N5O0+gj2+gbHoHoHo Ho 0r N5O0/f2/gC4 J(jjN`(Iu"TPI KN*NC4 KN*N0+g2+gK0;@:2+;A ;A0kS@;@ ;@2+kSA;A;AJDg(JDoUm pm 67D`mm0D@7@JEg,JEommpm7@7E`mm 0D@7@0mnP2-mnF M"T0)BAN60<N2 THhj"HCj Mr,T0.N8XO0<N2"K J(jjNO L|8Nu09KTRyKTJ@fBN0#zpN:$A"P3zx3zt3zv3zz3z|NuH6:x@D0 yuHЀ2HN.^мN+ g0C 1C1E1DBh "yu1i BA1A1A1AL8NuN*NuNu/ / $HGKV0+fa N=N0#z~#z!|Zp"| RN0|A0*@ "P3@"y3@"P3j"P3jpj"P3@7@rj"P3A7A K"yu0)rN6&_$_Nu/ / EzxA0"y3@"P3@"P3j"P3jGKV0*"P3@7@2*"P3A7Ap"| jN0| j!j  Kr"yu0)N6N=&_$_NuH|lgn`|dgn4|gn|gW@gv|gt`z|ag\S@gXS@gT`h|e|b^@0;N>>>>>>>|m| b<@0;N `` `RH`HNuH>O><$H?BIK^0<ogNx",fHx"| |N0XO)P ,g2/| @0`B<amJ<znD`/BD<am <znv`(<Am<Znxv `Jo< l x<`<@H JN#h&HH JN#h g"gd&HKu ggB+BA U0(N7C J,U0.N9:/WTBg8 J42"U0)N92 U0(N7C J,U0.N96/W`2 U0(N7BC|fSC L42C"U0)N9BA U0(N7+g * g @NAx%H * fdAKNAx%H `R K%P0(H%@`@ j NA`4 j NA KNAx%H `&j gr0* K"kfN`B@`p&_$_NuH8Gj `:*?j>* 8* ofԺ|fpjgrªgGGT`GH`pgGG`GHbB@?@ ?@ ?|?| ?j pD?@rj ?At D?B#KdHyK| THhjCKdA*T0-rN8PO#KdHyKx THhjCKdAr&T0+N8PO`BvEC|lv|oF|l|0@@2/AA4/g zjfr T0(N7BA T0(N8Hr T0(N8:r T0(N8V??42 T0(N6XOpg^r T0(N7r T0(N7r T0(N8BBBA T0(N7?<BgpF?rC?4 T0(2N6POpjgHr T0(N7r T0(N8HBA T0(N8:pF?rC?4 T0(2N6XOABA"T0)N6pjO&L>O$onG:Iu0*f2*g867j0*jS@7@2*jSA7A K"T0)rN6` KBA"T0)N6 T0(@j 62(Aj 7A4jSBh7B0+jS@h7@.6*4*CJCfn0(rN70/H|fBA T0(N8H`Br T0(N8H0/H|_@fr T0(N8,`2/I| T0(N8,ro T0(N8VBA T0(N8:0H@W@f,RSRkSkSk K"T0)N6SSSkRkRk` K"T0)N6r T0(N7r T0(N72/p i| T0(N8BBBA T0(N7M&0H@S@g2IAUAg 4JBWBfv0H@W@fBA T0(N8`2/p i| T0(N80=@=@ <2+=A=A=A0+=@=@2+=A=A N"T0)rN62/p i| T0(N80H@U@g 2IAWAfLpS=@=@ N<*oFj `^<* jo Th`J<* Th`"<*oFj `<* jo Th0* j Th@`<* Thj 4 o20apCf rjgz0H@S@gS@gS@g`TSTkUkUk`RSRkSkSkr T0(N7r T0(N8Hr T0(N8VBA T0(N8: K"T0)N6 KBA"T0)N6pjOBL||NuH?>O$otG8Iu0*f2*g867j0*jS@7@2*jSA7A K"T0)rN6` KBA"T0)N62*H ЀЁ R/HAt "oif0(|g8( `BD o h . g @N#&`BC/j@ /@r||o|2/@IA|?A JAot ohgRo roBQAf4/BJ|_Bf T hlr`BA?A T:(4* @62* @7A4* j@SB7B2* j@SA7A0*4*@?@J@f$"/@¼f0(rN70/g ~pEG|E`>/BO||oBJGfBA T0(N8H`2|fr T0(N8H`r T0(N8H2 T0(N8,2 T0(N8VBA T0(N8: K"T0)N6JCor`>+oRG`>koGRG4 W20a|>/Bp o|PVl|k` zjDkzjDk`ZzjDk`8zjDkk`:k` 0*Bk0*Ck`0*Bkk`0*BkkJDgr T0(N7`r T0(N72IA| T0(N74JB|B2IA|0A T0(N7ro T0(N8 Kr"T0)N6 KBA"T0)N6pjO L2* ?A?A?A0* jS@?@?@2* jSA?A?A A"T0)rN6 KBA"T0)N6pjOLNuH?>O$o^2*H ЀЁ*R*m &m KN#&0* jS@?@2*f,4*f& yu?h&?h (?h *0( h?@,`?j&?j(?j*?j,po&o*po(o,0/,oo?o,0/,o(m@A&r"yu0)N6:* /j r yu0(N7"/ p| yu0(N7rBA yu0(N7"./ |?2 yu0(N70/ |?@J@f yu?hIHoHo"L L2/*yu0-N70PO"/ p| yu0(N7MHVHTHo$"L L*yu0-N9.O 0oo?j ?jrGg4*ooRERoUoToTo0/nn>"/ t|?AJAgSAgSAgDSAgl`0.o`^pjnorGgUo"L Ltr*yu0-N7`D0*nn@o"L Ltr*yu0-N7`"L LtBA*yu0-N70/n?|0H?@|o?| om*Iz>/Gl>p| KN#h,HKp gdn8g< gSMSD  g -gJDnJDo.  gf<`|D0H"K LN$HB4`pD@`<0H"K LN$HB4pǖG<`",JFo0H"K LN$HB4`pF@gF of&Bgr??/ L4"yu0)2/ N9\O` L42/"yu0)N9oJCoomA&BA"yu0)N6pjO.L|NuH0$H6&I j 2|,|bA2;N4Tt0H"¼t$(ļ!A`0H"¼$(ļ!A`0Hr€t$(ļ!A`~0Hr?€$(ļ!A`` (?@!@`J (?!@`4 (?!@`$ (?!@`"K0 JN^j`pL NuH8>O$o8GIu0*f2*g867j0*jS@7@2*jSA7A K"T0)rN6` KBA"T0)N60*2*@f0*H$ԂԀ R h *hrj 6tj 7B0* j7@2* j7A T0(rN7BA T0(N8Hr T0(N8Vpm g& T2(ARAkRSRkSk0(BAN8:`r T0(N8: K"T0)N66* ThCj r0(N7rBA T0(N7"HoHoCA,T2.0.N70POr T0(N7CAtBA,T0.N7BA T0(N7pm f T2(ASAktk60(rN8H K"T0)N6r T0(N8r T0(N7r T0(N7BBBA T0(N78* j Thph@@AL42"T0)N9p jg>6 2* jRA7A7A4* jRB7B7B7j Kr"T0)N6 grr T0(N78*H TUDJDjBD0H/ UN#"d& U.B U4rj "T0)N9 W` U4rj "T0)N9 KBA"T0)N6pjOL|NuH8$H&I PN*(KBC`RLRCHALN#h gpCHN+(HJCo 0H"KN$HB40$j LNug<]fRH |f |fRHNuRH`Nu/ / $H ja&Hf&j` Ka&H [g%K"K JaN&_$_Nu/ $HB%|LaBj $_NuH8$H(I PN#&&jBD [g$0H"K RN$*J@f30g<|f8`RDp| KN#h&H f8`RK`LNu// $HvQ%|L` Ja20SCJ@n$_&NuH8YO(I$h &j2|gn|b:A2;N.,| g|gSAgSAg`pN+&H gBrB@N*v * g @NAx'H`ALNAx'H +g%K Ka`8` jN+``"L Ka` L'P'h7h`(`zBk . glrk gk r0+ W"W"ifNBk `H"L Ka`>"L KaN`4 kN+` LNAx'H fZALNAx'H`FB@`pXOLNu/ / &o $H2` |fRQ ]f *|gRQRJf$HpQ6` [fRSRJf&_$_NuH>QO/H$I?@,o48>2H$Ԃԁ(HpW8tW9B9|9|9| )| 9I9I9oBERR<`>2H ЀЁ*oRR V [f4;B;B;| vR`p;@;@;|BC V?j0*jS@?@2*jSA?A`( U>?h 0(h S@?@2( h SA?A0j l> 0/j l?j 6* jSCol?C6* jSCol?C0on 2/ooB@`RAr"U0)N68+:+pg~BA?A>tD?BrE?A<* `N>* `:?G?F 0DS@?@ 2ESA?A UHhj"KA(U0,rN8XOD0* j@mE0* j@m`B@?@>6*DJCorD?A0@j ?@`pj?@?j 0/o?@ 6*EJCorE?A0@j ?@ `pj?@?j 0/ o?@ UHhj"KAr(U0,N8XOABA"U0)N6pjOLO$H&j 2+0+NZ(H gz0,HЀ2,HN.^&8+ : yuhJEk47h 0H"N.^A&"L yu0( KN8d7D `2+0+NZ,H f LNZ~p`|fp=| A&"N yu0( KN8dB@?@ ?@?@>rn?A ?Apn?@?@HyL/ "NAr*yu0-N8PO`^=| 0H"N.^C VN(0D@H"N.^"/0H"N.^ VB@"N*v"L N*yu0-N8d NNZ~%Lpf 'L'|B@OL|8NuH8YO(I$h 2|gnSAg"SAgvWAg`| gv|gP`p N+&H g*%@B. "gtĪf"A )f JaR@ff8`` WR%h`R Ja%L`F jN* Jal`4&L j !k1k`&j(S gr0+ L"lfN`B@`pXOLNuH8IL0,RlJ@fEuA"R"i<0 "R0) "i$HBgBgBBBA0*"N4XO6|lJ@j^GL8I{pS|6H*t2g8$ g4pmTf, MNp M,mNBgBgBBBA0*"N4XO6`SfJCk |n0`AQpN4pL|Nu/ B@C}AM2io BPJ@g`R@2I$qRP" g J$_NuH<8(HE}6*`0H&r" g "L K*k0NSCJCjL<NuH8E}6*`R0H&r" gDt kVg<kV4+ k$kV K"kNpkVgC$ K(kN`kVN+SCJCjLNuH&H <N+$H <"KN( *g @N>H%H gfNA *^g0 @N>H%H^ f jN?f`> j^NA j^N7^ *Zg0 @N@(%HZ f jN?f j^N?f JN+`` *Jg @NAx%HJ *Ng @NAx%HN5|V5|X5|BCG}ILKu`t0H"3fhko7C0H'"gtjTg"J A,A,npdN0*$ U5@$2*& U5A&0*( U5@(2** U5A* J`RC|mAQwpN4L|NuH8QO$H0* j$rjVgjV"jNJ@f Ja6J@jp`GL *fAN>H%H5C 0HA{!Ir0?A?ANLRp yu"hr0?A?A?**?*(?*&?*$?/4/2/ 0/ N3O 0N40N4JCk0HA{BPOLNuH8$HjV"yu@fBiFvd` J"jrN0* k2SCJAnJCn JaGL0*Xk"gCX A(A(lpeN j^N?f jN?f jZN@d jJNA jNNAfBNBCG}I`00Hf$BTf0STJ@o 0H"3g JN+``RCToLNu?6( JCoNLRBgBgBgBgr 0N5PO6NuH8O$H&jI$A,pjVg>89h9h9h0+jDf 2+jFgjV7jD7jF`$01l1l1lpjTg2 yu8 yu9h  yu9h  yu9h`0*H|2*HA4FBkk0F@kkHlHl?+?+BgC"A"2*"B@4N4HO0l yu2(h Ao8.^ g @4(H"ҁ҂20l0,l yu2( hAo9h 5kD5kF0+f2+gjVBkBk jVpjTg JNb JNb?,?,?,?r0* N5POpjVgPr@ yu"h?|?PBo?j ?T ?l?l?lA&yu0rN1$N.pjVgjVC$ J&jjNNLhOLNu/ / O$H0* ojVG$67i7i7i0*gjVpjTg JNb JNb?+?+?+?r0* N5POpjVgLr@ yu"h?PBo?j ?S?k ?k ?kA&yu0rN1$N.pjVgjVC$ J&jjNNLhO&_$_Nu/ $H0* o@jV5Q$5i&5i(5i*Nb?**?*(?*&?*$r0* N5PO$_NuH>O$H?j &j(j^0*H|?@2*HA>F@k4/kFAk0kBF$ g0,H"ҁҀ<4>*$8*&6*(:**Ho Ho0+F??+BgCABB2*"B@N4HOo l0`0/ 6o l2`2/ :Ku Uh l0` U0( 6 Uhl2` U2(: Uhl0(`06 Uhl2(`2:M0.o?@2nCAl4`4nC>0.nE@l2` 2.nE8Vl0`0>nl2.`28 U0(h hS@Gl> U0( hhFDl8Ho Ho???CA42*"pN4HOo 0/o2/oWSAWoF?Ao 4o & g0:,H(؄؅H 2/ Uh9A8/FSD9D5o45o65o 85o :0+o o?@2+D@@l7@:+o W0+2DAAl7AHj*Hj(0/F??/2/F?C&A$4/2*"B@N4HO0*"|gr jTfBC4/o 8+H 눐ЄD2HN.&jg5C>0/oBgBgBg?r N5PO2/ H 눐Ё2+HN.&jBg5CB0/oBgBgBg?rN5POOL|NuH8QO$H0*(y{o`09{?@Gu0*"|g S2(o0*H|o?o(j:,BFJEo4H"ҁ҂>4804?@>`0<4H"ҁ҂tf\6toolg0D@80oWBF2H ЀЁ爼tl<42H ЀЁ99oo?C8G2H ЀЁ:4JEnzW9ovj*pj"g Shpj"g Sh0*"| g Sh *^g @4(H"ҁ҂牖p0*H|C@d`09@jVPOLNu/ $H2UAg` Jap`B@$_Nu/ / &HEN g0 yu2(6f4(8g RN/`N RN/N$&_$_NuH8(HEu R0(6f 2(8fNB LpN0,XO(@GJk ACS3g LN/ R0(6f 2(8fNp`D", ҬҬҼ LB@N/ R0(6f 2(8fN(k'R'|M NB@LNuH?>O$oJ2*H ЀЁ R/H*h (m pl&f2(lFf 0(lHg oN$pl&fv`BCpfx`BDK;j;jMu0-f2-g,:;jpUmpmm Mr"V0)N6r V0(N7rr V0(N7BA V0(N7"CAtBA&V0+N7HWHoCA&V2+0+N70POBA V0(N8Hr V0(N8:r V0(N8VG JDg0 V:(E<*hFj RF0* 7@7@rjk`( V:(<*hFj 0* 67@rjkJCf pl&gJDg0* 67@k`0* 7@7@kr V0(N7 K"V0)N6r V0(N7 ,fr V0(N7`BA V0(N7JDg AN4"V2)ASRA0)N9`AN4+2"V0)N9JCf pl&gJDg0* jS@67@S`0* jS@7@7@kr V0(N7 K"V0)N6r V0(N7 ,Ьfr V0(N7`BA V0(N7JDg AN4"V2)ASRA0)N9`AN4+2"V0)N9r V0(N7r V0(N8Hr V0(N8,0,(gJCf rl&gzJDg>* E67G0,(k`>* E7G7G0,(kl.JCf2JDgmn6Uo:`mn(mo;G Mr"V0)N6 K"V0)N60,,gJCf r l&gJDg>* jESG67G0,,S`>* jESG7G7G0,,kl0JCf4JDgUm:ml;G`mm(ml;G Mr"V0)N6 K"V0)N6JDg0* El(67@rl*k`0* El(7@7@rl*kBA V0(N8H K"V0)N6,gr V0(N7BA V0(N7JDg:AN# V2(HN.6>,*@GAtF2G"V0)N9`BAN# V2(HN.6>*@GA4,*"ViBk2G0)N9JCgp oh grj 6tj 7B 6* j7C7C8* j7D7D"V0)rN7r V0(N8BBBA V0(N7r V0(N7r V0(N7 Kr"V0)N6 MBA"V0)N6pjOL|NuH0$H j &h Cupg Q6(8*2(AA:` Q6(8*0(H@: +2HN.^"N.7@*@o :@CSE7C* +2HN.^"Ё"N.7@(2k*@7A,JAk +Ыf 0+,k(Bk,7jF7jHk&L 8NuH8YO.(I$h &j 2| gPn,| bA2;Np&0|fgn.|gn|gSAg`X|dgSAg`F|ggSAgSAgUAg`(pJN+&H gCNpJN(%K `8` KN+``p "LAN$H0+B3`I` L'P<'h@7hD`k@&$k< g"+jB&l'C Wa +4fr`BA? +ft`BB0@gk& +48fr`BA?fp`B@2Agk&0+.k(lk&0+0k,lk &0+2k*gk&0+&|gr@k&fk&r0+D J"jfN7k(.7k,0'k47k*2'C8k&`'T'l"`(`&`'T`7T`'T `'T` + ѫ`v + `j +ѫ`` +`VB`P '@`D +g>"+jB&l'C + k""kN"HAp N$H`"B@`pXOLNu// &E/CN JN XO J$_&NuH0:"h $i Gupg"S6)8(2)AA`"S6)8(0)H@ *2HN.^"N.@o2CAJEjBEEl: 2HN.^2AHЁ2HN.L 8NuH>O yu2(`H ЀЁ&h\/hX/K?h`C Kp a4/k o (h pl&g KaDKM HU"N yu0(` h\N4XOp o gv`BCJCg yu0("hX8)6U2(dD<` yu0(@"hX8)4V2(bDHoHR"M NN2POJCgO oh2(H ЀЁ(P,l &n grkg LN?| pkg rkgBo oh0( ?@?@0( ?@rkJotkHB2(?A?A4(?B?B2ol?o2/ol?or ohhotho2oo?ool?@0/on 2/oo oh0(`I(89o9o9oKu Lr"U0)N66+>+r U0(N8Hp@kf\r U0(N7BA U0(N7"2+ U0(N7rE HRHR"J J2+,U0.N70PO2 U0(N7BA U0(N7"J JtBA,U0.N7BA U0(N8V/k ,+?k  k,.2/k?Ato?B2o9I 9I`0/ooj2/ fff\0/9@ 9@2/kSA9A9A(n$ /o4+|f W$P" g*BD`  f02HHAA@`RDDof:G`zJEkgJEo2HAp N*vM`,< f 82GHHAAD` 2SDJAf`REgomBA4/2/"U0)N9Ժol&0o8ln`8 L"U0)N8tp Whg8rhf 4+|f$0+pfR0g8fF0+|g0f" +@2H2+HN.^o9@8` 0/9@88f\`6 kpf0+|g +@2H2+HN.^o9@8 +D2H2+HN.^oS@9@ 9@0ln UHhj"HCj Lr $U0*N8XO0/9@ 9@`<0/9@8 UHhj"HCj Lr $U0*N8XO`8 L"U0)N8t0+oPRS0/omr0<kg."+0$+ԫ lm8/ f *+ff0+|f"+0 k,.2+B P0a~?@2 W P0a?@r U0(N7r U0(N8V0/G ohh ?@ 2+2kh ?A"4/ kSB?B$6/"kSC?C&4+SBg SBgJSBg`:po&?@"`8r U0(N8:BA U0(N8HA "U0)N6`po ?@$A "U0)N8t LBA"U0)N6p ohhO8L|Nu// (0"(Ҩ S(o"(($ R!BJjB$(&JnJo>Joxl`tl $( ₐ`tԨ "(( Rl Jjp!@&(@"(Ҩ o"( on. (R"( l&Jjvg h!C(&Nu o ( l"(䁓"(j4B`."(Ҩm" (Ѩ ( Jjpl!@NuH0$H&" g&J` [N* SJf JN*L NuH0&H&(RJo N+$H f` J "k,`$XJPI SJfL NuH0$H(&JoN$*(ԁ$m NJ@gp` &j,zڪ(Jo "K"AN(ת(`ZJjV &j,Dzڪ((Jo "C KN("B@$*( j,A(N*v *(jB(B@L 8NuH>O&H/I& ЩS/@$R/@ Jo NJ@f/o /(o /k('@( /R/@"/ K a/H g + kaPBB o*h UN#?@> o2($"k, q(0a?@.` ,k,$V" fEO2/0 Ja<:2 J0al8/@ UN#<.HІ,0H܀pІN+(H g0H"JN$HJDg2Hp APN*v"UAPN#CPAPN# ,=FBnXMRoP'o'okk'Cz'o o ('@~'@'o0/HШ'@'C0'k42+60$"k, q(aH'@@`L,`: ,k, VN*  o,"g AN#R@=@`BnRl oN*OL|NuH>O&H$I"* a/H g + kajBB *R/@8+2*$ k, p(0a?@2*$* k, p(0a>2/@o0?W>.` *k,,U"gl N02/a>62 N0a2<:CHJoH2-H*Jo.pЁN+(H g~0H"NN$HC`A0N#`*;EBmRo|'Rz *'@~'@'@4"*'A'A'j 0/H'@@'o'okk`L*`: *k, UN*  o* g @N#R@;@`BmRn oN*O L|NuH>O$H&Ij Bo jpfp0*|gBB"*8 *0N( f "+ f k"Pg: J"Ka`vpf k"Pf J"Ka`X?|'S'k (*+R"+  Jal/H g( * ja(BBp"+"j,AN(pЄ/@rҫ҄/A JabJ@g oN*`j%Sz%k~%k%k /k pf̰f2/f J N`j *j, o PN#&֫. 0/HހJoVpЇN+(H g&2-o +"UN$H o "P +AN#0/o"+ "W$+A(N# `%D0%C420* LaH%@@*;GBm`Vj *j, o PN#.ޫJo4pЇN+(H g +"UN$H o "P +AN#`*;GBm + o ,p NN#&>/Hރ Jo6pЇN+(H g "NN#0/o"+ "W LN# `|`20* LaH%@@"+$*j,K*;GBm|`@ "*j,$ o ,p( NN#. NNAx(H g>*;GBmRpЫm%C4 ЫS%@0%j0%j4%o%E`j~`B "*j, UN*̺o$  o*"g AN#R@;@`BmRn"/D / Ja oN*jOL|NuH<$H *gN"* *za&H g:&*" *z JaDJ@f 0*|gBB"*8 *0 JN( *z(j,&**j`"( g @N#9@`Bl9|XMPL SJf jN*%K *zR%@%j8%j%j8%j<%j%j<%jz0%j~42*60*$*0 j, p(aH%@@2*>0*$*8 j, p(atH%@D jpg "*08f *4pjg2*nABjn`.JDf*JEf& *fjfjr0 K"kfN`JDfJEg 20 JNj%jL%jPL 8NuHHoHoHo Ho 0r N5O:*\(jX2H ЀЁ爙KHm"M0 LN4XO o0(4U2(6m>-;jJ;jHC MN*N"yuPI MN*NBFJDo&pjg0*hjG2-mAl<*0/f22/f,ml&4DBml>Fml0D@mlJDgJCgr0 o"o"ifN`, o0(4l0(6l0<N20+kn& yuHhj"HCj Kr$yu0*N8XO?-?-?-4BA0 LN3\O0<N29F9GO,LhRl0g@&jT" g ?j5|0*\ K"kfrN5o*`  j,pRlXOL 8NuH<]O$H?@6GJCfx`BDpAg$"*0Ҫ8/ J0aNo**0`(**8`"4"*8 *0 Ja0 Ja&*%@8%@0|I0 Ja.g캀nT8l4"*8pЇ Ja`28l4" *8 Ja`4r҅ *0 Ja4"  Jav%E0%G8`T0o4r҇ *0 JaV`40o4"*0  Ja@`4"*8pЅ Ja.4r҅  Ja %G0%E8m *Ъ m  Ja Jap JN *rgCO jv*@N,HTHo"K LN2POpWf\OL%T%k<`@ kpf* +D@%@"+@/2+F0+ Ta* %H`%T0,H%@LNu/ $H jpfBB"*(pa`BB"*8 *0 Ja0*|gj0<jg Ja2$_Nu/ / $H&I0*|g6"*0f$*4f *8f "*< g|BB"*8 *0 Ja%S0%k42*60*$*0 j, p(aH%@@%k8%k <2*>0*$*8 j, p(aH%@Djt"*8 *0 Ja&_$_NuH>O&H$Ig2+|ft`BB?B0+|fr`BA>JAf"<am <zn<`<Am <Zn< JN#.&+0/k4MO~I 0+|g`  k,/H2(o$/kx؂` o8(HĘ o*P`dgfX0g"M J N$*J@g "M JN&J@f40/fJg-H NN#h g5xH NN#h fSMSJj/|SJjR`/k(R`  k,/H2(o$/*P(`|gfn0g"M J N$*J@g "M JN&J@fJ0/f(Jg$-H NN#h g.5xH NN#h g()C)D Ї)@ "L Ka^`(RMRfBRoPrpN/ kO L|Nu/ $h, ((r` tjH҂PJ$SJj"$_NuH8O$H& j,8(&P:<IO~`SFJFo3`H LN#h g`REEo3PH LN#h gFo /C.0H/@2H/A C Ja` rpN/OLxNuH>O$H(I/j "o&i 2|bA2;N"8vB>8hRX^hx\&.8BLV^|XB6*H>^h|rJT$.7T`"+4 +0 Ka0`"L Ka`k`0+| fVBT`"L Ka`k`k`k`k`k`~k`t kpf8`d Ja5kJ5kH`N + kabBB`6 KaN`,"L KaV` 8`7T2+60+$+0 k, p(aҨH'@@2+>0+$+8 k, p(a҈H'@D`"L Ka`pЫ((` +0 k,20H(` +0*k,2+B0+ Ua6H(`~ Kat`t0+|g. kpf "L Ka<`V(0)k4)k8)k< `<(`2"L Kat`&'Tr'lv` +rg"+0*k, kpg kpfpmg."f.OCO kv,krN`7|p`7|p`7|p`7|p`Bkp`7|p`/L'TT'lX7l\`z Kaj`pk k``k_`Vp kgL2<kg@ Ka`p kg.2<kf"k Ka` '@4'@<2+60+$+0 k, p(aМH'@@'@D`(0` JN4J@g8` Ka` +0*k, UN*BBm"L +0 Ka +0 KaP` +0*k,2-o(`l(O`b2 yu0(N7r7@`7THkHkCA2+*yu0-N70PO`6`'T  o'| JaL`"L Ja`'T +$o'@` Ka KN`k KaZ` KaP`R0`@S0` + ѫ0`0 + 0 +0jB0`z'k(0`p'T0 +0jB0 +0(oV`'T&+ l'C +j6B`.'T +jB&+( RJkl'C` Ja`pkg Ja8/L l'Hb/H /|CT/I/h p *o*m"LNCpg o *o*mN`jpkg Ja/L l'H^/H /|tCT/I/h p $o$j"LNCpg o $o$jNC pd o $o$jNCOp o $o$jNB@ KN`p KN`B@`pOL|NuH>O&H*,H|(g|g|g| g `x]` x)`x}`x>./FR (k,~`b(o rpN/`d0,oD*TH MN#h,HH MN#h$H f"g,RRG` gd, RSG`|RPLJGn/E/F C KazOL|NuH>O/H*,BH|)g|g|g| g `x[` x(`x{`x(k C K*lpdNCp K*lNCpe K*lNJCg p K$lNXOL<Nu/ YO.$hC J0<a̓0< JaAOXO$_Nu/ YO.$hC J0<a0< JaAOXO$_Nu/ UO&IHW/ /Ho HoBgp?BgBgBgBgBgBgBgBgBgBgBgC.BBBAp!N1>O.|fBSTO&_NuH0EO&*&R` [N* SJf RN*BBL NuH8O/H h &hC0< oN ka&/R N+(H g#O#O"B@N*v&E`R$"J0< oN *o,pЪN+( g6"j *N$H * TB0`APNAx(XLRoB@`apO LNuH8O$H j &h 9OopI)yO)yOC0< JN k()o)o)o `.C0< JNC0< JN /)@("/)A )A"L0< JNO0LNu/ / O$H j &hC0< JN k6 JaxJ@f,#O#O#O# OCO0< JNO&_$_NuH8O$H j &h0< JNC 0< JNC0< JNapN+(H grү lv`v#O#O"B@ LN*v. C0< JN /o(pЯN+( /"oN$H / TB0`APNAx(# OBOpЯ l$XLAPNAx(pЯ #OBO`# O#OCO0< JNOLNuQOBW?|?A?@rdApN1 PONuH8O&H?@&?A$vxB k (h K0<NEO`P0/$@|Kgn |g6|gʐ|+gfS@g6` |MgW@gPW@g|g`0< KNp KN`ғ0< KNpo&g Kp N`p KN`0< KNpo&g Kp N`p KN`~0< KNpo&gC0< KN`\C0< KN /gS`ZC0< KN /o0 Kp N`0< KNC0< KNpo&fC K0<N /lRC0< KN`C 0< KNC0< KNpЯ l Kp N`>0< KNpo&g$ KpNC0< KNC0< KN`rp KN`C0< KN j~C K0<NC0< KNC0< KN /l"/%A$%@rҀ%A `C 0< KNpЯ l$%@`C0< KN k$%o%o%o `4C0< KNC0< KN /o$"/%A$tԀ%B%@ "J0< KN` /oz Kp NC0< KNpЯ$%o%oB `C0< KN k%@%o%o%o `0C0< KNC0< KN /%@%@"/%A%AC0< KN`0/$||g.n J@gW@g`4|gS@g `( Ka` Ka<` Ka` Ka`0/$|| g| lJCf|2/$0/&a`lC0< KN j"P% k%@%o%o%o `0C0< KNC0< KN /%@%@"/%A%AC0< KNBC0SDJ@gC$A&a`Bo$0/$fC K0<N j K0<Np KN0< KNO(LNuPmhm4hBl 0(h@mB@NupNu/ HydCATeN(XO$H gNBJ@gAPpN4$_NuH,YOIHWHoHoHTr B@N5O0NT*HNrgV gRrmTgtm"f f$M`g6N0`pmTf yu"h<")4g M"mrN` p M$mNXOL4Nu/ / &HEu R0(6g2(8g4(:f hN` KN&_$_Nu yu hNNu yu hXNxNuH8&H"yu0)Fgb$i@g(j Jp N`L yuBhH`62H ЀЁ(kI lf K0N $l p J(jNN J6jLNu/ / yu2(`H ЀЁ h\A$h &j JpN&_$_Nu yu hXNHNuA`N%NuH>&HK_ yu0(FfA(N%` yu$h@gp(j JN`f yuBhH`P2H ЀЁ(kI J0N 0,S@g S@gS@g` (l p L,lN`a`` MN%N J6jL|NuH JN(p""ycb KN(%K 0,@T@@m;D44j WNB@`TD4E0G"`XOL<NuH0$H6J@k8H"ҁҀ jhh@h "h &h & J0NOJL NuH>$H6J@kH"ҁҀ&jI*l ,mZ)N$g"N k p"N(0<n 9@ ` p""ycb k N( k !mJBl 0+| f k "k "0 JNOJL|Nu/ yu$hX"R ig3| JN0* k JB@NOJ$_Nu?/ Eadjjjjj yu"h<6)pCgjpCgjpCgjpCgjpCgjp@Cgj JN%| fXBCpjg|pjg|pjg|pjg|pjg|pjg|@ yu"h<3C$_6NuH0B@AdN0F&Jo.A"<0N/0N0 yu"h<3y"Eb&j^ZfH6+H$Ԃԃ43(H"ҁ҂23H ЀЁ634H ЀЂ7'dn JN&H g$p N+& gC8p N( KarJ@g` KL NuHO yu&hX@f(k6(F0HЀЀN+*H g2HҁM?|P?|0BC"yu3CH` 2H ЀЁ4HԂ;(=(RCN J8j yu2(Llk4HPHAhPXA?A 4(Nlk6H…0HBhR?B BC1CH`0HЀ25o ?A>6o |z`,2H ЀЁ>?tA0/2a~J@g:`TFp 4H"ҁ҂t gJEon SBh2H ЀЁ<4>H$Ԃԇ9(>49( kp( K0NOJ2H ЀЁ kp99 K0NOJRCN J8j" MN+` yuBhJOLxNu/ yu"hX Q$P gN$_Nu/ N$H f N$H g0* nrjTf JN$_NuH8$H6J@kH"ҁҀ&jIk?k k $,g "B k p"N(0< lh 9@ `$p""ycb k N( l "k #hJBl p l hTgk2+ 0 J"jfNLNu yu hXNhNuH<$HIu T0(Fn !JXa`` T&h@gp *k KN`H TBhH`62H ЀЁ(jI lf J0N &l K"k NJ@f N J6jL<Nu/ yu2(`H ЀЁ h\A$h JN$_NuH8$H(I&j g6+2JCo4+H"ҁ҂77C4H"ҁ҂ sf2|7I47I2`2H ЀЁ7s22H ЀЁBssA1| !|!L !lZ9CX J0a`9|XLNuH8&H$I6JCk(k2H ЀЁt0NOJ8,`2H ЀЁ842H ЀЁ父tf0H$ԂԀ0H"ҁҀ9(24(f9D0,2j9C49C22H ЀЁ9`2H ЀЁ929C2 SBh4LNuH<$H&I yu@fh0Y@gU@g`@ yuBhHBk`$2H ЀЁ(jI lf7|`ZN J6j`N2H ЀЁ(jI*l `& yu*h@0Y@gU@g `Cp M$mN`Cp M$mNL<NuH8&H$IIc~2|fgn6| gnUAg_AgFSAg`ޒ|gƒ|UgxSAg~`ƒ|g|bA2;Nv8@H"J Ka` J9h)h 9h9h`|)J`t)J`l)J`d KNx`Z"J Ka`P"J Ka`F0 Ka`<0 Ka`20 Ka`("R KNn` Ka*` Ka` Ka `B@`pLNu/ $H P f jh` jh j2(p"jf JN$_NuH0$h&P6+ 8+ kfrC0HAHX@5@ppC4J@JXB5BtD2ABI5A5ArBE<>*`@0HEHX@4H"ҁ҂50@FH5REEfBERF2H ЀЁ>2JGf>*2`@0HEHX@4H"ҁ҂50@FH5REEfBERF2H ЀЁ>2|n` kfrC0HAHX@5@5@pvD4BCJ5BrrD0@AH5@BE<>*`@0HEHX@4H"ҁ҂56CFK5RFFfBFRE2H ЀЁ>2JGf>*2`@0HEHX@4H"ҁ҂56CFK5RFFfBFRE2H ЀЁ>2|nL NuH<$H"yu0)6g2):g&j$ g kf(k ,g *@ KpN KN+`B RN+` JNpAdN0X&Jo8 yu"h<3"A"<0N/0N0` JNL<Nu/ yu$hX"R ig3| Ja`0* k JB@NOJ$_NuH8]O$H&I(o&BCx%p JR@g|fJ@g@HNBEgvBA< <b;k`|<*f<`&<0< b ACp a$Wb<gt<.f6<*f4`$<0< b ACp a|$Wb4g<߲<Lf g`<hggr@d|?@0;N>nBXr [0`|A`0A2"La@`\ [2"La@`JJEj `p0?4 LaVTO@`*JEj `0H?4 LaTO@` JEj `p0?4 La$TO@`JEj `p0?4 LaDTO@`A 2"La@`A 2"La@`A 2"La&@`|@HN0\OLxNup` Warning: use TCFLTLIB to get float support for printf. H0O$H&I>68jx`p@c8?|0|g* J0R@CDHoBaXO0?| JoBg|-?| `&g|+?| `g | ?| ?| ?D62XAXAt0gJf$B RoDJDf f2SA`.C"SDQ` X JDf fSA`C"SDmQto An ?B?B`ff ?C?B`?C?BC8?|@gE`e0/DS@jD@-`+/ r AJa"_AFpJWF@rg SAkt0QS@k AFQ`*H0O$H&I?|@>>68jx0|g JpCDHoBa(XO?| JoBg|-?| `&g|+?| `g | ?| :/DlDE|0 ?| |JDffSFDged?DD?|6`8JEfp?@?@6`& JpCDHoBaXO 5d?EE?|6`SE?EE|1"p?@6@`E|b J0CDHoBa>XO0@E:/DDEE?D6DC"SDmQ?EE`?|0D|b JCDHoBaXO0D0:/D<RFDJDffSF?D6t0JfB ?| RoDC"SDk6Q`.C ?E SEj0?| RF`QC"SDkQto Fn ?B?B`&ff ?C?B`?B?C`|? ?| x?D ?D?D6|`H0O$H&I?|@>>68k |kx`x0|gZ JCNabANJf JfJPgANCXaLAXVH?a_ JCDHoB|k:@k6DR@|kpaXOJfS 0gR&8oDjDBD`>0a\XO 0VSD`BDBoBBoD`6x0/gf@ KaR0/ g@AN0/g@ Ka,0/ g@A NJof Jo6fgp@A .N0/g@ Ka0/6g@A"N0/@g@A8N0/gg@ Ka0ObL Nu0<HS@rJrfMHGGCA 0jD@aAC a >`aAC a ` P?b Ca SG`A6"$RGJDoGn| Fo| o00CC?SFpԂӁ@Q` pԂӁ@*(6ԂӁ@ԂӁ@ԅӄC<0QBJjR! :fg0`1RPOpAL@Nu o?jD@ @c0<?>@2AA@AC,0 ]HOgCbC Oda8JGf>J_k BNu?@@@@ @@P@$@@ @4ɿ@iŭ+p@xIϦAGɀCQ~ގFMHvuu Z;]=]u%`R log?֛w9?H?bf?޴@DLd>@8<HDBD/DBAavIaaZKxA !%!%1%xavKMaNMQC a^Ca6OL`NuA"o4CG?/p<6>܇׀HAHBHDHE>܇׀?<BCHCHF.HG܇׀.HG܇׀.HG܇׀.HG܇׀.HGև.HGևр?<6HCHFp>܇׀>܇׀>և(".Jkއ9dgJg j c a0JfJg9dg9dfJkt`Jk`h/"HA.HGpށ@H@HG0BGHBHE2tށـׂ݂p"Jk އل݆׃SANu b c0a b f$JfgJk؄݆׃SAR׀fRA` Jk؄݆׃SA Ae "$Hzan` ҁQ !1LNudivCA/ / ? AaA0 ]HNu4CG?bfb RGd6|/|$F,HF.h.BGHG҇~`"BAHA,HFpHAHB024 6<?~Gj SWԅӄGd, Q,HF.h.BGHG҇~HA`"BAHB02BB6|FjSG҄FdHG>HG9df,⎜bHFRFkHz``, c9dg~9dfJkb`lJkf`X//&HC0BCHCH@B@4rЂׁ"$dSGԅӄNu9df╚kfg` JfJg`,HFRdR`,HF  @c"$HzaB` ЀP !1L Nu5|$Ap" EP jW5|H j W$$$ jW5B j W$$$ jW5|h j Wf !R!R$ANu5|$Ap" EP jW5B j W$$$ jW5|h j Wf"#R#R$ANu$(0r@Ag8"(jNufJf @DNuH@aJ@jR@fЀPDNu"(fJfJ@kDNuDNuDNu2""]INur2` r`r2""]INuap` ap`apHQ//aP.Nu6C`6*)<<HFFg6()kfJfU`SCڅلj0"$HFFgJjNuf4Jf0]Nu()fJfY`JfJf  Nu\HNuJkS@ԂӁjNu0<rtv`H@Frtv`<<6(FgF Cpn @b:H@@9dg 9dg 69d[Ck S@rt`rtv` @n0H@@rtv9dgv9dgl89d\Dj`t`PvxR@fЀP9dfg,` 9dg 9dgJ@k`J@j JgRdR !1.Nuv]H//?HW//0aPO0 ]H.Nu/ / o\H// ? o \H\I//!?!// ? //*?Ad2DAZA g&CdH 1g"@?BPANAd0J@f0 @c 3":H`3!:H` o4C0 O$ _"_NuafpNu@|@k <`D@ @cpNu JPjDNuA(p"@ "BydA1B3d3dO"Nu/ Hz?<&NN\O$_Nu@TXJ? ?ry@ڢ!h5?ڢ!h5?ڢ!h5?@@NaN-INF+INF(C)Xmath by d'ART/YOM, IC Hza:XO VBXO,_Nu"VS@eQ,NuH Ov Jj|-?|D`g|+?|`g| ?|`~?|`vH Ov ?|`dH Ovf?|`L|0f|x?|`2|X?|`$H Ovf?|` |0?|$H>C8jxA aNA pJWF@?@gA 2SAktaSb (Q2/@4/(jt@jtBgf 0Ao@@Alx?B?D`hH0$H&IB(v`H0$H&IvJWFCJBj4Cb6xJAkCc8Cf K0a0 JN` 0 JN0 Kap0DL Nu6x0/g f@ JaP0/g@AN0/g@ Ja,0/g@A N0/g g@ Ja0OLNuH0E6`H0E4&H6g8Kg SC JpNQ J0|gNL Nu00000000 //O4UB|"bBJ@j < fD@-CtH@B@H@&HC;0(RBH@B@H@fQBO _&Nu3!:H`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ JgJgJgJgJg JgJgJfSHggggg ggf @NugfSHNuJgNug fC`Jg INuSHNu g<g8g4g0g,g(g$g ggggg ggf @Nu"HJgJgJgJgJg JgJgJf SNu"Jg JgJgJfSHSefB ANuSeg gb pNuJfpNupNu"SefBJgSf ANu/ / g($Ig"f&Hggg"J K`A&_$_Nu`H0$H|g|$bGrtgJ3kSJgtJ@f"p <0f:pgb<߶<Xf(pf"`N|f<0fg><߶<Xfg.G(3d"3d&HCHCJCfԃԁd` & gSJ"L Nu3":Hp` 3!:Hp& g"`//"4UB|"bZC"t&HCJCf&HC;0NRBH@B@H@f`$?&8BCHC06H@0HC;0&RBJf8QB" _&Nu3!:H`0123456789abcdefghijklmnopqrstuvwxyz/ E0BABBSe2g2 ge p` Jfp`p$_NuH &/?<HNA\OJf 9Rg @ NJ@fp @LNuH0&gPR<e a g!CCd "A`rGd&S f. < a gj&@Ap !|'H&d#dA"P` )d I"Q f`rd ` #@#C"nAL Nuk |`3 :H`/ oLQ d nf@axJg*`6Cd g,g"@ f` "/?<INA\OJj`p$_Nugp`/ &yd g/ &S?<INA\O`&yd g/ &S?<INA\O`&_NuH8$<CGd g" c &@ f`(@ ,gb*"Ҩeg ` )H`p"@")Ө )H`>"@ gb" ҩeg`N"(ө`" "H" ҩf @"(ө" l eb&/ ?<INA\OJfQLNuP`Jg/bg2 4gf!Sf`f`!Sg"gH?LxH?LxH?LxH?Lx`H?Lx8H?LxH?LxH?LxH?LxH?LxpH?LxHH?Lx H?LH?SfvLx2|HgS@!!Q|gSA!Q`2 4gfSf`f`S"gH?LxHxLxHx(LxHxPLxHxxLxHxLxHxLxHxLxHxLxHx@LxHxhLxHxLxHxLHSfxLx2|HgS@ Q|gSAQ _Nu/$gSe40HB4 gxH_>"&(*,."B$B&B(B*B,BH~H~H~H~H~H~H~H~H~H~H~H~H~H~H~H~H~H~H~H`SfL||0HgS@!Q|gSAQ _Nu  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~@@@@@@@@@@@@@@@@@@@@@@@@@@@::::::8888888888888888888866666644444444444444444444@  !"#  !"#$HBJBf$HBJBfNuHBЂNuHBЂNu$jD BJjD$HBJBf"$HBJBf $jDNuHBЂ$jDNuHBЂ$jDNu$jD"BJjD$HBJBf4$HBJBfH@B@H@$ jDNuB@H@HB0@0H@0H@$ jDNu AH@r2B@tЀӁd҈рӁQF@$ jDNu"@$jDJjD$HBJBf.$HBJBfB@H@$ jDNuB@H@HB0B@H@$ jDNu A"B@H@HABAtҁрdЈӁрQ$ jDNuHR???<NM\O$_NuHR/HP??<JNAO $_NuHRHP?<INA\O$_NuHR/?<HNA\O @$_NuH>@NAO $_NuHR??/?<BNAO $_NuH>?NAO $_NuHR??<>NAXO$_NuHR?<NATO$_NuHR//HQHP??<KNAO$_NuHR?HP?<=NAPO$_NuHR?HP?<C222""$_NuAp00 r $<1|`RAp00 !or $<1|`,ret`$Cp""r $<3|`Cp""3A2<$<`3Pr t`3Prxt`3Pr t`HQHPApBX0r $<aA8"_2"_2"o2"o2Nu3Prwt`3Prt`r3Prjt`d3Prt`VHQHPHPr'taB"_2"_2Nu$<Hpra$0(@Nu3Prqt`3Prt`HPrlt`3Prt`#dtA4rpa#PdNu3Prt`3Prht`3Prt`3Prt`H@rnt`~Cp""rr$<`h#dA@ A 0"o ry$<a>#pdNu#dA@ 1A rm$<a#pdNuHRpNBT@$_Nu#dAZ#d3Prfta#Xd#dNuHQHP2<ta"_2"_2A8"o2" "o$o 24242422$ANuCd#H A #Hr&taj#d#XdNuCp222BQC"$<3| r`2RBfr `CPH $<r`2RBfr`#dCPtr`2RBfrta#dNu/ ####$_Nu[3][|Konnte die Datei |nicht erzeugen!][ OK ] Zubereitung ERZEUGEMLLEIMERAbbruch Zutaten REZEPT OKREZEPT LADEN_b00fᬀ8Ña80 <? 8`>`Ap xl0ɇßAa@x `? p x`@0`Ϙ` 1 L< \&V 0$R 4S y i I  `@@@DDDLIIIYSRRrfdd$v;x ' =,((/(0jlr)x^jlr)x^j:lr !x^jlr)x^j:`Ty}:y}::F11O11111111Qʠ@r@:  H?Ʊ `@D"@D"@D" D" D"  q!!!! D" D" D" D"@D"@D"@d&@`?AB:  H @*?:?@ ? @? @@Z @@B  ? @? @@Z @@B @? @?   d<zBx2::'MOQ:SNSACS 2.0; REZEPTE b RZPOK (C) 1991, 1992, 1993ACS pro 2.00Stefan BachertAutorF}FbFbq lr)^jlr)x^jFclr !^jlr !x^j????80 3gggg30 8GG8Fb0????80 0 ````0 0 8GvGFb0???? 0'''' 0GGFb0???? 0     0H*HFFb0!!7 Hl7d @ @?xxp㇇ 8p<`ßp0 Ϗ<HA  F GFfIF F F @FF  ACS 2.00 (c) 1991, 1992, 1993 Stefan Bachert0123456789ABCDEF \*.J UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD33333333333333333333333333333333KKKKKLL"KKKKKKKKKKKKKKKKKKKKKKKKK|]  Tr&0z<LRLhVHT$WMOJOQ:SNS.<=$=\==>H?fABDEI,KtL7^4ZZ~Z[: J z AxA@(@d@@ADAp@A++`* G%!$*N_ bfsu >x\~(ylr~}^j`3%ld =+-*/()!&|[]{}<>,.;:$%?`'^#~@\"aOPPOOO[2][ | Soll das ACCESSORY | >>%s << | gestartet werden?][JA| NEIN ][3][ | Kein Speicher| mehr vorhanden! ][ OK ][2][ Unbekannte GEM-Nachricht | erhalten.| ID = '%s'| Weiterhin berichten?][JA| NEIN ][1][| Modul konnte| nicht geladen | werden][ OK ][3][ Keine freie GEM-Fenster-ID | mehr vorhanden!| Abhilfe: ein offenes| GEM-Fenster schlieen.][ OK ][3][ Kein freier ACS-Fenster-| Einschub mehr vorhanden! | Abhilfe: ein ACS-Fenster| lschen][ OK ]PAPIERKORBOK-------------------- Aktionen ffnen ^O Schlieen ^UPulldown Mens Lschen ^D Beenden ^Q Fenster Nchstes ^W Optionen aus Liste ^LDas Ziehen des Neu-Symboles auf ein anderes Objekt erzeugt ein neues Objekt. Ein Doppelklick darauf erzeugt ein weiteres Fenster der Applikation.NEUInformationGenerischer DESKTOP des ACS 2.00 von Stefan BachertVerhaltenObjekte werden durch Ziehen auf den Papierkorb gelschtVerstecke ZeigerGrows/ShrinksFehler akustischZentriere DialogSmart RedrawAbbruch Info... ^I Vertikal ^T Modul laden.. ^M Horizontal ^Z ber mich... Verhalten... ^BModul nachladenSQQq S]QQq lr)^jlr)x^jSlr!^jlr)x^jQlr)!x^jQlr !^jlr)x^j_ ^jS_ ^jS_ ^jS_ ^jS_ ^jS_ ^jR'y}Sgy}Ry}S)f`pppppp1p1p1p1p1p1p1p1p1p1ppppppppVFWS 0 Hc@DDDDDDDDDDDDDDDL WXXQ   H?UU" W*EU'U>JWU'w''}*UPUT'@'w'UAVwU_gVWUA?XYQ 0 HZZ# Q Q  RT  Rm $P   T=  Q  Q  Q Q Q Q QR VRR6fV.S( V.REX$"!R^"V.Rx~ %,'T*)T&*V.,TR$TL A T T @TvTVT  A U> U& @TvTU T  A T T @TvTU U  A  T T @T  TUUnUV U UU @T @T  N<zQQ'ZVHMO"Q:SNSXWZjlrxcf1cZH(:f1c^H(bbZjH(fAMDESKTOP.CFGVt2PpX2PXpr  .   "    2 &    4 B   $&8 X :bl(D.6:n4  :L^ z  P(4:(TH0&0."$D2V$LL    & 4&( 4D"(H,0(H8<&F8H ",R8*   ($    L|hD<,( F@(2.6Z*:<0,>28, 2^N$@("0   J&8H@*<* "8(6&  $80     L        ,\*  & 0   0 $j.@ T  "4d  8<$,  * B$n@.02 ,<4B ~*2 & . $ 6<0B8t.&    <  . (~"$ J" @BD* :Xj"FD<z<   P"&B^&:D`V26  &BP4F 60RJ0N2&*&BF$&Bn$&B R>"t        "  4T",  & B`, ,F"& z &z *z(:2 l@&  2   jZP 82 "2,   *H(64V , ,>  F ,P0  @ X,P  B$J 4$ 2 X>N>  \:  6*R@" "<" "   \28 J J *T$D" @"^h Fv,B,ZJ 26rX"N4<BfB&xB,D"H$b `,h$&j .ZR&..0 $ ( r6V< t \r d lB\2Z ,> $ \XL r"b$@ .HH (8 R    06 & *4$  ",2  $2 0"pZ&^F .$XV   H $"&, ( L > X"T4&B>@<   *t 0T *<0&8 4B @ (& .* J 4 & t `\ ~tD.R,<* "X($*,j$$&$$ 4D  . .0 $ H6$ L     & $ $ $ $ $ $ $ 64 HRRR20 H&            nH0 $ $ $ $ < $ < $ $ $ <0H0H0H0(:$P   $H`JD``` >>>> PURE-C <<<< for ATARI-ST Version 1.0 (C)88-90 Borland International &H f&op`B@#R3V k #\ Ј<.@#XJyVg<"@(I$k,"Jf"JfB// ?<?<JNAO A<~kRrRAfA6<HCBB`6 !jBJ)gHiRC` "fSI "WSAkHiRCBSQJ)gHiRCHy`$ON0 J"LN"? 9Lg @N 9Pg @NNx?<LNAH 8O$o$?j?jI0/f2/g,>?jpWopooAr"T0)N j P>?h0jS@?@2(jSA?A?j ?j 4* jSB?B 0* jS@?@ THhj"HCjA&T0+rNXOABA"T0)N0*OLNuH8$H&jG(P6* JCk0jBT0,jBl0klJ@oT0,klJ@ol2H 눐Ё2,kHNn5@BgBgBg?r 0NPO2+ p J"jfNLNu/ $H jA"R2|bPA2;N&08@DSi`0Ri`*0(i` 0(i`0(Q`0(Q`SQ`RQ Ja$_Nu/ / $H&PH2+HN$"<Nn7@ Ja&_$_Nu/ / $H&PH2+HN$"<Nn6 Jab&_$_NuH8AŬN$H gpN(N&H$ f`j`T(jI l !JB@7@6A"P0)i 7@"P2) i7AB@5@>5@<2,H 눐Ё2+HNn5@@2,H 눐Ё2+HNn5@B J"j N JLNuH8N$H fp` GŬCph J(jN$K"jNB@LNu x (( hl0(A`,H|fA<  @## R#x/|z y|N y yxN!|NuH"y y Jxg?/Hy@N y RLNsHy&/<!NMP#|Nu/9|/<!NMPNuH0QO8:6E Rh o`GpCg Sg062< R0(N` SUUg6UU2?E?C?CAr"R0)N4POL 8NuH0QO8:6E RhodG0@|g Sg062< R0(N` SUUg6UU2Ar"R0)N4POL 8NuH6YO y"h@&iBCKE`*|l00HЀ y"hT81HW"M K0N&XO y"h@0)4U2)6W0H$ԂԀ s(f23(|g s( ,P`2H ЀЁ,s 0n2I54n50nnS@54nnSB5 0n54n50nn S@5 5`H0H5520H$ԂԀs(SA4J5 24H ЀЂsSA0H5BrRC yhFmXOLlNuH(O?@?AEr R0(Nr R0(NBBBA R0(Nr R0(N R>?h 0(h S@?@2( hSA?AA"R0)rN0<NIBC9C`8|l:0H tf:/t/t8/t2/t ?A Rh l~h Rh lxh 42/ 0ar420ah42/0/ aZ4/ 2/0aL42/ 0a420a4/ 20a4/2/ 0a`Z:/0Ht/t8/t Rh l~h 420a420a420aL420aBRC RhFm‘0<NABA"R0)NBlOLNu yBhHNuA"P0)HiFmpNu"P0)HRiHHЀ"P"iT01NuH0UO$H6G S@g N  S!J@p4H"ҁ҂ jp fN"S0)DiFoBr0H$ԂԀ犂p( "jf J0N S0(FRhFHЀ S"hT3>Cp J&jNTOL NuHCp J*jN` SCTLJCn\TOL<NuH0E R&h@0(FoPBC`40HЀ R"hT81RC4H ЀЂ k20 |"kf K0N RhFmBhFp K$kNL NuH8$H6:8(IH$ԂԀ&jk0kS@lmplnhk0kS@QmXlnR2<kfHtk f@0+| g0a`.<+JFo&"L420 Jaz2H ЀЁ j<0FfLxNuH8O86N:N$H gGp Shffa S h?l0lS@?@2,lSA?AC4*62*4 JB@az S h2H ЀЁ82DfJGk0`0LNuH?|?h0(h S@?@?h 2( h SA?A 2|?I ?I?I?I?I?I?I?IC$k KpNaB&0/VHH@?@ 2/THHA?A?oV:K8:T y>(fpGg|G0@?w 4/H"ҁ҂ҁ y h/2pGg|G0@2/w g(?w 4/H"ҁ҂ҁ y h?j ?j ?jN*H0| |(b4@0;NR(((((((((dr~6666(((((( ((((((((2*0*N2`C K(kjN` K"knN`pkTg K"krN`p K(kN` K"kvN`0* K"kzN`z0* K"k~N`j0* K"kN`\C K(kN`PC K(kN`Dp K(kN`6aT y1|~`$ g MN` MaF` J"y"iNNIPOL<NuHaE R2(d0(bN6N&H g"R8)dk6JDj(r iO$H(IG S!J\K 0nr JB@NH:`:BT0nBUvM `D0g2@g8BUt"NBA JNHWHo SHhfHoHhdBgBgBgBgBgBgBgBgBgBgBgBgp?"HCb4rpNVO.8r@gBD2/ S0(f JNH$J@k:"Mr JN6`p Shfg2/A|f"J hXNRJ@fHo"M4/20 JN2XO6r 0H$ԂԀr(g0Uo:0/J@g|K4g|gF`ft"NBA0 JN2H ЀЁ r /P"oBt"NBA0 JN o`4t"NBA0 JNt"NBA0 JN`t"N2/0 JNpDg S?(d4(br JB@NTO:R@fhBU WfBC`l:* p S"hO,H$I(oHNAN; 6 Jp\N &Hg" f8NN<A|:B@ANCl JNp\ JN &HCnAN&"L KNKB y"h0|g| g|g`Ho&"M JNFXO8`/Ho*"M JN$PO8JDgv0/&gngj *:fb MNlr f -.f "L MNp. MN fCo MN"L MNp\ JN &H"MAN&,J`A0N;LNf NO(L|Nu0Ql00(il1i0h2iAoh00(h2)iAoh1ANu0h2iAl`0i2(h4)iBl`2)i4Qo`404(io`4)1B2@1I0h1@2(oJ@n B@1@1@Nu/ $H g0"y2)6f4)8g JN`N JNN$_Nu// & y2(6f4(8g NT$H`N NT$HN fAϳpN` J$_&NuH8$H gBG Sp n <a(H f Ja>`(B& S (R S!LNu/ / E` R ( pa R (SJn RB R&P ga$`&_$_NuH8(H$I6H"ҁҀAt hf6rh f.G0+|g $gA"P#LX"P#J\"P3C` SNLNuH $H:0*H$ԂԀ42(H"ҁ҂620*H"ҁҀ82` 2H ЀЁ622H ЀЁ82Ef0L8NuH0QO&H$I68^f2AN?2H ЀЁJDgj `j C K$kjNPOL NuH6O&H$I6 Ia88r"J K0aHWHo CANPOp2/@|?@MKzBo 2H ЀЁ?r?r"J M0N?0j4H"ҁ҂牑rBU0-j4H"ҁ҂牑rBm>m yhh JGo2H ЀЁ爟rU>-m yh hJGo2H ЀЁ爟rm MNAV/H?-?-?-4r0 JN\OpNHWHoHoHo HoBgBgBgBgBgBgBgp???/.?/2??/2C842pNVO.>pN?/4/ r0 JNTO<@f|Fgؑ0<N0/ g>4H"ҁ҂r p?42 |??.?.?. J0BA4NO JFkpp4H"ҁ҂r f\"J N0N?p?r0H$ԂԀ犂r( ??.?.?. J0BA4NO 2H ЀЁr ?| `Bo 0<N:JFj?/4/ r0* JNTO<J@kHWHo CANPOp2/@|?@Fg`4H"ҁ҂ 2 fL"M oNBJ2H ЀЁ55"J K0BAa60 Ja.8r"J K0a`FgpGg"M oNBJ2H ЀЁ55NGJFo6jg0jg*2*H ЀЁ爼rgN:j0"J KaTN:BA0"J KaO"LlNuH>O,H:IKHWHo"L MNPOp2/@|?@?|Bo 4H"ҁ҂<6JFkn`2H ЀЁ<6Fgp4H"ҁ҂v gغFg@2H ЀЁ462H ЀЁ爕v0H$ԂԀ26(0H$ԂԀ犓v(G0"N KN?0j4H"ҁ҂牑vBS0+j4H"ҁ҂牑vBk0k yhh ?@J@o4H"ҁ҂牑vS0+k yh h?@J@o4H"ҁ҂牑vk KNAV/H ?+?+?+4r0 NN\OEpNHWHoHoHo HTBgBgBgBgBgBgBgp??????/0"M42pNVO.?@ pN?4r0 NNTO<og 2/ gh0/H$ԂԀv( 0<Np?4/H"ҁ҂06 |??*?*?* N0/BA4NO 0<NJFkFgp4H"ҁ҂v ft"N J0N?Α0<Np?r0H$ԂԀ犂v( ??*?*?* N0BA4NO 0<N2H ЀЁv ?| `Bo ?F0/ g4H"ҁ҂ 6 fr66C>6JGkd?4C N0rNTO@fL2H ЀЁv=Bv N0a84H"ҁ҂vJ@kvEg NNIX@fdJFjT2H ЀЁ>6`60 NNIX6?4r NNTO8J@k@f2H ЀЁ>6JGjJGoJDj po g8"K o NBJ0O$L|NuH0O&H$I?@?AAN"2 JN?0/j82/j2HoHoC"A$NPO y0(@o2(Ao5o5oB@ Jax6NGJCoN:j0"J KaN:JCfvAN"|0OL NuH068N$H&j^N:j|f y hN` 0"K Ja:N:r0 KNL NuH0QO$H:6&j^$ gf>?k0+j8l`0*8?@?k20ANBJ@g22+H ЀЁ83?4 K0rNTO:@l"K JaPOL 8NuH0YO$H6?A&j^$ g KNH$>J@kt4+H"ҁ҂:32H ЀЁ<30+H$ԂԀ>3(680 KNIX6J@k,kf`(2H ЀЁ<32H ЀЁ>3Ffp`^GfN:j0* f$BA K0N0"K Jar0 KN`"r0"K Ja0"K JaBA0"K JapN:B@XOL NuH $H6*"y2H ЀЁ5 622H ЀЁ820H$ԂԀ r( Nl*JEgRE0 y:4H"ҁ҂牚rr4H ЀЂr<*0H"ҁҀ<22H ЀЁ82Dg22H ЀЁ<22H ЀЁr0H$ԂԀr(`LxNuH8OEN2 R0J@k 3G RHhHh"K KNPO R1@ R1@ RHhHh Hh HhrB@NO R"R3hIHT"RCANRXO R1l R1l Lr"R0)N R1l R hf1|` R hf1|r L"R0)Np R1l  R1l R1l R1l R1yV6 R"h igp`B@ R1@8 R2(6g"HCANvJ@g R(HB("RC RAN&p/ RAN (H gC RAN&B"RC RAN&p\ RAN (H f6"R ):fC RA N& RB(`&"RC RA N&`RL"L RA N&Bp. RAN (H g\B`X R h j0N$_NuSyJf09Hf y09NNu09HRyHJ@f 0<NNuSyHf0<N y09NNu?/ 69JByJ0!y y$h j0N$_NuH>UO(Hv$Hּp JEhg N(N&H g"L NzBW$K*J0*|f2* | f*H|| bB4; N T*xxfx j N=*H%H `^ j N>(H*L%M ,g C,@ JpN Wf6`8 j N=*H%H `" j N=n*H%H ` j N>*H%H f`p JEhg. KTOL|NuH<$H g&J0+|f2+ | f+H|| bnB4; N N$dBdBZB k N>Z`@(k ,g K*@pN LN>`" k N?` k N=` k N=p KGhg\ JN(L<Nu/ / &Hp"N(N$H g"Kp"Nz kN>%H f` J&_$_Nu/ $H g jN? JN($_Nu/ / &HpN(N$H f`p"K JNz J&_$_NuN(Nu/ / &HpN(N$H g>"KpNz SN>$ kN>%H kN>%H g "*g$f` J&_$_Nu/ $H g$ jN? jN? RN? JN($_Nu/ / &HpN(N$H f`p"K JNz J&_$_NuN(NuH0$Hg,Nl&R N(N&H f` "J KNz K`A$L Nu$gN(Nu?/ $H0* |fj 0*|f JB@NJ0*|gLQ@g`j j 6(h0(h@l6jo5C6(h0(h @l6jo*5C`$ j 6(Kjo5C0*hl5hp JEhgb$_6NuH8&H$I6H"ҁҀAB@4(|| bB4; N &&N4&& ( rHD@`"h 0)D@`rprhgp2(|@gZp`V"h (QifF )r||o|")t|JAo 4(|@gRAth[BfRA4@0`pJ@jB@rh g|lp2(|@g|lpBAt h gJ@o2A`2DAA4(@64(@7B4BhA7B4BhA7B82H ЀЁ62|g"0H$ԂԀ犸r(f82(S82(k`LNuH4O$H0jjBP0*jjBjG0j Sh J@oj0*j Sh hJ@oj0?j2j|?A4*jSB?B2*0/WR@NWV*H gPBoBo 2/W?A tj?B0<N/ "SCjAr$S0*NXO0<N MOL,Nu/ / O$H&I f2?+?+?+??+?+4+2pNO Nf`0O*H&I?@ 6E 2H ЀЁI4<lfpl fJCgl@ `l plgvHoHo HoHor B@NO0- o fNrmVg4-Rg>NI"Jp M,mN;R;|0-"KAarC MNQjrB@ MNI0,| gDJCgrlgN 0"K Ma`pl g M0N D`0 MN `pDlfrlg|tl f K0NIX6H"ҁҀ83`>p4H"ҁ҂sgps g23 | M"mf0N2H ЀЁ83Dfrl 0 M"mfN`plgr4, A M"mf0NOL|NuH+k0"KAN?7G0k2/koj8l oj:mJEgC JNQjNf2H ЀЁ s *P4*j MNl5@BjV#&>+?k0*4k0*6k4C20 KN|f7G7oO L,NuH>O$H86&j$ gbRAf4H ЀЂ63 I 849j69j89j::* JEkK42H ЀЁ<3 >+>4k4-k0<NMHnHnHnHVr 0NO`"L NN'0.gn0.mJ@jnn0.oTCf??.?.4r K0N\O`42H ЀЁ7 t???.?.?. K0r4NO HnHnHnHVr 0NO0.n`0<N j1G j1W2H ЀЁ7 OL|NuH0QO$H6rjVg"y"i\AN?`0"jAN?0*4W2*6oC J&jjNPOL NuH3(4H"ҁ҂ sf67H>+4H"ҁ҂23H ЀЁ2H$Ԃԁ7(?/?/?/4/r0+ KN\Ooo0/o??/?/4/r LB@N\OHoHoHo Ho r 0NO0/n 0<N j1D j1EO L`2 <2*@HNnT@>` <2*BHNnT@>?WKI 6+8+0/ |b@0;N 0@P`pJDg0*:k`nDg0*:k`^JDg0/k`NDg0/k`>JCg0*8k`.Cg0*8k`JCg0/k`Cg0/k0+oBkko7E0+oBkko7F0+D@2/DAAD@7@4+DB0/D@@DB7BSof JN?W20 JNUHTHU"L LNPOpUf0/Wg JNOL8+:*8<*:2jkp2)jkpil5i8pil5i:p2ij8JAokp2)ij:JAokpJ@g(j^ g4,H"ҁ҂64`BCHj*Hj(0*:C??*82*6C?C&A$4*42*"B@N`O0+D@2*H|AD@7@2+DA4*HBBDA7A JN0+Wfkf j8fj:g>jV?**?*(?*&?*$r0* NPONfpjVg C$ J&jjNTOLxNuH0&H$Irp INH62<@ JNH8J@j2<@ JpNH8JDoRCgNJCk2H ЀЁr2H ЀЁr K0a*4H ЀЂ22 K"kf0Np`B@L NuHO$H6* JCk8"ji:iG0<jTfxj8lp2*8DAAofj:l`4*:DBBoVHkHkHkHS0r NO0+gj2+gbHoHoHo Ho 0r NO0/f2/gC4 J(jjN`(I"TPI KN'C4 KN'0+g2+gK0;@:2+;A ;A0kS@;@ ;@2+kSA;A;AJDg(JDoUm pm 67D`mm0D@7@JEg,JEommpm7@7E`mm 0D@7@0mnP2-mnF M"T0)BAN0<N THhj"HCj Mr,T0.NXO0<N"K J(jjNO L|8Nu09*Ry*J@fBN#LN&AZ"P3T3P3R3V3XNuH6:x@D0 yHЀ2HN$мN(N g0C 1C1E1DBh "y1i BA1A1A1AL8NuN(NuNu/ / $HG,0+fa N:N#Z#^!|Wp"| RNAZ0*@ "P3@"yV3@"P3j"P3jpj"P3@7@rj"P3A7A K"y0)rN&_$_Nu/ / ETAZ0"yV3@"P3@"P3j"P3jG,0*"P3@7@2*"P3A7Ap"| jN j!j  Kr"y0)NN:&_$_NuH|lgn`|dgn4|gn|gW@gv|gt`z|ag\S@gXS@gT`h|e|b^@0;N>>>>>>>|m| b<@0;N `` `RH`HNuH>O><$H?BI40<ogNx",fHx"| |NXO)P ,g2/| @0`B<amJ<znD`/BD<am <znv`(<Am<Znxv `Jo< l x<`<@H JN&HH JN g"gd&HK ggB+BA U0(N˜C J,U0.N:/WTBg8 J42"U0)N2 U0(N˜C J,U0.N6/W`2 U0(N˜BC|fSC L42C"U0)NBA U0(N˜+g * g @N>%H * fdAVN>%H `R K%P0(H%@`@ j N?`4 j N? KN>%H `&j gr0* K"kfN`B@`p&_$_NuH8Gj `:*?j>* 8* ofԺ|fpjgrªgG*`G`pgGȄ`G8B@?@ ?@ ?|?| ?j pD?@rj ?At D?B#:HyR THhjC:A*T0-rNÌPO#:HyN THhjC:Ar&T0+NÌPO`BvEC|lv|oF|l|0@@2/AA4/g zjfr T0(NBA T0(N`r T0(NRr T0(Nn??42 T0(NXOpg^r T0(Nr T0(Nr T0(NBBBA T0(N?<BgpF?rC?4 T0(2NPOpjgHr T0(Nr T0(N`BA T0(NRpF?rC?4 T0(2NXOABA"T0)NpjO&L>O$onG:I0*f2*g867j0*jS@7@2*jSA7A K"T0)rN` KBA"T0)N T0(@j 62(Aj 7A4jSBh7B0+jS@h7@.6*4*CJCfn0(rN0/H|fBA T0(N``Br T0(N`0/H|_@fr T0(ND`2/I| T0(NDro T0(NnBA T0(NR0H@W@f,RSRkSkSk K"T0)NSSSkRkRk` K"T0)Nr T0(Nr T0(N2/p i| T0(NBBBA T0(NM&0H@S@g2IAUAg 4JBWBfv0H@W@fBA T0(N`2/p i| T0(N0=@=@ <2+=A=A=A0+=@=@2+=A=A N"T0)rN42/p i| T0(N0H@U@g 2IAWAfLpS=@=@ N<*oFj `^<* jo Th`J<* Th`"<*oFj `<* jo Th0* j Th@`<* Thj 4 o20apCf rjgz0H@S@gS@gS@g`TSTkUkUk`RSRkSkSkr T0(Nr T0(N`r T0(NnBA T0(NR K"T0)N KBA"T0)NpjOBL||NuH?>O$otG8I0*f2*g867j0*jS@7@2*jSA7A K"T0)rN` KBA"T0)N2*H ЀЁ R/HAt "oif0(|g8( `BD o h . g @Nl&`BC/j@ /@r||o|2/@IA|?A JAot ohgRo roBQAf4/BJ|_Bf T hlr`BA?A T:(4* @62* @7A4* j@SB7B2* j@SA7A0*4*@?@J@f$"/@¼f0(rN0/g ~pEG|E`>/BO||oBJGfBA T0(N``2|fr T0(N``r T0(N`2 T0(ND2 T0(NnBA T0(NR K"T0)NJCor`>+oRG`>koGRG4 W20a|>/Bp o|PVl|k` zjDkzjDk`ZzjDk`8zjDkk`:k` 0*Bk0*Ck`0*Bkk`0*BkkJDgr T0(N`r T0(N2IA| T0(N4JB|B2IA|0A T0(Nro T0(N Kr"T0)N4 KBA"T0)NpjO L2* ?A?A?A0* jS@?@?@2* jSA?A?A A"T0)rN4 KBA"T0)NpjOLNuH?>O$o^2*H ЀЁ*R*m &m KNl&0* jS@?@2*f,4*f& y?h&?h (?h *0( h?@,`?j&?j(?j*?j,po&o*po(o,0/,oo?o,0/,o(m@A&r"y0)N:* /j r y0(N"/ p| y0(NŠBA y0(N:./ |?2 y0(N˜0/ |?@J@f y?hIHoHo"L L2/*y0-NHPO"/ p| y0(N¦MHVHTHo$"L L*y0-N0O 0oo?j ?jrGg4*ooRERoUoToTo0/nn>"/ t|?AJAgSAgSAgDSAgl`0.o`^pjnorGgUo"L Ltr*y0-N´`D0*nn@o"L Ltr*y0-N´`"L LtBA*y0-N´0/n?|0H?@|o?| om*Ib>/Gl>p| KN,HKp gdn8g< gSMSD  g -gJDnJDo.  gf<`|D0H"K LNB4`pD@`<0H"K LNB4pǖG<`",JFo0H"K LNB4`pF@gF of&Bgr??/ L4"y0)2/ NĠ\O` L42/"y0)NoJCoomA&BA"y0)NpjO.L|NuH0$H6&I j 2|,|bA2;N4Tt0H"¼t$(ļ!A`0H"¼$(ļ!A`0Hr€t$(ļ!A`~0Hr?€$(ļ!A`` (?@!@`J (?!@`4 (?!@`$ (?!@`"K0 JN[`pL NuH8>O$o8GI0*f2*g867j0*jS@7@2*jSA7A K"T0)rN` KBA"T0)N0*2*@f0*H$ԂԀ R h *hrj 6tj 7B0* j7@2* j7A T0(rNBA T0(N`r T0(Nnpm g& T2(ARAkRSRkSk0(BANR`r T0(NR K"T0)N6* ThCj r0(NŠBA T0(N:HoHoCA,T2.0.NHPOr T0(N¦CAtBA,T0.N´BA T0(N˜pm f T2(ASAktk60(rN` K"T0)Nr T0(Nr T0(Nr T0(NBBBA T0(N8* j Thph@@A͘42"T0)Np jg>6 2* jRA7A7A4* jRB7B7B7j Kr"T0)N4 grr T0(N8*H TUDJDjBD0H/ UNl"d& U.B U4rj "T0)N W` U4rj "T0)N KBA"T0)NpjOL|NuH8$H&I PN((KBC`RLRCHA͚N gpCHN(N(HJCo 0H"KNB40$j LNug<]fRH |f |fRHNuRH`Nu/ / $H ja&Hf&j` Ka&H [g%K"K JaN&_$_Nu/ $HB%|͙aBj $_NuH8$H(I PNl&&jBD [g$0H"K RNJ@f30g<|f8`RDp| KN&H f8`RK`LNu// $HvQ%|͙` Ja20SCJ@n$_&NuH8YO(I$h &j2|gn|b:A2;N.,| g|gSAgSAg`pN(N&H gBrB@Nd * g @N>'H`A͙N>'H +g%K Ka`8` jN(`"L Ka` L'P'h7h`(`zBk . glrk gk r0+ W"W"ifNBk `H"L Ka`>"L KaN`4 kN( LN>'H fZA͙N>'H`FB@`pXOLNu/ / &o $H2` |fRQ ]f *|gRQRJf$HpQ6` [fRSRJf&_$_NuH>QO/H$I?@,o48>2H$Ԃԁ(HpW8tW9B9|9|9| )| 9I9I9oBERR<`>2H ЀЁ*oRR V [f4;B;B;| vR`p;@;@;|BC V?j0*jS@?@2*jSA?A`( U>?h 0(h S@?@2( h SA?A0j l> 0/j l?j 6* jSCol?C6* jSCol?C0on 2/ooB@`RAr"U0)N8+:+pg~BA?A>tD?BrE?A<* `N>* `:?G?F 0DS@?@ 2ESA?A UHhj"KA(U0,rNXOD0* j@mE0* j@m`B@?@>6*DJCorD?A0@j ?@`pj?@?j 0/o?@ 6*EJCorE?A0@j ?@ `pj?@?j 0/ o?@ UHhj"KAr(U0,NXOABA"U0)NpjOLO$H&j 2+0+NWV(H gz0,HЀ2,HN$&8+ : yhJEk47h 0H"N$A&"L y0( KN|7D `2+0+NWV,H f LNWp`|fp=| A&"N y0( KN|B@?@ ?@?@>rn?A ?Apn?@?@Hy͞/ "NAr*y0-NÌPO`^=| 0H"N$C VNz0D@H"N$"/0H"N$ VB@"Nd"L N*y0-N| NNW%Lpf 'L'|B@OL|8NuH8YO(I$h 2|gnSAg"SAgvWAg`| gv|gP`p N(N&H g*%@B. "gtĪf"A )f JaR@ff8`` WR%h`R Ja%L`F jN( Jal`4&L j !k1k`&j(S gr0+ L"lfN`B@`pXOLNuH8Iͦ0,RlJ@fEAh"R"i<0 "R0) "i$HBgBgBBBA0*"NXO6|lJ@j^Gͤ8IhpS|6H*t2g8$ g4pmTf, MNГp M,mNBgBgBBBA0*"NXO6`SfJCk |n0`AlpNpL|Nu/ B@ChA2io BPJ@g`R@2I$qRP" g J$_NuH<8(HEh6*`0H&r" g "L K*k0NSCJCjL<NuH8Eh6*`R0H&r" gDt kVg<kV4+ k$kV K"kNpkVgC$ K(kN`kVN(SCJCjLNuH&H <N(N$H <"KNz *g @N;%H gfN? *^g0 @N;%H^ f jN<`> j^N? j^N4 *Zg0 @N=n%HZ f jN< j^N< JN(` *Jg @N>%HJ *Ng @N>%HN5|V5|X5|BCGhIͦK`t0H"3fhko7C0H'"gtjTg"J A,A,npdN0*$ U5@$2*& U5A&0*( U5@(2** U5A* J`RC|mApNL|NuH8QO$H0* j$rjVgjV"jNJ@f Ja6J@jp`Gͦ *fAN;%H5C 0HAh!Ir0?A?ANIp y"hr0?A?A?**?*(?*&?*$?/4/2/ 0/ N2O 0N0NJCk0HAhBPOLNuH8$HjV"y@fBiFvd` J"jrN0* k2SCJAnJCn JaGͦ0*Xk"gCX A(A(lpeN j^N< jN< jZN= jJN? jNN?fBNBCGhI`00Hf$BTf0STJ@o 0H"3g JN(`RCToLNu?6( JCoNIBgBgBgBgr 0NPO6NuH8O$H&jI$A,pjVg>89h9h9h0+jDf 2+jFgjV7jD7jF`$01l1l1lpjTg2 y8 y9h  y9h  y9h`0*H|2*HA4FBkk0F@kkHlHl?+?+BgC"A"2*"B@4N`O0l y2(h Ao8.^ g @4(H"ҁ҂20l0,l y2( hAo9h 5kD5kF0+f2+gjVBkBk jVpjTg JN JN?,?,?,?r0* NPOpjVgPr@ y"h?|?PBo?j ?T ?l?l?lA&y0rNgjVpjTg JN JN?+?+?+?r0* NPOpjVgLr@ y"h?PBo?j ?S?k ?k ?kA&y0rNO$H?j &j(j^0*H|?@2*HA>F@k4/kFAk0kBF$ g0,H"ҁҀ<4>*$8*&6*(:**Ho Ho0+F??+BgCABB2*"B@N`Oo l0`0/ 6o l2`2/ :K Uh l0` U0( 6 Uhl2` U2(: Uhl0(`06 Uhl2(`2:Mh0.o?@2nCAl4`4nC>0.nE@l2` 2.nE8Vl0`0>nl2.`28 U0(h hS@Gl> U0( hhFDl8Ho Ho???CA42*"pN`Oo 0/o2/oWSAWoF?Ao 4o & g0:,H(؄؅H 2/ Uh9A8/FSD9D5o45o65o 85o :0+o o?@2+D@@l7@:+o W0+2DAAl7AHj*Hj(0/F??/2/F?C&A$4/2*"B@N`O0*"|gr jTfBC4/o 8+H 눐ЄD2HNn&jg5C>0/oBgBgBg?r NPO2/ H 눐Ё2+HNn&jBg5CB0/oBgBgBg?rNPOOL|NuH8QO$H0*(ybo`09b?@G0*"|g S2(o0*H|o?o(j:,BFJEo4H"ҁ҂>4804?@>`0<4H"ҁ҂tf\6toolg0D@80oWBF2H ЀЁ爼tl<42H ЀЁ99oo?C8G2H ЀЁ:4JEnzW9ovj*pj"g Shpj"g Sh0*"| g Sh *^g @4(H"ҁ҂牖p0*H|C@d`09@jVPOLNu/ $H2UAg` Jap`B@$_Nu/ / &HE\ g0 y2(6f4(8g RN `N RN N$&_$_NuH8(HE R0(6f 2(8fNB LpN\XO(@GJk ACS3g LN R0(6f 2(8fNp`D", ҬҬҼ LB@N R0(6f 2(8fN(k'R'| NB@LNuPmhm4hBl 0(h@mB@NupNu/ HyCpAN%XO$H gNJ@gA:pN$_NuH,YOIHWHoHoHTr B@NO0N*HNgV gRrmTgtm"f f$M`g6Nv`pmTf y"h<")4g M"mrN` p M$mNXOL4Nu/ / &HE R0(6g2(8g4(:f hN` KN&_$_Nu y hNNu y hXNNuH8&H"y0)Fgb$i@g(j Jp N`L yBhH`62H ЀЁ(kI lf K0N D$l p J(jNN 6jLNu/ / y2(`H ЀЁ h\A$h &j JpN&_$_Nu y hXNXNuAN"NuH>&HK y0(FfA(N"` y$h@gp(j JN`f yBhH`P2H ЀЁ(kI J0N D0,S@g S@gS@g` (l p L,lN`a`` MN"N 6jL|NuH"W#HJ0@|P62A|08` 6989 W(PpDH09@2HP9A ll9| l l9| 0,8D@L2, 6KAK9AtAH ЂЂЀN(N*H fp` W!M <C MNz mf$m *g M&@pNBmBm;C;D;|2E;|2,AH ЀЁG`xp0C JNzp""y KNz%K 0,@T@@m;D44j WNB@`TD4E0G"`XOL<NuH0$H6J@k8H"ҁҀ jhh@h "h &h & J0NLL NuH>$H6J@kH"ҁҀ&jI*l ,mZ)N$g"N k p"Nz0<n 9@ ` p""y k Nz k !mJBl 0+| f k "k "0 JNLL|Nu/ y$hX"R ig3| JN0* k JB@NL$_Nu?/ Ejjjjj y"h<6)pCgjpCgjpCgjpCgjpCgjp@Cgj JN"ư| fXBCpjg|pjg|pjg|pjg|pjg|pjg|@ y"h<3C$_6NuH0B@ANv&Jo.Ap"<0N,0N> y"h<3yE(&j^fH6+H$Ԃԃ43(H"ҁ҂23H ЀЁ634H ЀЂ7' JN&H g$p N(N& gC8p Nz KarJ@g` KL NuHO y&hX@f(k6(F0HЀЀN(N*H g2HҁM?|P?|0BC"y3CH` 2H ЀЁ4HԂ;(=(RCN 8j y2(Llk4HPHAhPXA?A 4(Nlk6H…0HBhR?B BC1CH`0HЀ25o ?A>6o |z`,2H ЀЁ>?tA0/2a~J@g:`TFp 4H"ҁ҂t gJEon SBh2H ЀЁ<4>H$Ԃԇ9(>49( kp( K0NL2H ЀЁ kp99 K0NLRCN 8j" MN( yBhJOLxNu/ y"hX Q$P gN$_Nu/ N4$H f N4$H g0* nrjTf JN$_NuH8$H6J@kH"ҁҀ&jIk?k k $,g "B k p"Nz0< lh 9@ `$p""y k Nz l "k #hJBl p l hTgk2+ 0 J"jfNLNu y hXNxNuH<$HI T0(Fn !JXa`` T&h@gp *k KN`H TBhH`62H ЀЁ(jI lf J0N D&l K"k NJ@f N 6jL<Nu/ y2(`H ЀЁ h\A$h JN$_NuH8$H(I&j g6+2JCo4+H"ҁ҂77C4H"ҁ҂ sf2|7I47I2`2H ЀЁ7s22H ЀЁBssA1| !|!L !lZ9CX J0a`9|XLNuH8&H$I6JCk(k2H ЀЁt0NL8,`2H ЀЁ842H ЀЁ父tf0H$ԂԀ0H"ҁҀ9(24(f9D0,2j9C49C22H ЀЁ9`2H ЀЁ929C2 SBh4LNuH<$H&I y@fh0Y@gU@g`@ yBhHBk`$2H ЀЁ(jI lf7|`ZN 6j`N2H ЀЁ(jI*l `& y*h@0Y@gU@g `Cp M$mN`Cp M$mNL<NuH8&H$II2|fgn6| gnUAg_AgFSAg`ޒ|gƒ|UgxSAg~`ƒ|g|bA2;Nv8@H"J Ka` J9h)h 9h9h`|)J`t)J`l)J`d KN`Z"J Ka`P"J Ka`F0 Ka`<0 Ka`20 Ka`("R KN~` Ka*` Ka` Ka `B@`pLNu/ $H P f jh` jh j2(p"jf JN$_NuH0$h&P6+ 8+ kfrC0HAHX@5@ppC4J@JXB5BtD2ABI5A5ArBE<>*`@0HEHX@4H"ҁ҂50@FH5REEfBERF2H ЀЁ>2JGf>*2`@0HEHX@4H"ҁ҂50@FH5REEfBERF2H ЀЁ>2|n` kfrC0HAHX@5@5@pvD4BCJ5BrrD0@AH5@BE<>*`@0HEHX@4H"ҁ҂56CFK5RFFfBFRE2H ЀЁ>2JGf>*2`@0HEHX@4H"ҁ҂56CFK5RFFfBFRE2H ЀЁ>2|nL NuH<$H"y0)6g2):g&j$ g kf(k ,g *@ KpN KN(B RN( JNpAN&Jo8 y"h<3Ap"<0N0N>` JNL<Nu/ y$hX"R ig3| Ja`0* k JB@NL$_NuA(p"@ "ByA1B33O"Nu/ Hz?<&NN\O$_Nu JgJgJgJgJg JgJgJfSHggggg ggf @NugfSHNuJgNug fC`Jg INuSHNu g<g8g4g0g,g(g$g ggggg ggf @Nu"HJgJgJgJgJg JgJgJf SNu"Jg JgJgJfSHSefB ANuSeg gb pNuJfpNupNu"SefBJgSf ANu/ / g($Ig"f&Hggg"J K`A&_$_Nu`H &/?<HNA\OJf 9g @ NJ@fp @LNuH0&gPR<e a g!CC "A`rG&S f. < a gj&@Ap !|'H&#A"P` )d I"Q f`rd ` #@#C"nAL Nuk |`3 J`/ oLQ d nf@axJg*`6C g,g"@ f` "/?<INA\OJj`p$_Nugp`/ &y g/ &S?<INA\O`&y g/ &S?<INA\O`&_NuH8$<CG g" c &@ f`(@ ,gb*"Ҩeg ` )H`p"@")Ө )H`>"@ gb" ҩeg`N"(ө`" "H" ҩf @"(ө" l eb&/ ?<INA\OJfQLNuP`Jg/bg2 4gf!Sf`f`!Sg"gH?LxH?LxH?LxH?Lx`H?Lx8H?LxH?LxH?LxH?LxH?LxpH?LxHH?Lx H?LH?SfvLx2|HgS@!!Q|gSA!Q`2 4gfSf`f`S"gH?LxHxLxHx(LxHxPLxHxxLxHxLxHxLxHxLxHxLxHx@LxHxhLxHxLxHxLHSfxLx2|HgS@ Q|gSAQ _Nu/$gSe40HB4 gxH_>"&(*,."B$B&B(B*B,BH~H~H~H~H~H~H~H~H~H~H~H~H~H~H~H~H~H~H~H`SfL||0HgS@!Q|gSAQ _Nu$jD BJjD$HBJBf"$HBJBf $jDNuHBЂ$jDNuHBЂ$jDNu$jD"BJjD$HBJBf4$HBJBfH@B@H@$ jDNuB@H@HB0@0H@0H@$ jDNu AH@r2B@tЀӁd҈рӁQF@$ jDNuHR???<NM\O$_NuHR/HP??<JNAO $_NuHRHP?<INA\O$_NuH>@NAO $_NuH>?NAO $_NuHR??<>NAXO$_NuHR?<NATO$_NuHR//HQHP??<KNAO$_NuHR?HP?<=NAPO$_NuHR?HP?<C4#H 222"2"<*`HQC4#H 22 W22"<.a"_2NuC4#H 2222"<+`HQ34#T"<,a"_2"o2Nu34#T"" #H o #H AZ#H$d5| psNB _0$_NuA00 r $<1|`RA00 !or $<1|`,ret`$C""r $<3|`C""3A2<$<`3r t`3rxt`3r t`HQHPABX0r $<aA8"_2"_2"o2"o2Nu3rwt`3rt`r3rjt`d3rt`VHQHPHr'taB"_2"_2Nu$<Hra$0(@Nu3rqt`3rt`Hrlt`3rt`#.tA4rpa#.Nu3rt`3rht`3rt`3rt`Hrnt`~#2A A 0"o ry$<aT#2Nu#2A 1A rm$<a&#2NuHRpNBT@$_Nu#6AZ#:3rfta#6#4:NuHQHP2<ta"_2"_2A8"o2" "o$o 24242422$ANuC*#H A #Hr&ta#4:#6NuC222BQC"$<3| r`2RBfr `4CH $<r`2RBfr`#:Ctr`2RBfrta#4:Nu/ #V#Z#^#b$_Nu USER SLIDER q d$"|ccTb'SKL P`ZACS 2.0 USER SLIDER (OK (C) 1991, 1992, 1993ACS pro 2.00Stefan BachertAutorS88q i)[i)x[9i ![i !x[????80 3gggg30 880????80 0 ````0 0 8Lh80???? 0'''' 0Ȧ80???? 0     080!!7 Hl7d @ @?xxp㇇ 8p<`ßp0 Ϗ<ZA  ǒ <o `  @vǪ  ACS 2.00 (c) 1991, 1992, 1993 Stefan Bachert0123456789ABCDEF \*.r UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD33333333333333333333333333333333XXx̸̘XXXXXXXXXXXXXXXXXXXXXXXXX|]  4lv `ZIISQj$UKLLNPQf::j:::;<??AVBJFrHIX42WVWWX * D >?=n===>>=>Z(N((@@DJ"j'\f`cqBs" vu%vi| z[>[2][ | Soll das ACCESSORY | >>%s << | gestartet werden?][JA| NEIN ][3][ | Kein Speicher| mehr vorhanden! ][ OK ][2][ Unbekannte GEM-Nachricht | erhalten.| ID = '%s'| Weiterhin berichten?][JA| NEIN ][1][| Modul konnte| nicht geladen | werden][ OK ][3][ Keine freie GEM-Fenster-ID | mehr vorhanden!| Abhilfe: ein offenes| GEM-Fenster schlieen.][ OK ][3][ Kein freier ACS-Fenster-| Einschub mehr vorhanden! | Abhilfe: ein ACS-Fenster| lschen][ OK ]PAPIERKORBOK-------------------- Aktionen ffnen ^O Schlieen ^UPulldown Mens Lschen ^D Beenden ^Q Fenster Nchstes ^W Optionen aus Liste ^LDas Ziehen des Neu-Symboles auf ein anderes Objekt erzeugt ein neues Objekt. Ein Doppelklick darauf erzeugt ein weiteres Fenster der Applikation.NEUInformationGenerischer DESKTOP des ACS 2.00 von Stefan BachertVerhaltenObjekte werden durch Ziehen auf den Papierkorb gelschtVerstecke ZeigerGrows/ShrinksFehler akustischZentriere DialogSmart RedrawAbbruch Info... ^I Vertikal ^T Modul laden.. ^M Horizontal ^Z ber mich... Verhalten... ^BModul nachladeny66q ҹ66q i)[i)x[Ii![i)x[Bi)!x[Bi ![i)x[\f[\f[ \f[\f[+\f[<\f[уvzvzvz҅c`pppppp1p1p1p1p1p1p1p1p1p1ppppppppբ\u 0 Hc@DDDDDDDDDDDDDDDL 8״7   H?UU" W*EU'U>JWU'w''}*UPUT'@'w'UAVwU_gVWUA?R 6 0 HZZ# 6 Z  Ѱ   $P   ә  E  6  6 6 6 6 6eftђvՊQ8 Պѡh$"!Ѻ"Պ %,'ӆ)`6*Պ,Ӯ$s\ A   : @:rR  A Ԛ Ԃ @:Z R  A   : @:B j  A    : @  :*Բ   @R @"  ^66'SKL2 NPQ`Z0ix1H(Jv1H(rrH(cAMDESKTOP.CFG4<T44r  $8n|$ & 2D"P   $&8 X :bl(D.6:n4  :L^ z  P(4:(TH0&0."$D2V$LL    & 4&( 4D"(H,0(H8<&F8H ",R8*   ($    L|hD<,( F@(2.6Z*:<0,>28, 2^N$@("0   J&8H@*<* "8(6&  $80     L        ,\*  & 0   0 $j.@ T  "4d  8<$,  * B$n@.02 ,<4B ~*2 & . $ 6<0B8t.&    <  . (~"$ J" @BD* :Xj"FD<z<   P"&B^&:D`V26  &BP4F 60RJ0N2&*&BF$&Bn$&B R>"t        "  4T",  & B`, ,F"& z &z *z(:2 l@&  2   jZP 82 "2,   *H(64V , ,>  F ,P0  @ X,P  B$J 4$ 2 X>N>  \:  6*R@" "<" "   < & *4$  ",2  $2 0"pZ&^F .$XV   H $"&, ( L > X"T4&B>@<   *D.R,<*J "X($*,j$$&$$ 4D  . .0 $ H6$ "<64 HRRR20 H            nH0 $ $ $ $ < $ < $ $ $ <0H0H0H0(:$P   $H"? 9Lg @N 9Pg @NNx?<LNAH 8O$o$?j?jI0/f2/g,>?jpWopooAr"T