Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
cpm:turbo_pascal:tinst [2011/09/26 15:33] – volkerp | cpm:turbo_pascal:tinst [2024/12/06 09:07] (aktuell) – [Downloads] volkerp | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== TINST ====== | + | ====== TINST.COM ====== |
Im Anfangsbereich eines jeden Turbo-Pascal-(2.xx, | Im Anfangsbereich eines jeden Turbo-Pascal-(2.xx, | ||
- | Initial werden diese mit TINST.COM eingerichtet | + | Initial werden diese Steuercodes |
- | Zur Anpassung | + | |
- | Die Strings sind wie in Pascal üblich längendefiniert (1. Byte = Länge). | + | |
+ | ===== Downloads ===== | ||
+ | |||
+ | * {{: | ||
+ | * Perl-Programm **terminal_info.pl** zum Auslesen der Terminal-Infos aus TURBO.COM oder aus compilierten Programmen. | ||
+ | * Perl-Programm **terminal_info2.pl** zeigt zusätzlich die Turbo-Version und die eingerichteten Editor-Kommandos an | ||
+ | * tpterm.pas/ | ||
+ | |||
+ | ===== Terminal-Steuercodes ===== | ||
+ | |||
+ | Wenn man TINST nicht zur Hand hat, kann man auch selbst patchen. Der Installationsbereich der Terminal-Steuercodes ist 125 Byte lang und geht bei Turbo 2.xx bzw. 3.xx von 0153h-01EFh. Im Folgenden wird dieser Bereich erläutert. Zum Auslesen der Daten aus vorhandenen kompilierten Programmen habe ich ein kurzes Perl-Programm geschrieben (s.u.). | ||
+ | |||
+ | Die Strings sind wie in Pascal üblich längendefiniert (1. Byte = Länge). Länge 00 kennzeichnet einen leeren String. | ||
< | < | ||
- | # | + | 0124 AFrequency: |
- | # | + | |
- | # | + | |
- | # | + | ; |
- | # | + | |
- | # | + | ;Terminal >> |
- | # | + | 0153 TermTypStr: |
- | # | + | 0168 Width: |
- | # | + | 0169 Height: |
- | # | + | 016A |
- | # | + | |
- | # | + | 016B InitialStr: |
- | # | + | 017B ResetStr: |
- | # | + | |
- | # | + | ;Cursor >> |
- | # | + | 018B CursorStr: |
- | # | + | 019B BinaryAddr: |
- | # | + | 019C ColumnOff: |
- | # | + | 019D LineOff: |
- | # | + | 019E XPosition: |
- | # | + | 019F YPosition: |
- | # | + | 01A0 DelayCursor: |
- | # | + | |
- | # | + | ;Line >> |
- | # ;wenn Clear screen schon Home macht) | + | 01A2 ClearScrStr: |
- | # | + | 01A8 HomeStr: |
- | # | + | |
- | # | + | 01AE InsLineStr: |
- | # | + | 01B4 DelLineStr: |
- | # | + | 01BA DelayLine: |
- | # | + | |
- | # | + | ;Highlight >> |
- | # | + | 01BC EraToEolStr: |
- | # | + | 01C2 HLStartStr: |
- | # | + | 01C8 HLEndStr: |
- | # | + | 01CE DelayHL: |
+ | |||
+ | 01D0 | ||
</ | </ | ||
+ | |||
+ | ===== Erläuterungen ===== | ||
+ | |||
+ | Auszug aus dem Handbuch: | ||
+ | |||
+ | **L.2.1 Terminaltyp** | ||
+ | |||
+ | Geben Sie den Namen des Terminals ein, das Sie installieren wollen. Wenn Sie | ||
+ | TINST beenden, werden die Werte gespeichert und der Terminalname erscheint auf | ||
+ | der Liste der Terminals. Falls Sie später TURBO Pascal nochmals für das Terminal | ||
+ | installieren müssen, können Sie es auf der Liste anwählen. | ||
+ | |||
+ | **L.2.2 Soll ein Initialisierungsstring an das Terminal geschickt | ||
+ | werden?** | ||
+ | |||
+ | Wenn Sie Ihr Terminal initialisieren wollen, wenn Turbo startet (z.B. um Befehle | ||
+ | auf Funktionstasten zu programmieren), | ||
+ | nicht, drücken Sie RETURN. | ||
+ | |||
+ | **L.2.3 Soll ein Resetstring an das Terminal geschickt werden?** | ||
+ | |||
+ | Hier können Sie einen String definieren, der bei Beendigung von TURBO Pascal an | ||
+ | das Terminal geschickt wird. Die obige Beschreibung des Initialisierungsbefehls | ||
+ | gilt hier ebenfalls. | ||
+ | |||
+ | **L.2.4 CURSOR LEAD-IN Befehl** | ||
+ | |||
+ | Cursor Lead-in ist eine spezielle Sequenz von Zeichen, die Ihrem Terminal | ||
+ | mitteilt, daß die folgenden Zeichen eine Adresse auf dem Bildschirm sind, auf | ||
+ | die der Cursor plaziert werden soll. Wenn Sie diesen Befehl definieren, werden | ||
+ | Ihnen die folgenden zusätzlichen Fragen gestellt: | ||
+ | |||
+ | **L.2.4.1 Soll der CURSOR POSITIONING Befehl zwischen Zeiten- und | ||
+ | Spaltenadresse geschickt werden? ** | ||
+ | |||
+ | Bei einigen Terminals muß der Befehl zwischen | ||
+ | den zwei Zahlen, die die Reihen- und Spaltencursoradresse definieren, stehen. | ||
+ | |||
+ | **L2.4.2 Soll der CURSOR POSITIONING Befehl nach der Zeile und Spalte | ||
+ | geschickt werden ?** | ||
+ | |||
+ | Bei einigen Terminals muß der Befehl nach der Definition der Zeilen- und | ||
+ | Spaltenadresse des Cursor stehen. | ||
+ | |||
+ | **L.2.4.3 Spalte zuerst?** | ||
+ | |||
+ | Bei den meisten Terminals muß die Adresse in folgendem Format stehen: zuerst | ||
+ | REIHE, dann SPALTE. Wenn dies bei Ihrem Terminal so ist, antworten Sie mit N. | ||
+ | Wenn Ihr Terminal zuerst die SPALTE benötigt und darin die REIHE, antworten Sie | ||
+ | Y. | ||
+ | |||
+ | **L.2.4.4 Offset der ersten Zeilennummer** | ||
+ | |||
+ | Geben Sie die Zahl ein, die zur Zeilenadresse addiert werden soll. | ||
+ | |||
+ | **L.2.4.5 Offset der ersten Spalte** | ||
+ | |||
+ | Geben Sie sie Zahl ein, die zur Spaltenadresse addiert werden soll. | ||
+ | |||
+ | **L.2.4.6 Binäre Adresse?** | ||
+ | |||
+ | Den meisten Terminals muß die Cursoradresse in binärer Form geschickt werden. | ||
+ | Falls das auch für Ihr Terminal gilt, geben Sie Y ein. Wenn Ihr Terminal die | ||
+ | Cursoradresse in ASCII Ziffern erwartet, geben Sie N ein. Sie werden dann | ||
+ | zusätzlich gefragt: | ||
+ | |||
+ | **L.2.4.6.1 2 oder 3 ASCII Ziffern?** | ||
+ | |||
+ | Geben Sie die Anzahl von ASCII-Ziffern in der Cursoradresse Ihres Terminals | ||
+ | an. | ||
+ | |||
+ | **L.2.5 CLEAR SCREEN Befehl** | ||
+ | |||
+ | Geben Sie den Befehl ein, der den gesamten Bildschirminhalt löscht (wenn nötig | ||
+ | sowohl für den Vorder-, als auch für den Hintergrund). | ||
+ | |||
+ | **L.2.6 Führt CLEAR SCREEN auch den Cursor in HOME Position?** | ||
+ | |||
+ | Dies ist normalerweise der Fall; wenn dies für Ihr Terminal nicht zutrifft, | ||
+ | geben Sie N ein und definieren den Cursor HOME Befehl. | ||
+ | |||
+ | **L.2.7 DELETE LINE Befehl** | ||
+ | |||
+ | Geben Sie den Befehl ein, der die Cursor-Zeile ganz löscht. | ||
+ | |||
+ | **L.2.8 INSERT LINE Befehl** | ||
+ | |||
+ | Geben Sie den Befehl ein, der an der Cursorposition eine ganze Zeile einfügt. | ||
+ | |||
+ | **L.2.9 ERASE TO END OF LINE Befehl** | ||
+ | |||
+ | Geben Sie den Befehl ein, der die Zeile von der Cursorposition bis zum rechten | ||
+ | Zeilenende löscht. | ||
+ | |||
+ | **L.2.10 START OF 'LOW VIDEO' Befehl** | ||
+ | |||
+ | Wenn Ihr Terminal über verschiedene Bildintensitäten verfügt, dann geben Sie | ||
+ | hier den Befehl ein, der den Bildschirm abdunkelt. Wenn dieser Befehl definiert | ||
+ | ist, wird die folgende Frage gestellt: | ||
+ | |||
+ | **L.2.10.1 START OF ' | ||
+ | |||
+ | Definieren Sie den Befehl, der den Bildschirm auf Normalbild setzt. | ||
+ | |||
+ | **L.2.11 Zahl der Zeilen auf Ihrem Bildschirm** | ||
+ | |||
+ | Geben Sie die Zahl der horizontalen Zeilen Ihres Terminals an. | ||
+ | |||
+ | **L.2.12 Zahl der Spalten auf Ihrem Bildschirm** | ||
+ | |||
+ | Geben Sie die Zahl der vertikalen Spaltenpositionen an. | ||
+ | |||
+ | **L.2.13 Verzögerung nach CURSOR ADDRESS (0-255ms): | ||
+ | Verzögerung nach CLEAR, DELETE und INSERT (0-255ms): | ||
+ | Verzögerung nach ERASE TO END OF LINE und HIGHLIGHT On/Off (o255 ms)** | ||
+ | |||
+ | Geben Sie die gewünschte Verzögerung in Millisekunden für die angegebenen | ||
+ | Funktionen ein. < | ||
+ | |||
+ | **L.2.15 Arbeitsfrequenz Ihres Mikroprozessors in MHz (für | ||
+ | Verzögerungen)** | ||
+ | |||
+ | Da die weiter oben angegebenen Verzögerungen von der Arbeitsfrequenz Ihrer CPU | ||
+ | abhängen, müssen Sie diesen Wert definieren. Die Installation ist beendet, die | ||
+ | Installationsdaten werden auf die Diskette geschrieben und Sie kehren in das | ||
+ | höhere Menü zurück (siehe Abschnitt 1.6). Die Installationsdaten sind auch in | ||
+ | der Installationsdatendatei gespeichert. Das neue Terminal erscheint in der | ||
+ | Terminalwahlliste bei zukünftigen TINST-Läufen. | ||
+ | |||
+ | |||
+ | |||
+ | ===== Beispiele ===== | ||
+ | |||
+ | | 0153 | TermTypStr: | ||
+ | | 0168 | Width: | ||
+ | | 0169 | Height: | ||
+ | | 016A | ???: | 0 | 0 | 0 | 0 | 0 | | ||
+ | | 016B | InitialStr: | ||
+ | | 017B | ResetStr: | ||
+ | | 018B | CursorStr: | ||
+ | | 019B | BinaryAddr: | ||
+ | | 019C | ColumnOff: | ||
+ | | 019D | LineOff: | ||
+ | | 019E | XPosition: | ||
+ | | 019F | YPosition: | ||
+ | | 01A0 | DelayCursor: | ||
+ | | 01A2 | ClearScrStr: | ||
+ | | 01A8 | HomeStr: | ||
+ | | 01AE | InsLineStr: | ||
+ | | 01B4 | DelLineStr: | ||
+ | | 01BA | DelayLine: | ||
+ | | 01BC | EraToEolStr: | ||
+ | | 01C2 | HLStartStr: | ||
+ | | 01C8 | HLEndStr: | ||
+ | | 01CE | DelayHL: | ||
**Beispiel PC 1715** | **Beispiel PC 1715** | ||
Zeile 58: | Zeile 226: | ||
018B CursorStr: | 018B CursorStr: | ||
019B BinaryAddr: | 019B BinaryAddr: | ||
- | 019C ColumnOff: | + | 019C ColumnOff: |
- | 019D LineOff: | + | 019D LineOff: |
019E XPosition: | 019E XPosition: | ||
019F YPosition: | 019F YPosition: | ||
01A0 DelayCursor: | 01A0 DelayCursor: | ||
01A2 ClearScrStr: | 01A2 ClearScrStr: | ||
+ | 01A8 HomeStr: | ||
+ | 01AE InsLineStr: | ||
+ | 01B4 DelLineStr: | ||
+ | 01BA DelayLine: | ||
+ | 01BC EraToEolStr: | ||
+ | 01C2 HLStartStr: | ||
+ | 01C8 HLEndStr: | ||
+ | 01CE DelayHL: | ||
+ | </ | ||
+ | |||
+ | **Beispiele Pascal880s** | ||
+ | |||
+ | < | ||
+ | 125 | ||
+ | 0153 TermTypStr: | ||
+ | 0168 Width: | ||
+ | 0169 Height: | ||
+ | 016A ???: 0 | ||
+ | 016B InitialStr: | ||
+ | 017B ResetStr: | ||
+ | 018B CursorStr: | ||
+ | 019B BinaryAddr: | ||
+ | 019C ColumnOff: | ||
+ | 019D LineOff: | ||
+ | 019E XPosition: | ||
+ | 019F YPosition: | ||
+ | 01A0 DelayCursor: | ||
+ | 01A2 ClearScrStr: | ||
01A8 HomeStr: | 01A8 HomeStr: | ||
01AE InsLineStr: | 01AE InsLineStr: | ||
Zeile 73: | Zeile 269: | ||
01CE DelayHL: | 01CE DelayHL: | ||
</ | </ | ||
+ | |||
+ | **Beispiel KC85/4** | ||
+ | |||
+ | < | ||
+ | 125 | ||
+ | 0153 TermTypStr: | ||
+ | 0168 Width: | ||
+ | 0169 Height: | ||
+ | 016A ???: 0 | ||
+ | 016B InitialStr: | ||
+ | 017B ResetStr: | ||
+ | 018B CursorStr: | ||
+ | 019B BinaryAddr: | ||
+ | 019C ColumnOff: | ||
+ | 019D LineOff: | ||
+ | 019E XPosition: | ||
+ | 019F YPosition: | ||
+ | 01A0 DelayCursor: | ||
+ | 01A2 ClearScrStr: | ||
+ | 01A8 HomeStr: | ||
+ | 01AE InsLineStr: | ||
+ | 01B4 DelLineStr: | ||
+ | 01BA DelayLine: | ||
+ | 01BC EraToEolStr: | ||
+ | 01C2 HLStartStr: | ||
+ | 01C8 HLEndStr: | ||
+ | 01CE DelayHL: | ||
+ | </ | ||
+ | |||
+ | ausgelesen mit terminal_info.pl (s. Downloads). | ||
**Beispiel Z9001** | **Beispiel Z9001** | ||
< | < | ||
+ | Turbo 3 | ||
+ | Turbo 3.00 | ||
+ | |||
+ | Terminal Configuration | ||
+ | 125 | ||
0153 TermTypStr: | 0153 TermTypStr: | ||
0168 Width: | 0168 Width: | ||
Zeile 99: | Zeile 330: | ||
01C8 HLEndStr: | 01C8 HLEndStr: | ||
01CE DelayHL: | 01CE DelayHL: | ||
+ | |||
+ | Editor Configuration | ||
+ | addr nr command | ||
+ | CURSOR MOVEMENTS: | ||
+ | 42A1 0 new line | ||
+ | 42A3 1 Character left | ||
+ | 42A5 2 | ||
+ | 42A7 3 Character right 01,09 01,^I 01,^D | ||
+ | 42A9 4 Word left 01,01 01,^A 01,^A | ||
+ | 42AB 5 Word right | ||
+ | 42AD 6 Line up 01,0B 01,^K 01,^E | ||
+ | 42AF 7 Line down 01,0A 01,^J 01,^X | ||
+ | 42B1 8 Scroll down 01,17 01,^W 01,^W | ||
+ | 42B3 9 Scroll up 02, | ||
+ | 42B6 10 Page up 01,12 01,^R 01,^R | ||
+ | 42B8 11 Page down 01,03 01,^C 01,^C | ||
+ | 42BA 12 To left on line 01,19 01,^Y 02, | ||
+ | 42BC 13 To right on line | ||
+ | 42BE 14 To top of page | ||
+ | 42C1 15 To bottom of page 02, | ||
+ | 42C4 16 To top of file | ||
+ | 42C7 17 To end of file | ||
+ | 42CA 18 To begining of block | ||
+ | 42CD 19 To end of block 02, | ||
+ | 42D0 20 To last cursor position | ||
+ | INSERT & DELETE: | ||
+ | 42D3 21 Insert mode on/ | ||
+ | 42D5 22 Insert line 01,0E 01,^N 01,^N | ||
+ | 42D7 23 Delete line 01,02 01,^B 01,^Y | ||
+ | 42D9 24 Delete to end of line 02, | ||
+ | 42DC 25 Delete right word 01,14 01,^T 01,^T | ||
+ | 42DE 26 Delete character under cursor | ||
+ | 42E0 27 Delete left character | ||
+ | 42E2 28 | ||
+ | BLOCK COMMANDS: | ||
+ | 42E4 29 Mark block begin | ||
+ | 42E7 30 Mark block end | ||
+ | 42EA 31 Mark single word | ||
+ | 42ED 32 Hide/ | ||
+ | 42F0 33 Copy block | ||
+ | 42F3 34 Move block | ||
+ | 42F6 35 Delete block | ||
+ | 42F9 36 Read block from disk | ||
+ | 42FC 37 Write block to disk 02, | ||
+ | MISC. EDITING COMMANDS: | ||
+ | 42FF 38 End edit | ||
+ | 4302 39 Tab 01,1D 01,^] 01,^I | ||
+ | 4304 40 Auto tab on/ | ||
+ | 4307 41 Restore line | ||
+ | 430A 42 Find | ||
+ | 430D 43 Find & replace | ||
+ | 4310 44 Repeat last find | ||
+ | 4312 45 Control character prefix | ||
</ | </ | ||
- | Zum Auslesen dient ein kleines Perl-Programm terminal_info.pl. | ||
+ | ausgelesden mit terminfo2.pl | ||
+ | |||
+ | |||
+ | ===== Historie ===== | ||
+ | |||
+ | *2024* die Version terminal_info2.pl erkennt die Turbo-Pascal-Version, | ||