Leserbriefe

Tastaturklick und GDOS-Treiber

Ich möchte mich mit zwei Fragen an Sie wenden:

1) Wie ist es möglich, die akustische Rückmeldung der Tastatur im eigenen Programm abzustellen?

2) Wo bekommt man einen GDOS-Druckertreiber für einen EPSON-kompatiblen A4-quer Drucker?

(Reto Schmid, Wallbach. Schweiz)

Red.: Zu Ihrer ersten Frage: Die akustische Rückmeldung läßt sich durch eine interne Betriebssystemvariable manipulieren. Diese Variable liegt an der Adresse $484 und heißt conterm. Die Bedeutung der Bits ist wie folgt:

Bit 0: Tastenklick ein(1)/ aus(0);
Bit 1: Tastenwiederholung ein(1)/aus(0);
Bit 2: Glocke bei der Ausgabe von CNTRL-G;
Bit 3: Einblendung der Kbshift()-Information in die Bits 24..31 in das Zeichen, das bei Cconin() zurückgegeben wird, einschalten(1).

Zu Ihrer zweiten Frage: Ein GDOS-Treiber für einen EPSON-kompatiblen A4-quer Drucker ist uns nicht bekannt. Sollte ein Leser einen solchen besitzen oder wissen, wo man einen solchen Treiber erwerben kann, möge er sich bei uns melden, damit wir diese Information weitergeben können.

GDOS-Problem

Herr Frank schreibt in seinem Artikel PREVIEW der Programmierpraxis 10/89 auf Seite 95, es gäbe Probleme mit dem Accessory, wenn GDOS resident sei. Das liegt nach meinen Erfahrungen mit GEM an einem Programmierfehler, der auch in professioneller Software (zum Beispiel SIGNUM!2) verbreitet ist. Es handelt sich darum, daß das Handle auch bei der Übergabe an v_opnvwk() einen definierten Wert haben muß, nämlich den der physikalischen Handle des Bildschirms. Dieser ist leider nicht immer, sondern nur meistens Null. Die richtige Programmierung können Sie Listing 1 entnehmen. Die Trennung dieses Handles soll zum Beispiel dazu dienen, daß man durch mehrfaches Öffnen virtueller Workstations Viewports für verschiedene Fenster programmieren kann, die alle eigenständige Parameter besitzen, so daß beispielsweise das Ändern des Linientyps nur in einem Fenster wirksam wird.

main()
{
    WORD ap_id, phys_handle, handle, i, d; 
    ap_id = appl_int();
    /* GEM-Applikation anmelden und ID holen */
    /* physikalisches (!) Handle des Bildschirms holen, bei GDOS nicht Null */
    phys_handle = graf_handle(&d,&d,&d,&d);
    /* wichtig!*/
    /* Parameter in work_in[] auf bestimmte Werte setzen */ 
    handle = phys_handle;
    for (i = 0; i < 10; work_in[i++] = 1); 
    work_in[10]=2;
    v_opnvwk(work_in, &handle, work_out);

/* ermitteltes Handle nutzen */

}

Listing 1

Icon-Editor gesucht

Ich habe ein Problem bezüglich der Funktion Load Data im RCS von Digital Research. Wenn ich ein Icon/Image edieren will, bekomme ich immer die Meldung, daß ich die Daten und/oder Maske von Diskette nachladen soll. Auch in der Anleitung zum RCS in ihrem Sonderheft Nr. 2 findet sich kein Hinweis auf ein derartiges Programm.

Meine Nachfrage bei einem ATARI-Fachhändler bezüglich eines Programms zum Edieren von Icons/Images führte zu keinem Ergebnis. Also entschloß ich mich, ein solches Programm zu entwickeln. Nachdem ich meine Bücher über GEM studiert hatte, mußte ich dieses Projekt jedoch vorerst auf Eis legen, da in keinem der Bücher der Aufbau einer derartigen Icon/Image-Datei beschrieben ist. Deshalb wende ich mich jetzt voller Hoffnung an Sie, da ich annehme, daß ich nicht der erste ATARI-User bin, der bei diesem Problem Rat sucht. Ich wäre Ihnen sehr dankbar, wenn Sie mir den Datenaufbau einmal erläutern würden. Dieser Datenaufbau wäre übrigens ein gutes Thema für eine der ST-Ecken in Ihrer hervorragenden Zeitung.

Sollte es in Ihrer umfangreichen Public-Domain-Sammlung bereits ein solches Programm geben, wäre ich für einen Hinweis darauf ebenfalls sehr dankbar. (Klaus R., Münster)

Red.: Vor dem gleichen Problem stand ich vor einigen Jahren, als ich mich zum ersten Mal mit Icons beschäftigte. Damals gab es auf dem ATARI noch keinen einzigen ICON-Editor (nach ein paar Wochen kam eine ‚ Hacker’-Version aus den USA).Deshalb schaute ich mich auf dem IBM-Sektor um. Dort fand ich im Entwicklungssystem zum GEM ein kleinen(!) Icon-Editor, mit dem ich zwar nicht arbeiten hätte wollen, der aber immerhin das RCS-Format eines Icons ausgab. Zu meiner Verwunderung war dies ein C-Sourcecode. der von dem Icon-Editor ausgegeben und auch vom RCS gelesen wird. Ich will diese etwas seltsame Methode bewußt nicht veröffentlichen, da ich sie nicht gerade als nachahmenswert erachte, zumal sie auf das Zeichen genau eingehalten werden muß. Des­halb gibt es wahrscheinlich von Digital Research keine Unterlagen darüber.

