home *** CD-ROM | disk | FTP | other *** search
/ Action! Club Magazin 3B / Action_Club_Magazin_3_1987_Action_User_Group_Side_B.atr / global.krs < prev    next >
Text File  |  2023-02-26  |  4KB  |  1 lines

  1. GLOBAL.KRS¢*************************************¢*                                   *¢*  GLOBALE                          *¢*           und                     *¢*               LOKALE              *¢*                      Variablen    *¢*                                   *¢*************************************¢¢¢¢¢¢¢Globale Variablen sind die Variablen,¢die von jeder PROC und FUNC aus¢erreichbar sind. Die globalen werden¢ganz normal am Anfang eines Pro-     ¢grammes definiert oder nach einem¢MODULE Befehl, doch dazu spaeter¢mehr.¢¢Lokale sind Variablen die innerhalb¢einer PROC oder FUNC definiert¢sind. Diese sind dann auch nur in ¢dieser PROC erreichbar.¢Die Parameter sind auch lokale V.,¢denn sie sind ja auch nur inner-¢halb der jeweiligen PROC erreichbar.¢¢Wie die Parameter definiert werden,¢ist aus den obigen Beispielen (PROCs)¢ersichtbar.¢Die lokalen Variablen werden direkt¢hinter dem PROC+name mit Parameter-¢definition vereinbart: z.B.:¢¢ PROC ZAPPER(BYTE NUM,CARD ATARI)¢ BYTE LOKALE CARD XE ; hier lokale¢                     ; Variablen¢ .¢ .¢ .¢ .¢ RETURN¢¢Die lokalen V. dienen der Uebersicht-¢lichkeit, denn sie werden nur dort¢definiert, wo sie auch wirklich¢gebraucht werden. Man koennte statt¢der LOKALEN ja auch GLOBALE nehmen.¢¢PROCeduren intern:¢¢Die Proceduren werden (compiliert)¢mit "JSR" aufgerufen. "JSR" ist ¢der "GOSUB" Befehl in Maschinen-¢sprache.(Jump to SubRoutine)¢         ^       ^  ^¢¢Wie man weiss, muss ein Unterprogramm¢mit einem "RETURN" enden.Zufaellig¢lautet auch in Action! diese Anweis-¢ung "RETURN". Compiliert ist dies¢ein einfaches "RTS" (ReTurn from¢Subroutine)          ^ ^¢^¢¢PARAMETER intern:¢¢Die Parameter werden BYTE-weise¢uebertragen:BYTE benoetigt 1 BYTE,¢CARD und INT 2 Byte.¢¢Hat eine Prozedur z.B: eine BYTE und¢eine danache eine CARD Variable und¢werden bei dem Prozedur-aufruf zu-¢erst die CARD und dann die BYTE¢Variable uebergeben, so hat das¢BYTE Parameter nach dem Aufruf das¢LSB (Das 1. BYTE der CARD V.) und¢das CARD Parameter die anderen Bytes¢in Reihenfolge.¢¢z.B:¢¢ PROC P_DEMO(BYTE B,CARD C)¢¢  PRINTBE(B)¢  PRINTCE(C)               ¢ ¢ RETURN¢¢ PROC AUFRUF()¢¢  P_DEMO(1,256)¢  P_DEMO(256,1)¢            ¢ RETURN¢¢¢Der MODULE Befehl:¢¢Der allgemeine Programmaufbau ist¢schon einmal erklaert worden.Hier¢nochmal:¢¢1. Variablenvereinbarung (globale)¢2. Prozduren¢       .¢       .¢       .¢¢Man erkennt, dass man nur einmal¢in einem Programm GLOBALE Variablen¢definieren kann. Mit MODULE ist es¢aber mehrmals moeglich:z.B.:¢¢   Variablenvereinbarung (globale)¢   Prozeduren ¢¢MODULE¢¢   Variablenvereinbarung (globale)¢   Prozeduren ¢¢MODULE dient also dazu, um Beispiels-¢weise zwei Programme zu einem zu¢machen oder Programmteile, wenn ¢mehrere Programmierer zusammen-¢arbeiten, zusammenzufuegen.¢¢Die globalen Variablen ,die nach¢einem MODULE definiert werden,¢koennen natuerlich nicht in PROCs¢verwendet werden, die VOR dem¢MODULE stehen.¢¢MODULE ist eine sogenannte¢¢¢         COMPILERDIREKTIVE.¢¢¢So eine COMPILERDIREKTIVE hat nicht¢auf den Programmlauf Auswirkungen,¢sondern nur waehrend des Compilierens¢MODULE verannlasst den Compiler also¢nur neue globale Variablen zu ver-¢einbaren.¢¢Ein Beispiel:¢¢¢BYTE XPOS,YPOS¢¢PROC LINE(BYTE X0,Y0,X1,Y1)¢ PLOT (X0,Y0)¢ DRAWTO (X1,Y1)¢RETURN¢¢MODULE ; ***************************¢¢BYTE I¢¢PROC MAKE_DEMO()¢¢FOR I=0 TO 79 STEP 2¢ DO¢  LINE(0,0,159,I)¢ OD¢RETURN¢¢MODULE ; ***************************¢¢BYTE KEY¢¢PROC MAIN()¢        ¢ GRAPHICS(7)¢ COLOR=1¢ MAKE_DEMO()¢¢ PRINTE ("Bitte Taste druecken")¢ KEY=GETD(7)¢RETURN¢¢¢Die einzelnen Befehle (PLOT,DRAWTO)¢duerften dem aufmerksamen Leser nicht¢entgangen sein. Sie funktionieren¢genauso wie in Basic. Nur ist die¢Syntax anders... Aber das sieht man¢ja.¢¢Der Kurs geht weiter mit :¢¢¢            FUNC.KRS¢¢