Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

DOS-Zeichensatz Font-Editor

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Question



Anmeldungsdatum: 01.06.2005
Beiträge: 9

BeitragVerfasst am: 21.09.2005, 11:20    Titel: DOS-Zeichensatz Font-Editor Antworten mit Zitat

...Blöder Titel.

Hallo, die Runde.

Zunächst muss ich erklären, worum es überhaupt geht:
Ich arbeite viel im Vollbild-DOS-Modus (oder gleich unter MSDOS6.2). Der Zeichensatz von DOS ist gelinde gesagt widerlich, einen Editor für die EGA.CPI fand ich aber leider nicht.
Immerhin habe ich einige Codepage-Tools bei Kosta Kostis gefunden, die aus einer CPI-Datei die einzelnen Codepages (437, 850 usw) auslesen und in die drei Fontdateien umrechnen können.

Für diese CPnnn.F08, CPnnn.F14 und CPnnn.F16 habe ich jetzt einen kleinen Font-Editor zusammengehackt.
Wollte mal hören, ob jemand Verwendung für so ein Projekt hat, dann würde ich Quelle und EXE vorstellen.

Schönen Tag noch

Thomas
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 21.09.2005, 11:43    Titel: Antworten mit Zitat

Klar, stell ruhig vor. lächeln
_________________

Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Question



Anmeldungsdatum: 01.06.2005
Beiträge: 9

BeitragVerfasst am: 21.09.2005, 12:39    Titel: So denn... Antworten mit Zitat

verlegen

Na gut, zwei Dinge vorweg: Es ist ein Werkzeug, ein Tool.
Und: Es ist hingehackt und nicht im Detail programmiert.

Vielleicht ist es für jemanden nützlich, vielleicht mag jemand aus dem Skelett ein größeres Projekt machen.

Eine Doku gibt es (noch) nicht, daher hier ein paar Anmerkungen:

Die DOS-Codepages liegen in einer Datei gesammelt vor. Codepage 437, 850, 852, 860, 863 und 865 sind (in Win98) in der %windir%\COMMAND\EGA.CPI abgelegt.

Mit den CPI-Tools von Kosta Kostis lässt sich aus der EGA.CPI (oder besser aus einer Kopie der EGA.CPI) eine einzelne CP herauslesen, z. B. Codepage 850 mit
Code:
CPIGET EGA.CPI 850
… so bekommt man eine Datei CP850.CP, in der drei Bitmap-Zeichensätze abgelegt sind.
Ein weiteres Programm liest diese Fonts aus:
Code:
CP2FNT 850
… liest die eben erstellte CP850.CP und liefert drei neue Dateien: CP850.F08, CP850.F14 und CP850.F16.
Eigentlich kann man nicht mehr wirklich "Font-Datei" dazu sagen, denn es sind headerlose Binärdateien.

Jetzt kommt der Font-Editor ins Spiel.
Die Quelle habe ich hier abgelegt, sie ist als textformatige Basic-Datei gespeichert, damit man schonmal einen Blick reinwerfen kann.
Eine komplierte Version habe ich hier gespeichert, auch an eine gezippte Version habe ich gedacht.

Keine Installation nötig, einfach in einem Verzeichnis ablegen und aufrufen. In der DOS-BOX von Win98 läuft das Programm noch, keine Ahnung, wie es auf NT-basierten Win-Versionen aussieht.

Im Programm gibt es keinen echten Parser.
Die Abfrage lautet einfach, ob ein Parameter angegeben wurde, wenn ja, wird er als Dateiname akzeptiert. Das heißt freilich, dass eine „Nonsens-Eingabe“ zu einem Modulfehler führt.
Die Abfrage sucht außerdem nach einem Leerzeichen. Ist eines enthalten, wird die Parameterangabe in zwei Dateinamen gesplittet, eine umfangreiche Fehlerprüfung gibt es nicht.

Der Aufruf lautet also
Code:
EDITFNT CPnnn.Fxx
oder
Code:
EDITFNT CPnnn.Fxx CPmmm.Fyy


nnn steht für die Codepage, xx für die Größe (z.B. CP850.F08).
Es kann eine zweite Font-Datei angegeben werden, die Zeichen der zweiten Datei werden dann mit angezeigt (hilft, wenn man Zeichen anpassen will).

Die Funktionen:
Nichts berühmtes!
Mit den Cursor-Tasten rauscht man im Zeichensatz herum, die Tasten POS1 und ENDE springen zu Zeichen 0 bzw. 255.
Mit ENTER wird der Editor-Modus aktiv, da gilt die gleiche Cursor-Steuerung.

Was noch nicht auf dem Schirm steht:
Im Auswahl-Modus lässt sich ein Zeichen mit der Taste „C” in eine Art „Zwischenspeicher“ ablegen. Zum Beispiel, weil man das Pi-Zeichen aus Position 244 kopieren möchte. Danach kann man die Position im Zeichensatz ändern und wieder die Taste „C“ drücken, um das gespeicherte Zeichen dort einzufügen (das Pi zum Beispiel ist an Pos. 20 und 244 abgelegt). Ist dieser „Zwischenspeicher“ aktiv, kann er mit „ENTF“ gelöscht werden.
Wurde ein zweiter (gleich großer) Zeichensatz geladen, kann man mit der Taste „H“ ein Zeichen aus diesem zweiten in den ersten Satz kopieren.

