Turbo Pascal 7

Giebt es irgendein möglichkeit unter Pascal7 in Dos ein Eurozeichen anzuzeigen ???

Mhh, soweit ich das noch weiß, kannst du im Textmodus auch nur die Zeichen des Zeichensatzes von DOS verwenden. Da die aber kein Euro-Zeichen enthalten, dürfte es nicht gehen.

Im Grafikmodus kann es gehen wenn du einen entsprechenden Font hast.

Ansonsten aus Sonderzeichen zusammenpuzzlen (wird natürlich größer als normale Schrift) oder „EUR“ als offizielles Kürzel schreiben.

Aber keine Sorge, auch Linux kennt das Problem…

Silvio

Jo, habe ich mir schon gedacht. Aber hätte ja sein können das es doch eine Lösung gibt. Trotzdem besten Dank.

Gruß Michael

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Es gibt eine Möglichkeit. Ich hab mal ein Programm gesehen,
ich glaube das war sogar bei irgendeiner alten DOS-Version dabei. Auf jedenfall kann man auch individuelle Fonts für DOS Textmodus laden. Aber frag mich nicht wie es geht. Musste mal im
Internet ein wenig suchen.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Giebt es irgendein möglichkeit unter Pascal7 in Dos ein
Eurozeichen anzuzeigen ???

Assembler Quellcode, um den ASCII Zeichensatz zu ändern.
Hier ein kleines Beispiel.
Die Änderung wird aber nur dan sichtbar, wen das DOS-Programm
NICHT im Windowsfenster ausgeführt wird!
Diser Quelltext solte mit TP7 direkt übersetzt werden können.

{SpeedyElektron}
{-----Fonts Aendern (219,220,221,222)-------------------------------------------}
Function BtD(s:String):LongInt;{Bin to Dec}
Var i,code,n :Integer; l:Longint;
Begin
l:=0;
If Pos(‚b‘,s)=Length(s) Then s[0]:=Pred(s[0]);
For i:=1 To Length(s) Do Begin
Val(s[i],n,code);
If code0 Then Halt(code);
If n>1 Then Halt(i);
l:=l*2+n;
End;
BtD:=l;
End;

Procedure Pause; Assembler;
ASM MOV AH,0; INT $16; END;

Var MptrOff: Word;
MptrSeg: Word;
Font: Array[1…65] Of Byte;

Begin
Font[1] := BtD(‚00100010‘); Font[17] := BtD(‚00100010‘);
Font[2] := BtD(‚00111110‘); Font[18] := BtD(‚00111110‘);
Font[3] := BtD(‚11010001‘); Font[19] := BtD(‚11000101‘);
Font[4] := BtD(‚11000001‘); Font[20] := BtD(‚11000001‘);
Font[5] := BtD(‚00111110‘); Font[21] := BtD(‚00111110‘);
Font[6] := BtD(‚00001000‘); Font[22] := BtD(‚00001000‘);
Font[7] := BtD(‚00001000‘); Font[23] := BtD(‚00001000‘);
Font[8] := BtD(‚11001001‘); Font[24] := BtD(‚00001000‘);
Font[9] := BtD(‚00111110‘); Font[25] := BtD(‚00111110‘);
Font[10] := BtD(‚00001000‘); Font[26] := BtD(‚11001001‘);
Font[11] := BtD(‚00001000‘); Font[27] := BtD(‚00001000‘);
Font[12] := BtD(‚00001000‘); Font[28] := BtD(‚00101010‘);
Font[13] := BtD(‚00010100‘); Font[29] := BtD(‚00010100‘);
Font[14] := BtD(‚00100010‘); Font[30] := BtD(‚00000000‘);
Font[15] := BtD(‚11000001‘); Font[31] := BtD(‚00000000‘);
Font[16] := BtD(‚00000000‘); Font[32] := BtD(‚00000000‘);
Font[33] := BtD(‚10000000‘); Font[49] := BtD(‚01111111‘);
Font[34] := BtD(‚10000000‘); Font[50] := BtD(‚01111111‘);
Font[35] := BtD(‚10000000‘); Font[51] := BtD(‚01111111‘);
Font[36] := BtD(‚10000000‘); Font[52] := BtD(‚01111111‘);
Font[37] := BtD(‚10000000‘); Font[53] := BtD(‚01111111‘);
Font[38] := BtD(‚10000000‘); Font[54] := BtD(‚01111111‘);
Font[39] := BtD(‚10000000‘); Font[55] := BtD(‚01111111‘);
Font[40] := BtD(‚10000000‘); Font[56] := BtD(‚01111111‘);
Font[41] := BtD(‚10000000‘); Font[57] := BtD(‚01111111‘);
Font[42] := BtD(‚10000000‘); Font[58] := BtD(‚01111111‘);
Font[43] := BtD(‚10000000‘); Font[59] := BtD(‚01111111‘);
Font[44] := BtD(‚10000000‘); Font[60] := BtD(‚01111111‘);
Font[45] := BtD(‚10000000‘); Font[61] := BtD(‚01111111‘);
Font[46] := BtD(‚10000000‘); Font[62] := BtD(‚01111111‘);
Font[47] := BtD(‚10000000‘); Font[63] := BtD(‚01111111‘);
Font[48] := BtD(‚11111111‘); Font[64] := BtD(‚00000000‘);
Font[65]:=BtD(‚00000000‘);{Immer Null}
MptrSeg := seg(Font[1]);
MptrOff := ofs(Font[1]);
ASM
MOV AX,$1100
MOV DX,219 {Begin beim Zeichen}
MOV CX,$04 {Anzahl der Zeichen}
MOV BH,16
MOV BP,MptrOff
MOV ES,MptrSeg
INT $10
NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP
END;
WriteLn; WriteLn; WriteLn; WriteLn; WriteLn; WriteLn;
WriteLn('Zeichen 219: ',#219);
WriteLn('Zeichen 220: ',#220);
WriteLn('Zeichen 221: ',#221);
WriteLn('Zeichen 222: ',#222);
WriteLn;
WriteLn(#222#222#222);
WriteLn(#222#222#222);
WriteLn;
WriteLn(#221#221#221);
WriteLn(#221#221#221);
WriteLn; WriteLn; WriteLn; WriteLn;
WriteLn(‚Druecke AnyKey‘);
Pause;
ASM MOV AX,3; INT $10; END;{rücksetzen der Fonts}
End.

Das zeichnen des Eurozeichen mußt Du schon selbst machen :smile:
Für weitere Fragen dann an [email protected]
Gruß,
SpeedyElektron