Ports mit Turbo Pascal abfragen

Software-Entwicklung, Compiler, Interpreter, ...
Antworten
Benutzeravatar
sucram
Beiträge: 65
Registriert: 25.03.2015, 21:38
Wohnort: Niederrhein

Ports mit Turbo Pascal abfragen

Beitrag von sucram »

Hallo zusammen,

zur Zeit programmiere ich mit Turbo Pascal ein kleines Spiel für den Joyce. Aktuell unterstützt mein Programm als Eingabemedium nur die Tastatur. Da ich ein DK'Tronics Joystick und Sound Interface besitze, würde ich auch gerne die Joystickeingabe realisieren. Leider sind meine Versuche aber bislang gescheitert. Vielleicht weiß hier jemand Rat?

Unter Mallard Basic kann ich mit dem folgenden Programm den Joystick erfolgreich ansprechen:

Code: Alles auswählen

10 OUT 170,7
20 OUT 171,63
30 OUT 170,14
40 J=INP(169)
50 IF J=251 THEN  PRINT "links"
60 IF J=247 THEN  PRINT "rechts"
70 IF J=239 THEN  PRINT "unten"
80 IF J=223 THEN  PRINT "oben"
90 IF J=191 THEN  PRINT "Feuer"
100 GOTO 30
Ich habe versucht das kleine Testprogramm unter Turbo Pascal nachzubilden, leider wird aber stets der Wert 255 zurückgeliefert:

Code: Alles auswählen

Var
    Joy:   Integer;
    Feuer: Boolean;

Begin
    bios(170,7);
    bios(171,63);
    Feuer:=false;
    bios(170,14);
    Joy:=bios(169);
    write(Joy);
    Repeat
        bios(170,14);
        Joy:=bios(169);
        write(Joy);
        if Joy=251 then write('links');
        if Joy=247 then write('rechts');
        if Joy=239 then write('unten');
        if Joy=223 then write('oben');
        if Joy=191 then write('Feuer');
        if Joy=255 then write(Joy);  (* diese Zeile gegebenenfalls auskommentieren, da sonst laufend 255 ausgegeben wird *)
    Until Keypressed;
End.
Die Beschreibung zum Interface findet man hier:
http://www.cpcwiki.eu/forum/nc100-nc200 ... tach=13949
Leider enthält sie nur Beispiele in Basic und Maschinencode und nicht zu Turbo Pascal.


Viele Grüße,
Marcus
Benutzeravatar
bbock
Beiträge: 242
Registriert: 08.02.2015, 15:31

Re: Ports mit Turbo Pascal abfragen

Beitrag von bbock »

Hallo Marcus,

die bios-Funktion ruft meines Wissens eine Funktionsnummer mit einem Parameter auf, also bios(FNr, Param); das hat nichts mit einem Assembler-OUT zu tun. Wie man einen OUT-Befehl via Turbo Pascal erzeugen kann, habe ich gerade nicht parat. Ich werde aber nochmal recherchieren.

Viele Grüße
Bernd
Benutzeravatar
sucram
Beiträge: 65
Registriert: 25.03.2015, 21:38
Wohnort: Niederrhein

Re: Ports mit Turbo Pascal abfragen

Beitrag von sucram »

Hallo Bernd,

vielen Dank für den Hinweis. Inzwischen habe ich bereits die Lösung, wie ich die Basic Befehle OUT und INP nachbilden kann:

port[170] := 7;
port[171] := 63;
port[170] := 14;

Joy:=port[169];


Damit funktioniert es :-)


Viele Grüße,
Marcus
Antworten