Ich habe nun das Thema von hier: printfox am 1581 bzw auf d81 ausgelagert.
Im verlinktem Thread geht es darum, Printfox mit einem 1581-Laufwerk zu verwenden, bzw. Printfox von anderen Laufwerksnummern zu starten, und zu benutzen.
Angeregt durch die Anfrage von Goodwell , Printfox unabhaengig vom fest eigestelltem Laufwerk 8 zu benutzen, habe ich nun eine Version 1.3 von Printfox erstellt.
Was wurde gemacht:
1. Der Printfox-Lader auf der Diskette wurde angepasst.
Dazu wurde der Code so abgeaendert, das nun nicht mehr vom voreingetelltem Laufwerk 8, sondern von dem Laufwerk welches in der Speicherstelle $BA hinterlegt geladen wird.
2. Die Programme "SETUP", und "FARBEN" wurden von Goodwell angepasst.
3. Die Laderoutinen im Hauptprogramm wurden von Stephan Scheuer angepasst.
Nun wird auch im Hauptprogramm von dem in der Speicherstelle $BA hinterlegtem Laufwerk geladen und gespeichert.
4. Die Funktion < C= D > wurde angepasst.
Damit ist es nun moeglich, die Laufwerksadresse neu einzustellen.
5. Die Laufwerksanzeige wurde mit eingebaut.
Es wird das aktuelle Laufwerk in der ersten Zeile angezeigt.
6. Meldetexte wurden hinzugefuegt.
Es werden entsprechende Meldungen ausgegeben.
Es wurden neue Texte zu der vorhandnen Texttabelle hinzugefuegt.
7. Eine Laufwerksueberpruefung wurde hinzugefuegt.
Es wird geprueft, ob das eingegebenes Laufwerk existiert.
Damit wird verhindert, dass Printfox einfriert, falls auf ein nicht existierendes Laufwerk zugegriffen werden soll.
Wie wurde es gemacht:
Auf die Punkte 1 bis 2 will ich hier nicht naeher eingehen.
Punkt 3 findet noch Erwaehnung
zu den Punkten 4 bis 7:
Um 'nicht so einfache' Aenderungen am Hauptprogramm machen zu koennen habe als erstes Printfox disassembliert, und mir den Source-Code erstellt.
Danach habe ich den Sorce-Code analysiert, und an einigen Stellen geringfuegig dokumentiert.
Im naechste Schritt habe ich mir angeschaut, wie man am 'einfachsten' Aenderungen machen kann.
Bisher habe ich keine einfache Methode gefunden um neue Befehle zu integrieren, deswegen habe ich mir die vorhandenen Befehle angeschaut, und ueberlegt wo ich ansetzen kann.
Das einfachste erschien mir, den Befehl < C= D >, welcher fuer Diskettenbefehle zustaendig ist zu erweitern.
Ich habe dort nun eine Abfrage auf Laufwerksnummern von 8 - 19 eingearbeitet.
Bei ersten Tests habe ich festgestellt, das Printfox 'abschmiert' wenn auf ein Laufwerk zugegriffen werden soll, welches nicht existiert.
Also habe ich noch schnell eine Routine eingebaut, welche ueberprueft, ob ein angegebes Laufwerk ueberhaupt angeschlossen ist.
Bei weiteren Tests habe ich noch einen kleinen Fehler in den Aenderungen von Stephan Scheuer gefunden.(Punkt 3).
Der Fehler tritt nicht auf, wenn man auf nur ein Laufwerk zugreifen kann.
Wechselt man aber die Laufwerksnummern, kann es dazu fuehren, das ein angeschlossenes Laufwerk mit gueltiger Diskette nicht mehr angesprochen werden kann.
Diesen Fehler habe ich korrigiert.
Damit man auch was sieht, habe ich noch eine Laufwerksanzeige in der ersten Zeile mit eingebaut, und auch entsprechende Textmeldungen fuer die zweite Zeile mit reinprogrammiert.
Wie funktioniert es:
Nun, wie schon vorher erwaehnt, habe ich dem < C= D > Kommando eine neue Funktion hinzugefuegt.
Mit diesem Kommando wird normalerweise ein Befehl an ein angeschlossenes Laufwerk gesendet.
Ich habe diese Kommando so erweitert, das nun die Zahlen von 8 bis 19 als Eingaben zur Laufwerkswahl erkannt werden.
(Allerdings mueesen die Zahlen direkt ohne fuehrende (Leer-)Zeichen eingegeben werden.)
Als erstes drueckt man die Taste 'C=' danach die Taste D. Jetzt erscheint in der zweiten Zeile das Wort "Befehl:', und in der dritten Zeile erscheint 'CAPS'.
hier kann man nun eine Zahl zwischen 8 und 19 eingeben. Drueckt man anschliessend Return, wird zunaechst geprueft, ob das gewaehlte Laufwerk vorhanden (angeschlossen) ist.
Wenn es vorhanden ist, wird die Speicherstelle $BA angepasst, die Laufwerksanzeige wird angepasst, und in der dritten Zeile wird 'OK' angezeigt.
Ist das eingegebene Laufwerk nicht vorhanden, bleibt die Speicherstelle $BA, und die Anzeige auf dem alten Stand, und es wird eine Fehlermeldung in der zweiten Zeile ausgegeben.
Doch nun ein paar Beispielbolder mit kurzen Erlaeuterungen:
Bild 1 : rechts oben in der ersten Zeile ist die Laufwerksanzeige
Bild 2: Die Meldung 'OK' erscheint, wenn eine Laufwerksaenderung erfolgt ist. (Es wird nicht ueberprueft, ob eine Diskette vorhanden ist)
Bild 3: Die Meldung 'Laufwerk nicht vorhanden" erscheint wenn versucht wurde ein Laufwerk, welches nicht existiert, einzubinden. (Die Anzeige rechts oben ' LW:10" hat damit nichts zu tun.)
Bild 4: Die Fehlermeldung '31,Syntax error,00,00' kommt vom Laufwerk wenn eine Laufwerksnummer kleiner 8, oder groesser 19 eigegeben wurde.
Dann wird naemlich der 'Befehl' als Floppykommando gesendet, und kann dort nicht verarbeitet werden. (Es wird im Moment nur auf eine gueltige Zahl von 8 - 19 geprueft. alle anderen eingebenen Zahlen fuehren zu diesem Fehlerbild.)
An dieser Stelle moechte ich Goodwell fuer die Idee danken, und auch Stephan Scheuer fuer seine Vorarbeit.
Und natuerlich allen Anderen, welche irgendwie damit zu tun hatten, bzw. haben.
Was fehlt noch?:
Ach ja, das Programm,
Da ich wirklich einige Aenderungen am Code von Printfox vorgenommen habe, und ich mir nichtt 100%tig sicher bin, dass alles ok ist, moechte ich das Programm hier so noch nicht veroeffentlichen.
Weil viel zu schnell wird es sonst eventuell fehlerbehaftet im Internet verteilt, und das moechte ich vermeiden.
Ich bitte um euer Verstaendniss.
Wer es testen will kann mir gerne eine PN schreiben.
Mit freundlichen Gruessen aus dem fernen China
Claus