Sollten Sie dennoch Interesse daran haben (das Thema wäre übrigens nicht ergiebig genug für die ST-Ecke, obwohl die ST-Ecken 1/90 und 2/90 das Thema Icon anreißen), möchte ich Sie auf den Icon-Editor verweisen, der zum Anfang dieses neuen Jahres als Sonderdisk erschienen ist. Mit diesem Icon-Editor können Sie sich gleich mit vollem Elan in das Erstellen von Icons stürzen. Die Dateien, die zum Lesen des RCS ausgegeben werden und die das von Ihnen angesprochene Format haben, besitzen den Extender ‚*.icn‘. Übrigens liefert ATARI schon seit einiger Zeit im Rahmen ihres Entwicklungspakets einen Icon- Editor aus, den ich in Zusammenhang mit dem Wort ‚professionell’ lieber nicht beurteilen möchte. Auch gibt es inzwischen Resource Construction Sets mit eingebauten Icon-Editoren. die allerdings nicht gerade zum Erstellen der Icons animieren. Vielleicht kommt ATARI auf die Idee, unseren Icon-Editor ebenfalls mit an Entwickler auszuliefern oder darauf hinzuweisen. Ich hoffe, daß mit dem Icon-Editor auf der Sonderdisk endlich wieder Programme auf den Markt kommen, die schöne Icons sinnvoll und ausgiebig benutzen.

Defekte Maus

Bezugnehmend auf den Artikel „Erste Hilfe für die Maus“ unter der Rubrik Quicktips Ausgabe 3/90 habe ich eine Frage zum Thema Maus. Be­reits vier Monate nach Kauf meines 1040 ST hatte meine Maus einen Kabelbruch, was sich dadurch bemerkbar mach­te, daß der Pfeil nur nach oben lief. Da damals noch Garantie bestand, erhielt ich vom Händler eine neue Maus. Leider zeigt sich bei dieser Maus mittlerweile wieder das gleiche Problem. Von meinem Händler erfuhr ich. daß das Mauska­bel nicht als Ersatzteil erhältlich ist. Ist Ihnen eine Adresse bekannt, bei der man vielleicht doch ein solches Kabel erhalten kann?

Michael D. Bad Breisig

Red.: Normalerweise sollte ein Mauskabel nicht so oft bre­chen, vielleicht wird es unbeabsichtigt eingeklemmt. Für die Maus können Sie allerdings auch ein ganz normales Joystick-Kabel verwenden, das ist die preiswerteste Methode. Einen billigen Joystick können Sie bereits für unter DM 10,- erhalten. Diese Methode sieht zwar nicht hübsch aus, funktioniert aber ebensogut.

*

Bilddatenkonverter

Gar schlimm entsetzt hat mich der „Bilddaten-Konverter“ in der Programmierpraxis von Heft 3/90! Das Listing macht schwerwiegende, grundle­gende Fehler, es sei denn, man will ein zeit- und speicherfressendes Programm schreiben.

Fehler 1: Bildpunkte werden überaus verschwenderisch einzeln mit ihren Koordinaten ermittelt. Das sind im „Idealfall“ 4 Bytes (3, 4) und im ungünstigsten Fall 8 Bytes (543,210). Das Extremste, ein Vollbild mit 640x400 Punkten, wird in ein .LST-File von knapp 2 Megabytes (!) umgewandelt und das dauert „nur knapp“ 18 Minuten.

Fehler 2: Auch in Sachen Zeit ist’s grausig. Die Darstellung des 640x400er-Schwarzbildes dauert Minuten -ganz abgesehen von der Ladezeit der gut 28000 Zeilen Mergetext.

Eine bessere Methode zeigt die verbesserte Routine data in Listing 2.

Andreas Pirner, Berlin

PROCEDORE data
GET x1%,y1%,xr%,yr%,g$  !Ausschnitt in g$
OPEN "O",#1,"DATA.LST"
PRINT #1,"DO"   !DATA-Leseschleife
PRINT #1,"READ a$"  !Lesen,
PRINT #1,"EXIT IF VAL(a$)<0"    !fertig bei -1
PRINT #1,"g$=g$+MKL$(VAL("+chr$(34)+"&H"+CHRS(34)+"+a$))" !PUT zus.setzen 
PRINT #1,"LOOP" !Schleifenende
PRINT #1,"PUT 0,0,g$"   !Bild anzeigen
PRINT #1,"VOID INP (2)" !Tastendruck
'
g%=VARPTR(g$)   !Zeiger auf String
l%=LEN(g$)  !und die Länge
d$="DATA "
FOR i%=0 to l%-1 STEP 4 !In 4er Schritten
    a%=LPEEK(g%+i%) !Longpeeken
    d$=d$+HEX$(a%)  !an DATA-Zeile
    IF LEN(d$)<72 THEN  !Wenn kurz genug
        d$=d$+","   !Komma anhängen
    ELSE    !ansonsten
        PRINT #1,d$ !wegschreiben
        d$="DATA "  !und von vorne
    ENDIF
NEXT i% ! Schleifenende
PRINT #1,d$+"-1!    ! DATA-Ende-Kennung
CLOSE #1    !Datei schließen
RETURN

Listing 2


Links

Copyright-Bestimmungen: siehe Über diese Seite
Classic Computer Magazines
[ Join Now | Ring Hub | Random | << Prev | Next >> ]