Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| cpm:turbo_pascal:tinst [2011/09/26 15:19] – angelegt 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: |
| - | # ;Ab hier werden die Installationsdaten von der Laufzeitbibliothek verwendet | + | 016A |
| - | # | + | |
| - | # | + | 016B InitialStr: |
| - | # | + | 017B ResetStr: |
| - | # | + | |
| - | # | + | ;Cursor >> |
| - | # | + | 018B CursorStr: |
| - | # | + | 019B BinaryAddr: |
| - | # | + | 019C ColumnOff: |
| - | # | + | 019D LineOff: |
| - | # | + | 019E XPosition: |
| - | # | + | 019F YPosition: |
| - | # | + | 01A0 DelayCursor: |
| - | # | + | |
| - | # | + | ;Line >> |
| - | # | + | 01A2 ClearScrStr: |
| - | # ;wenn Clear screen schon Home macht) | + | 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 59: | 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 71: | Zeile 266: | ||
| 01BC EraToEolStr: | 01BC EraToEolStr: | ||
| 01C2 HLStartStr: | 01C2 HLStartStr: | ||
| + | 01C8 HLEndStr: | ||
| + | 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 98: | 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, | ||