Textmodus

Konfiguration, Anwendungen, Treiber und TSRs unter DOS
Antworten
robot1

Textmodus

Beitrag von robot1 »

Ich habe gerade ein Problem mit der DOS-Konfiguration für einen Boundless TC200.

Unabhängig davon, ob ich eine separate Grafikkarte oder die Onboard-Grafikkarte verwende, schreibt der Rechner alle Ausgaben nur in eine Zeile, d.h. die vorherige Zeile wird sofort überschrieben.
Programme mit Textoberfläche (z.B. Norton Commander, edit, usw.) lassen sich "blind" starten und haben dann eine normale Anzeige. Grafische Oberflächen funktionieren auch.
Nachdem ich den Gerätetreiber ANSI.SYS in der CONFIG.SYS eingetragen habe, funktioniert die Ausgabe zwar prinzipiell, ABER:

Beim Erreichen der letzten Zeile tritt wieder das Problem auf, dass jetzt nur noch diese letzte Zeile beschrieben wird, d.h. der alte Bildschirminhalt nicht nach oben aus dem Bild geschoben wird ... CLS hilft nur, solange die Ausgabe eines Programms nicht länger als eine Bildschirmseite ist.

Das ist z.B. sehr lästig bei Anwendung des Befehls DIR in Verzeichnissen mit vielen Dateien.

Hat jemand eine Idee, woran es liegt und wie man DOS konfigurieren könnte? ANSI.SYS einzubinden, hat ja schon viel gebracht.
freecrac
DOS-Guru
Beiträge: 861
Registriert: Mi 21. Apr 2010, 11:44
Wohnort: Hamburg Horn

Re: Textmodus

Beitrag von freecrac »

Guten Abernd.

Das ist ja merkwürdig.

Man könnte mit verschiedenen Softwareinterrupts z.B. für int 21h und für int 10h für die Zeichenausgabe, Cursorsetzen und das Scrollen es vieleicht noch etwas genauer herausfinden wo das Problem liegt.

Um unter DOS in die nächste Zeile zu gelangen wird ein Linfeed(0Ah) zusammen mit einem Carriage Return(0Dh) benötigt und wenn wir auf die Eingabe-Taste drücken, dann sollten diese beiden Bytes auch vom Standard-Ausgabegerät(meistens der Bildschirm) ausgegeben und damit der Cursor in die nächste Zeile gesetzt werden. Dort sollte dann der Prompt erscheinen.

Nur in der letzten Zeile wird stattdessen der gesamte Bildschirminhalt, mit allen ASCII-Zeichen und Farben, nach oben gescrollt und die oberste Zeile wird nach oben rausgeschoben und verschwindet.

Dirk
Benutzeravatar
Dark_Lord
CONFIG.SYS-Autor
Beiträge: 261
Registriert: So 25. Mai 2008, 19:44
Wohnort: Nähe Köln
Kontaktdaten:

Re: Textmodus

Beitrag von Dark_Lord »

Wenn nur CR ausgegeben wird, wird die Zeile immer überschrieben, auch mitten im Bildschirm, nicht nur wie da beschrieben in der letzten Zeile. Wenn nur LF ausgegeben wird, geht es in der nächsten Zeile aber mit der Zeichenposition hinter dem zuletzt geschriebenen Zeichen weiter.

An das Phänomen von dir, robot1, kann ich mich auch noch grob erinnern, meine aber, es wäre mir immer nur passiert, wenn ein Spiel abgestürzt ist und DOS den Grafikmodus des Spiels überlagert hat. Dann sind auch die Zeichen anders aufgelöst.

Schuss ins Blaue: Grafikmodus umschalten erzwingen. Probier mal direkt hintereinander
mode con cols=40 lines=25
mode con cols=80 lines=25

dann müsste die Grafikkarte den Grafik-/Textmodus noch mal zwangsweise umschalten und du müsstest in einem Textmodus sein der auch sauber weiterscrollt.

Oder je nachdem, was du für einen Exoten da hast - Scroll-Lock mal umschalten?
Arbeitspferde: Xeon E5-2683v3 und Q6600

Retro:
P2-450
Commodore PC20-II/Tandy Sound
286/ET3000/Aztech NX-II
Amiga 500/Gotek/Vortex AT-once Plus 286
Pentium 166/FAST Video Machine

Projekt-PCs: C64, Dual Pentium MMX 233, 486 VLB, 486 PCI, K6, Athlon 64
Projekte: USB RetroArduInput
freecrac
DOS-Guru
Beiträge: 861
Registriert: Mi 21. Apr 2010, 11:44
Wohnort: Hamburg Horn

Re: Textmodus

Beitrag von freecrac »

