![]() |
ENGLISH VERSION |
|
![]() |
Links | | | Forum | | | Kommentare | | | News melden |
![]() |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
![]() |
amiga-news.de Forum > Programmierung > Execute() aus dos.library unter AmigaBasic (AmigaOS1.3) | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
-1- | [ - Beitrag schreiben - ] |
09.02.2025, 23:25 Uhr PouvaStart Posts: 5 Nutzer |
Guten Abend in die Runde, ich bin völlig neu hier im Forum, da ich eine Frage habe: Ich möchte ein Programm unter dem Original AmigaBasic (AmigaOS 1.3) schreiben, welches mittels dem Execute()-Befehl der dos.library ein Programm startet (PlayFile, um genau zu sein). Ich habe schon alles probiert, aber ich weiß nicht genau, wie ich beim Execute-Befehl dem Programm PlayFile das 8svx-Sample übergeben kann innerhalb des Execute-Befehls. Ich wäre um jede Hilfe dankbar. Beste Grüße, Michael P.S.: Und nein, ich möchte keine andere Programmiersprache verwenden, nur AmigaBasic. Es geht um ein Kunstprojekt. [ - Antworten - Zitieren - Direktlink - ] |
10.02.2025, 14:43 Uhr thomas Posts: 7719 Nutzer |
Execute bekommt drei Parameter: - die Kommandozeile - ein Eingabefenster - ein Ausgabefenster Die Kommandozeile ist genauso aufgebaut, wie du sie in einem CLI-Fenster eingeben würdest. Also vermutlich playfile dateiname.8svx -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Antworten - Zitieren - Direktlink - ] |
10.02.2025, 17:50 Uhr PouvaStart Posts: 5 Nutzer |
@thomas: Guten Abend, vielen Dank für Deine Antwort. Ich habe es eben einmal probiert, also mit x = Execute(PlayFile sound, 1, 1) 1 ist die ID des Fensters, welches ich im Code öffne. Setze ich den Befehl "PlayFile sound" in Anführungszeichen, erhalte ich einen "Type mismatch" - Error, ohne Anführungszeichen einen "Syntax error". Beste Grüße, Michael [ - Antworten - Zitieren - Direktlink - ] |
10.02.2025, 18:46 Uhr FlynnTheAvatar Posts: 49 Nutzer |
@PouvaStart: Systemroutinen brauchen C-Strings, keine AmigaBasic Strings. Der richtige Aufruf wäre: DECLARE FUNCTION Execute% LIBRARY LIBRARY "dos.library" x% = Execute%(SADD("PlayFile sound" + CHR$(0)), 0, 0) Und der Aufruf braucht DOS-File-Descriptors (BPTRs), die bekommst du nur, wenn du mit xOpen& ein neues Fenster öffnest. 1 geht gar nicht. Wenn 0 verwendest, dann meinst, es gibt keinen Input oder Output. [ Dieser Beitrag wurde von FlynnTheAvatar am 10.02.2025 um 18:49 Uhr geändert. ] [ - Antworten - Zitieren - Direktlink - ] |
10.02.2025, 19:12 Uhr PouvaStart Posts: 5 Nutzer |
@FlynnTheAvatar: Super, habe den Execute-Aufruf genau wie so geändert, nun wird der Ton abgespielt ... Input und Output brauche ich nicht. Das Problem ist aber nun, dass das Programm nicht weiterläuft, d.h. egal was nach dem Execute-Befehl kommt, es wird nicht ausgeführt. Es lässt sich aber auch nicht stoppen oder Basic-Fenster schließen. Hängt das damit zusammen, dass ich ein Fenster mit den AmigaBasic-Befehlen geöffnet habe? Vielen Dank! [ - Antworten - Zitieren - Direktlink - ] |
10.02.2025, 20:10 Uhr FlynnTheAvatar Posts: 49 Nutzer |
@PouvaStart: Laut Autodoc sollte der Execute-Aufruf zurückkehren, wenn der ausgeführte Befehl fertig ist. Spielt der Sound nur einmal, oder länger/in einer Schleife? [ - Antworten - Zitieren - Direktlink - ] |
10.02.2025, 20:15 Uhr PouvaStart Posts: 5 Nutzer |
@FlynnTheAvatar: Genau einmal, wie ich das auch so wollte. [ - Antworten - Zitieren - Direktlink - ] |
11.02.2025, 08:08 Uhr FlynnTheAvatar Posts: 49 Nutzer |
@PouvaStart: Okay, das Problem ist, dass die meisten Programme einen Output brauchen. code:DECLARE FUNCTION Execute% LIBRARY DECLARE FUNCTION xOpen& LIBRARY LIBRARY "dos.library" win$ = "CON:20/20/400/100/Output" + CHR$(0) cmd$ = "playfile sound:" + CHR$(0) out& = xOpen&(SADD(win$), 1005) e% = Execute%(SADD(cmd$), 0&, out&) xClose(out&) Dann sollte das Basic-Programm weiter gehen. [ Dieser Beitrag wurde von FlynnTheAvatar am 11.02.2025 um 08:31 Uhr geändert. ] [ - Antworten - Zitieren - Direktlink - ] |
12.02.2025, 22:29 Uhr PouvaStart Posts: 5 Nutzer |
@FlynnTheAvatar: GANZ wunderbar! Es funktioniert. Vielen Dank, Du bist ein Schatz! Mich stört zwar, dass dann da das CLI-Fenster rumlungert, aber ich habe das jetzt so gelöst, dass es nur 1x1 Pixel groß ist. Das stört nicht weiter! VIELEN herzlichen Dank nochmals. [ - Antworten - Zitieren - Direktlink - ] |
-1- | [ - Beitrag schreiben - ] |
amiga-news.de Forum > Programmierung > Execute() aus dos.library unter AmigaBasic (AmigaOS1.3) | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
![]() |
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2025 by amiga-news.de - alle Rechte vorbehalten. |
![]() |