home *** CD-ROM | disk | FTP | other *** search
/ Action! Club Magazin 3A / Action_Club_Magazin_3_1987_Action_User_Group_Side_A.atr / scopyanl.txt < prev    next >
Text File  |  2023-02-26  |  3KB  |  2 lines

  1.  ✓áááááááááááááááááááááááááááááááááááá
  2. ¢ á                                    á¢ á                                    á¢ á    WIR SCHREIBEN UNSER EIGENES     á¢ á                                    á¢ á      C O P Y  P R O G R A M        á¢ á                      in Speed-Basicᢠèááááááááááááááááááááááááááááááááááááꢢ¢¢Heute heisst es also:¢¢Wir schreiben unser eigenes Copy Pro-¢gramm.¢¢Das Programm soll wie ober schon er-¢waehnt in Basic sein. Man hat sicher¢schon oft erlebt, dass man mal schnell¢ein Programm kopieren moechte. Dazu¢moechte man das eingeladene Speed/Turbo¢Basic aber nicht mit DOS verlassen,¢da sich der Interpreter vom Dos nicht ¢ohne Neuladen aufrufen laesst.¢Deshalb ist es sinnvoll, eine "COPY"¢in Basic zu haben.¢Das Programm ist unter >SCOPY.WSB<¢auf der Diskette gespeichert und ist¢LISTbar.¢Zur Bedienung:¢¢Man muss fuer Source-Filespec den¢Geraetenamen+filename angeben.¢z.B.: "D:FILE.EXT"¢¢Oder man tippt "*"+RETURN dann erhaelt¢man die Directory von Laufwerk #1.¢¢Hat man dann das Filespec eingegeben,¢so versucht der Computer das Programm¢in den Speicher zu laden.(Fehler-¢meldungen werden entsprechend ausge-¢geben.)¢¢Nach erfolgreichem Laden kann man¢entweder nur RETURN druecken, dann¢wird das File unter demselben Filespec¢gespeichert(hier sollte aber die DISK¢gewechselt werden)¢Oder man tippt ein neues Filespec ein.¢Auch hier kann man mit "*" wieder die¢Directory listen. ¢¢Kommen wir aber nun zum eigentlichen¢Programm:¢¢Zunaechst wird ein moeglichst langer¢String dimensioniert.(hier 32000 bytes)¢Dann kommt der ganze Kram mit der Ein-¢gabe des Filespec u.s.w.¢Dann wird Kanal #3 fuer diesen filespec¢geoeffnet.¢Und nun kommt uns der BGET Befehl sehr¢zu Hilfe:¢¢Mit BGET #3,ADR(D$),MAX wird das File¢in D-String geladen(Variable MAX ist¢32000).¢¢Nun muss man sich bewusst machen, dass¢das File nicht groesser laenger als  ¢32000 bytes sein kann. Ist dies der ¢Fall , so wird nach BGET kein Fehler¢ausgegeben. Ist das File aber kleiner¢(und das soll es ja sein), so wird¢Error 136 ausgegeben. (136 bedeutet¢End of File...heisst ja,dass das File¢zuende ist)¢Dieser Fehler wird natuerlich mit¢dem TRAP Befehl abgefangen.¢Ist der Fehler 136 ,so muss man jetzt¢nur noch wissen, wie lang das File¢ueberhaupt ist, das man geladen hat.¢¢Die Ein-/Ausgabe erfolgt ueber sog.¢IOCB's (Input/Output Control Block)¢In diesen Blocks wird auch die Laenge¢des zu ladenden, bzw. zu speichernden¢Files angegeben. Der BGET Befehl hat¢hier die Laenge 32000 angegeben.¢Ist nun aber ein File kuerzer als¢die angegebene Laenge ,wird der¢Error 136 zurueckgegeben(an Basic) und¢in den Addressen fuer die Laenge steht¢nun, wieviel Bytes geladen wurden.¢Die Addresse fuer Kanal 0 ist $348¢(ICBLEN). Jeder Kanal hat 16 solcher¢Control Bytes. Also muessen fuer Kanal3¢zu $348 noch 3*16 Bytes addiert werden,¢was am Anfang des Programms ja auch ¢passiert.¢¢¢Dies ist nur eine kleine Demonstration,¢wozu man die IOCB's benutzen kann. Wer¢darueber mehr wissen moechte, der¢moege dies dem Club irgendwie mitteilen.¢¢¢****************************************¢¢