Dark_Lord hat geschrieben:Wenn nur CR ausgegeben wird, wird die Zeile immer überschrieben, auch mitten im Bildschirm, nicht nur wie da beschrieben in der letzten Zeile. Wenn nur LF ausgegeben wird, geht es in der nächsten Zeile aber mit der Zeichenposition hinter dem zuletzt geschriebenen Zeichen weiter.
Ja genau. Das kann doch aber nur auftreten, wenn eines der beiden Steuerzeichen z.B. in einer Textadtei nicht vorhanden ist und wenn diese Textdatei zur Ausgabe gebracht wird. Für die Eingabezeile sollte command.com doch beide Steuerzeichen zum Ausgabegerät senden, wenn die Eingabetaste gedrückt wird.
An das Phänomen von dir, robot1, kann ich mich auch noch grob erinnern, meine aber, es wäre mir immer nur passiert, wenn ein Spiel abgestürzt ist und DOS den Grafikmodus des Spiels überlagert hat. Dann sind auch die Zeichen anders aufgelöst.
Ja das könnte sein.
Schuss ins Blaue: Grafikmodus umschalten erzwingen. Probier mal direkt hintereinander
mode con cols=40 lines=25
mode con cols=80 lines=25

dann müsste die Grafikkarte den Grafik-/Textmodus noch mal zwangsweise umschalten und du müsstest in einem Textmodus sein der auch sauber weiterscrollt.

Oder je nachdem, was du für einen Exoten da hast - Scroll-Lock mal umschalten?
Gute Idee.

Ohne Mode-Treiber könnte man sonst auch mit dem Norton Commander und mit Alt+F9-Taste von 25 Zeilen auf 50
Zeilen und auch wieder zurück schalten.

Dafür werden vermutlich diese folgenden Software-Interruptaufrufe verwendet.

Für 80 Spalten und 50 Zeilen mit 8x8 Zeichen:

Code: Alles auswählen

RBIL->inter61a.zip->INTERRUP.A
--------V-101102-----------------------------
INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM 8x8 DBL-DOT PATTERNS (PS,EGA,VGA)
	AX = 1102h
	BL = block to load
Return: nothing
Notes:	(see AX=1100h)
SeeAlso: AX=1100h,AX=1101h,AX=1103h,AX=1104h,AX=1112h,AH=1Bh,AX=CD10h
SeeAlso: MEM 0040h:0084h
Für 80 Spalten und 25 Zeilen mit 8x16 Zeichen:

Code: Alles auswählen

RBIL->inter61a.zip->INTERRUP.A
--------V-101104-----------------------------
INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM 8x16 CHARACTER SET (VGA)
	AX = 1104h
	BL = block to load
Return: nothing
Notes:	(see AX=1100h)
SeeAlso: AX=1100h,AX=1101h,AX=1102h,AX=1103h,AX=1114h,AH=1Bh,AX=CD10h
SeeAlso: MEM 0040h:0084h
Index:	text mode;font|text mode;screen rows
Sonst könnte man auch mit Debug zwei Assembler-Befehle eintippen, um von einem Grafikmode in den Textmode 3 zu schalten.

Code: Alles auswählen

-a
????:0100 mov ax,3
????:0103 int 10
????:0105
-g=cs:0100 0105
-q
Dirk
robot1

Re: Textmodus

Beitrag von robot1 »

Die Lösung des Problems ergab sich unverhofft. Nachdem ich Eure interessanten Vorschläge erfolglos ausprobiert habe, ist mir aufgefallen, dass MEM nur 631 kB konventionellen Speicher anzeigt.
Da ich das schon von den DiskOnChip-Modulen anderer Thinclients kenne, habe ich also Ausschau nach einem weiteren Laufwerk gehalten und tatsächlich: es gibt ein Laufwerk D:!
Dort wiederum liegt neben der Boundless-Software (u.a. diverse Perl-Skripte) eine Datei mit dem vielsagenden Namen UNSILENT.EXE. Was soll ich sagen, das Programm tut, was der Name verspricht und hat seinen festen Platz in der AUTOEXEC.BAT erhalten.

Leider habe ich noch keinen Weg gefunden, das Boundless ROM zu deaktivieren. Bei meinen anderen Thinclients reichte es, den Adressbereichs-Jumper zu entfernen, den es so anscheinend nicht gibt :(
Benutzeravatar
matze79
DOS-Gott
Beiträge: 7910
Registriert: So 9. Sep 2012, 20:48

Re: Textmodus

Beitrag von matze79 »

Hm gibts ein Flashtool fuer das ROM, evtl. kann man da einfach einen Platzhalter reinflashen
https://www.shadowcircuit.de - Die kleine Community rund um Retro Computing
https://www.retroianer.de
Antworten