home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
rtsi.com
/
2014.01.www.rtsi.com.tar
/
www.rtsi.com
/
OS9
/
OSK
/
EFFO
/
forum3.lzh
/
BRIEFE
/
brief.hannemann
< prev
next >
Wrap
Text File
|
1988-01-22
|
6KB
|
119 lines
Dieter Hannemann
Ringstra▀e 12
6231 Schwalbach/Ts.
Tel.: 06196/81549
Hallo OS-9-User,
Leider habe ich momentan nicht sehr viel Zeit, mit OS-9 zu arbeiten.
Bisher hat es zur Erstellung einerBoot-Disk und einer C-Work-Disk gelangt.
Beide werden mittels eines Procedure-Files generiert, so da▀ eine
Anpassung bzw. Einbindung neuer Treiber, Bibliotheksmodule etc. keine
Arbeit mehr bereitet. (Kostet nur etwas Wartezeit) Dabei gab es allerdings
eine Reihe von Problemen:
1) Druckertreiber: Um endlich auch die Umlaute auf Papier zu bekommen,
wollte ich den Treiber um eine Konvertierungstabelle erweitern (Σhnlich
wie im letzten Forum Deine Erweiterung, Michael, nur kleiner). Dieser
neue Treiber lie▀ sich auch problemlos compilieren und linken, bei
Ansteuerung des Druckers verabschiedete er sich aber fⁿr immer. Ein Versuch
mit dem Original (OS9-Plus-DRIVERSOURCES-mth_par.a) ergab, da▀ nach meiner
Methode dieser auch nicht funktionierte. Vorgegangen bin ich dabei wie folgt:
- r68 mth_par.a -o=mth_par.r
- l68 mth_par.r -l=/DD/LIB/sys.l -o=/d0/DRIVER/mth_par
Fehler: load p, load mth_par und iniz p liefen ohne (erkennbaren) Fehler
Sobald jedoch ein Zeichen zum Drucker gesendet wird, wird keine Eingabe (auch
kein Break) mehr von der Tastatur angenommen. Lediglich die Terminal-
umschaltung wird noch ausgefⁿhrt. Jedes andere virtuelle Terminal hat
sich aber auch verabschiedet. Man kann also zwischen den Terminals hin-
und herschalten, mehr geht aber nicht! (Sogar der Cursor ist weg und
das gesendete Zeichen kommt auch nicht am Drucker an)
Wo ist der Fehler und warum blockiert er gleich alle Terminals?
<<< Der Fehler liegt im Aufruf des Linkers. Der fⁿr den Druckertreiber
zustΣndige Filemanager SCF m÷chte nΣmlich im Variablenbereich des Treibers
auch noch ein paar (wichtige !) Informationen ablegen. Dazu mu▀ natⁿrlich vor
den treibereigenen Variablen entsprechend Platz geschaffen werden. Dies
geschieht durch die Linkerzeile
- l68 /DD/LIB/scfstat.r mth_par.r -l=/DD/LIB/sys.l -o=/D0/DRIVER/mth_par
^^^^^^^^^^^^^^^^^
In scfstat.r wird nΣmlich genau der vom SCF ben÷tigte Platz reserviert.
Wird dies unterlassen, so "teilen" sich Treiber und SCF die Variablen -
was zu allen nur denkbaren Effekten fⁿhren kann (ein Systemabsturz ist
dabei noch das harmloseste).
Allgemein: in den entsprechenden makefiles kann man alle ▄bersetzungsvorgΣnge
nachlesen - eine intensive BeschΣftigung mit diesem mΣchtigen Utility lohnt
sich sowieso (auch wenn oder gerade weil es nicht ganz einfach ist ...)
Au▀erdem gibt es jetzt (im Update) ja Druckerkonvertierungstabellen, wodurch
der Treiber nicht mehr geΣndert werdenn mu▀ ! >>>
2) WΣhrend des Experimentierens am Punkt 1) gab es nach
- load /d0/DESC/p
den Fehler: "Error #000:214 (E$FNA) File not accessible"
Mit - chd /d0/DESC
- load -d p
funktionierte es dann.
Soll das so sein?
<<< ja - load geht normalerweise davon aus, da▀ es ein Programm laden soll.
Bei einem Programm ist das Execution-Attribut gesetzt, und so versucht es
load dann auch, das File mit diesem Attribut zu lesen. Deskriptoren und
Treiber werden aber normalerweise ohne dieses Attribut generiert (schlie▀lich
handelt es sich ja auch nicht um ausfⁿhrbare Programme), so da▀ es eine
Attributsverletzung gibt. Um trotzdem diese Files laden zu k÷nnen, gibt es
die '-d' Option im load. Damit k÷nnen dann auch nicht ausfⁿhrbare Module
geladen werden. In Deinem Fall hΣtte es also auch gleich
- load /D0/DESC/p -d
getan, ein 'chd' ist nicht notwendig. >>>
3) Fehler im emacs?
Wenn ich vom emacs die Shell aufrufe (egal ob mit i-shell oder
shell-command), so kann ich in der so generierten Shell problemlos
arbeiten. Der Versuch, in den emacs zurⁿckzugelangen (mit ESC), fⁿhrt
nach 3-4 Sekunden zu der Fehlermeldung: "Unknown terminal type Gepard".
Dabei befindet sich Termcap sowohl in /d0/SYS als auch /dd/SYS. Es wird auch
gar kein Laufwerk mehr angesprochen. Hieran kann es also nicht liegen.
umacs funktioniert unter gleichen Bedingungen ohne Probleme.
Ebenso wird nach dieser Fehlermeldung mit "em" der Editor ohne Probleme
aufgerufen.
<<< Auch gemerkt ? Der Fehler ist in der neuen Version nicht mehr vorhanden >>>
4) Tastenbelegung: die Tastendefinition im emacs mit .emacsrc ist zwar
ganz sch÷n, aber leider kann man sie nur mit Funktionen des Editors
belegen. Wie kann ich beliebige Zeichenfolgen auf eine Taste bringen?
(Du hattest diese Frage im vorigen Forum schon einmal beantwortet:
sende $1c Taste Zeichen $00. Aber wohin senden und wie??)
<<< einfach 'auf den Bildschirm' senden - z.B. mit
putchar('\x1c'); /* Definitions-Leadin */
putchar('\x80'); /* Code $80 ist die Funktionstaste 1 */
puts("Hallo"); /* Text */
putchar('\x00'); /* Endekennung */ >>>
Desweiteren habe ich festgestellt, da▀ sich bereits jetzt im Forum die
Antwort auf eine Vielzahl von Fragen finden lΣ▀t. Nur das Suchen in den
Briefen ist etwas aufwendig; besonders wenn man etwas bestimmtes sucht.
Deshalb habe ich alle Fragen und Antworten in einem File zusammenkopiert.
Man mu▀ zwar immer noch suchen, aber nur in einem File, da▀ zudem nichts
anderes enthΣlt. Wer Interesse hat, kann mir gerne eine Diskette schicken.
(Die Fragen sind allerdings nicht nach Themengebieten geordnet, sondern
chronologisch! Jede Frage beginnt aber mit "@- ", so da▀ man relativ
schnell von Frage zu Frage kommt, auch wenn die Antwort etwas lΣnger ausfΣllt.)
<<< Vielleicht sollte man das zu einer stΣndigen Einrichtung machen - schicke
doch Deine Sammlung jeweils zum nΣchsten Forum ein ! >>>
Zum Schlu▀ noch eine kurze Bemerkung zum Update-Vertrag: 80 DM finde ich
in Ordnung. Zwar nutze ich den Rechner nur privat, aber wenn man schon
einmal ein "Standard-Betriebssystem" hat, so sollte es auch auf dem
aktuellen Stand gehalten werden. Und umgerechnet 10 DM (gro▀zⁿgig) sind
meiner Ansicht nach auch nicht zuviel.
<<< finde ich auch ... >>>
Bis zum nΣchsten Forum,
DIETER