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

  1. BEF2.KRS¢*************************************¢*                                   *¢*  >>  B E F E H L E  <<            *¢*                                   *¢*                    Teil 2...      *¢*                                   *¢*  (c) 1987 by Action! User Group   *¢*                                   *¢*************************************¢¢¢BYTE FUNC GETD  ¢--------------¢¢GETD ist eine Funktion und liest ein¢Datenbyte vom angegebenem Kanal.¢¢Syntax: A=GETD(7)¢¢(A muss BYTE Variable sein)¢¢liesst hier ein Byte von Kanal #7,¢also dem Kanal fuer die Tastatur,¢falls der Action! Compiler aktiv ist.¢¢¢CLOSE¢-----¢¢zum Schliessen von Kanaelen¢¢Syntax : CLOSE(kanal)¢¢¢OPEN¢----¢¢zum Oeffnen der IOCB Kanaele.¢¢Syntax: OPEN (KANAL,STRING,AUX1,AUX2)¢¢also z.B: OPEN (3,"D:FILE.*,4,0,)¢    oder: OPEN (3,"P:",8,0)   ¢    oder: OPEN (3,file,4,0)   ¢          wenn 'file' ein Bytearray¢          ist oder auf eine String-¢          konstante zeigt.¢¢fuer KANAL kann man eine Kanalnummer¢von 0-7 einsetzen(Achtung: Kanal 0/6/7¢werden meistens vom System benutzt!!!)¢Falls die Kanaele vor dem OPEN noch¢offen sind ,muessen sie vorher mit ¢CLOSE geschlossen werden.¢Fuer AUX1 koennen folgende Werte ein-¢gesetzt werden oder auch BYTE Var-¢iablen, die diese Werte haben:¢¢ 4 : NUR lesen¢ 6 : Directory lesen¢ 8 : NUR Schreiben / Auch fuer ¢     Druckerausgabe¢¢ >> 9 und 12 NUR fuer Files:¢¢ 9 : Schreiben/ ,aber an das be-¢     stehende File anfuegen¢¢ 12: Lesen und Schreiben (hier mit¢     NOTE und POINT PROCs arbeiten¢¢ AUX2 ist vom jeweiligen Geraet ab-¢ haengig. Beim Diskettenlaufwerk 0¢ Beim Screen ("S:") ist es die    ¢ Graphicstufe(geht aber besser ueber¢ die GRAPHICS Proc.¢ Beim Cassettenrecorder ("C:") be-¢ stimmt es die Pause zwischen den¢ Bloecken: 0=lange Pausen, 128=kurze¢ Pausen(fast Mode wie bei CSAVE)¢ Beim Drucker 820 von Atari ist 0¢ normal(wie auch bei den meisten ¢ anderen Druckern) und 83 ergibt¢ liegende Zeichen.¢¢¢XIO¢---¢¢zum Aufrufen verschiedener OS-Routinen¢¢Syntax:¢¢XIO(KANAL,0,KOMMANDO,AUX1,AUX2,string)¢¢Man beachte , dass der 2.Parameter 0¢sein muss.¢¢z.B.:¢¢XIO(2,0,254,0,0,"D:")¢¢formatiert die Diskette in LW#1 !!!¢ ¢KOMMANDO kann (wie auch AUX1/AUX2)¢entweder ein fester Wert, als natuer-¢lich auch eine BYTE Variable sein.¢¢Hier die Werte fuer KOMMANDO:¢                          ¢zuerst die ,die andere PROCs schon ¢sind:                     ¢¢ 3: Kanal oeffnen           OPEN¢ 5: Zeile einlesen          INPUTSD¢ 7: Zeichen lesen           GETD¢ 9: Zeile ausgeben          PRINTD¢11: Zeichen ausgeben        PUTD¢12: Kanal schliessen        CLOSE¢¢nun Diskettenorientierte Funktionen:¢¢32: Rename    :Files umbenennen¢    dann STRING z.B.:¢           "D:OLDNAME.EXT,NEWNAME.EXT"¢33: Delete    :Files loeschen¢35: Protect   :Files sichern¢36: Unprotect :File entsichern¢37: Point¢38: Note¢254: Formatieren¢¢¢¢NOTE & POINT¢------------¢¢NUR mit Diskette:¢Mit diesen PROCs koennen Sector und ¢BYTE innerhalb des Sectors ,aber nur¢innerhalb eines Files gelesen und be-¢stimmt werden ¢¢Syntax: NOTE(KANAL,SECTOR,SECTORBYTE)¢                     ^         ^¢                    CARD      BYTE¢                        POINTER¢¢¢Mit NOTE kann die Sectornummer und das¢Byte im Sector, auf dem sich der ¢Schreib/Lesekopf der Diskettenstation¢gerade befindet gelesen werden. ¢Normalerweise wuerde dies ja ueber ¢eine FUNCtion gehen, aber es werden¢3 Bytes benoetigt: Eine CARD fuer den¢Sector und ein BYTE fuer das BYTE im¢Sector. Deshalb muss NOTE eine PROC¢sein und die Variablen, in denen nach¢Aufruf von NOTE die Sectornummer/Byte¢stehen soll muessen POINTER sein. Das¢wird aber auch aus der Demo er-¢sichtlich.¢       ¢Syntax bei POINT:¢¢ POINT (KANAL,SECTOR,SECTORBYTE)¢ ¢Hier duerfen SECTOR bzw. SECTORBYTE¢keine POINTER sein, da diese ja nur¢zur Angabe des Sectors dienen¢¢Aber nun zum Demoprogramm ,aus dem¢alles ersichtlich sein sollte:¢¢¢; note & point demo¢¢CARD POINTER SECTOR¢BYTE POINTER SECTORBYTE¢CARD STARTSECTOR¢BYTE STARTBYTE,CONSOLE=53279¢¢PROC NOTEDEMO()¢BYTE A¢¢GRAPHICS(0)¢PRINTE("Dieses Programm zeigt, welche") ¢PRINTE("Sectoren ein File belegt")¢PUTE()¢PRINTE("Um auf den Anfang des Files zu")¢PRINTE("'zeigen' (POINTen) >START< Taste")¢PUTE()¢PRINTE("Irgend eine Taste zum Start")¢¢A=GETD(7)¢¢CLOSE(2)¢OPEN(2,"D:*.*",4,0) ; IRGENDEINFILE¢                    ; OEFFNEN¢¢ NOTE(2,SECTOR,SECTORBYTE)¢  STARTSECTOR=SECTOR^¢  STARTBYTE=SECTORBYTE^¢¢DO¢ A=GETD(2)¢ NOTE(2,SECTOR,SECTORBYTE)¢¢print("Sector : ") printc(sector^)¢print(" und Byte ")¢               printb(Sectorbyte^)¢print(" inhalt ") printbe(A)    ¢¢IF CONSOLE=6 THEN  ; WENN STARTTASTE¢¢   POINT(2,STARTSECTOR,STARTBYTE)¢FI¢¢until EOF(2)=136 ; bis File zuende¢od¢return¢¢-----------------------------------¢¢¢Es geht weiter mit :¢¢¢            BEF3.KRS¢¢