Wie gesagt, nichts berühmtes, mir reichte es immerhin, einen neuen Zeichensatz für CP850 zu erstellen, in dem ich an Pos 213 ein Eurozeichen eingefügt habe.

Zurück zur „CPI-Datei“ geht es wieder mit den Tools von Kosta Kostis.


Soviel zur „Vorstellung“.

Wenn sich jemand für das Tool als Projekt interessiert, wünsche ich viel Spaß mit dem Quelltext.

Einen schönen Tag wünscht

Thomas


_ E D I T _
Völlig vergessen: Der Editor speichert einen bearbeiteten Font im aktuellen Verzeichnis unter dem Namen „out.fnt“! Dabei habe ich auf eine Existenzprüfung verzichtet.
Eine DOS-BATCH könnte das „sanft umschiffen“, etwa so:

Batch-Datei FONTEDIT.BAT
Code:
@ECHO OFF
IF %1n==n ECHO Usage: FONTEDIT CODEPAGEDATEI.CPI CODEPAGE
IF %1n==n GOTO EndeBatch
COPY %windir%\COMMAND\EGA.CPI
REN EGA.CPI %1
CPIGET %1 %2
CP2FNT %2
EDITFNT CP%2.F16
IF NOT EXIST OUT.FNT GOTO EndeBatch
REN CP%2.F16 ALT%2.F16
REN OUT.FNT CP%2.F16
:EndeBatch


… das lässt sich natürlich noch verfeinern, aber wie ich schon anmerkte, sollte der CP-Fonteditor eher ein einfaches Werkzeug sein.

_ E D I T __2_

Dazu passend…

… wenn lauter CPirgendwas.Fxx-Dateien auf der Platte rumfliegen, ist vielleicht ein Blick auf den Font interessant.

Den Binärfont, der von Kostis Programm CP2FNT.EXE erzeugt wird, kann mit VIEWVFNT.EXE betrachtet werden. Hier die gezippte Ausgabe.

Ein Screenshot der Ausgabe (zu sehen ist ein selbstgebastelter 850-er DOS-Font mit Eurozeichen an Pos 213 (jeweils über dem §-Zeichen).

Ich hoffe mal, dass keine Fehler mehr drin sind, ist ja nur ein Miniprogrämmchen.

Die Syntax:
Code:
VIEWBFNT  nnn

nnn = Codepage-Nummer
Das Programm sucht nach den von CP2FNT.EXE angelegten Dateien. In Folge also:
CP2FNT 850 (erzeugt CP850.F08, CP850.F14 und CP850.F16)
VIEWBFNT 850 (zeit die drei Dateien an).


Aber offenbar ist das Interesse an den Thema nicht sonderlich hoch...

Greets
T
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ZaPPa



Anmeldungsdatum: 29.09.2004
Beiträge: 98
Wohnort: Wuppertal

BeitragVerfasst am: 27.09.2005, 16:44    Titel: Antworten mit Zitat

hmm.... wär nett wenn du mir die Sources geben würdest...
Die könnte ich dann in meinem FontEditor ( Hier Klicken ) weiter verwenden.

MfG Dave
_________________
--- ICH BIN DAGEGEN! ---
Jet_X hat Folgendes geschrieben:
Es währe mir sehr geholfen wenn ihr mir Helfen könnt !


And remember: Schwund is immer!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 27.09.2005, 17:02    Titel: Antworten mit Zitat

Hier ist der Source doch: http://people.freenet.de/werdzumhirsch/editfnt.bas
_________________

Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Question



Anmeldungsdatum: 01.06.2005
Beiträge: 9

BeitragVerfasst am: 04.10.2005, 13:51    Titel: Antworten mit Zitat

Kuckuck.

Mir wurde zugetragen, dass einige Grafikkarten das Editprogramm nicht darstellen könnten?!
Hat irgendjemand mit dem Tool gearbeitet, der mir genauere Info geben kann?

Außerdem gibt es Probleme mit der Subprozedur, die die Kästchen per PRINT auf den Bildschirm bringt. Diese SUB habe ich mittlerweile überarbeitet:
Code:
SUB Editor

  DIM I AS INTEGER

  SCREEN 9
  WIDTH 80, 43
  SLEEP 2

  COLOR 7
  PRINT "    7 6 5 4 3 2 1 0"
  FOR I = 1 TO AnzFontZl
   LOCATE I * 2 + 1, 1
   PRINT USING "## "; I
  NEXT
 
  COLOR 15
  LOCATE 3 + AnzFontZl * 2, 5
  PRINT DateiName

  FOR I = 0 TO AnzFontZl
     LINE (27, I * 16 + 11)-(155, I * 16 + 11), 8
  NEXT I
  FOR I = 0 TO 8
     LINE (27 + I * 16, 11)-(27 + I * 16, 11 + 16 * AnzFontZl), 8
  NEXT I


  LiesFile
  Waehle

  COLOR 7, 0
  SCREEN 0, 0, 0
  CLS

END SUB

Diese Version sollte vernünftige Linien auf den Screen bringen.

Zuletzt erhielt ich eine Fehlermeldung, dass die Abfrage von F5 im Zeichen-Edit-Modus nicht funktioniert... Auch das kann ich nicht nachvollziehen. Gibt es jemanden mit ähnlichen Problemen?

Greets
Thomas
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz