TSB Tipps
TSB Vektoren, Befehle und Adressen[Bearbeiten | Quelltext bearbeiten]
TSB wird zur Zeit noch ständig weiterentwickelt. Dadurch ändern sich auch immer wieder Vektoren oder Befehls-Einsprungadressen. Die TSB-Programme in den beiden folgenden Abschnitten zeigen den aktuellen Stand.
Vektoren[Bearbeiten | Quelltext bearbeiten]
Ausgabe der TSB-Vektoren auf dem Bildschirm:
100 PRINT:RETRACE:PRINT:PRINT 110 V=$0300-2: CSET0 120 LOOP 130 : V=V+2 140 : IF V=$030C THEN V=$0314 150 : IF V=$031A THEN V=$0330 160 : PRINT "$"$$V"-$"$$(V+1);": "; 170 : PRINT "$"$$(D!PEEK(V)) 190 : EXIT IF V=$0332 200 END LOOP
Beispiel:
AD86 2.21026 $0300-$0301: $9E9F $0302-$0303: $825B $0304-$0305: $8233 $0306-$0307: $823F $0308-$0309: $917C $030A-$030B: $8C7F $0314-$0315: $969E $0316-$0317: $8313 $0318-$0319: $82F9 $0330-$0331: $8BE7 $0332-$0333: $8BF8 |
Befehle und Adressen[Bearbeiten | Quelltext bearbeiten]
Das folgende Programm gibt die TSB-Schlüsselwörter und ihre Adressen auf dem Bildschirm und dem Drucker aus. Die Werte B (Befehlstabelle) und A (Adressen der Befehle) in Zeile 130 müssen eventuell angepasst werden. Der folgende Code ist für TSB Versionen ab 2.20806 anwendbar.
50 OPEN 4,4: CMD4: RETRACE 60 PRINT#4: PRINT#4: CLOSE4 100 OPEN 4,4 110 PRINT#4,"TSB BEFEHLSTABELLE " 120 PRINT#4,"--------------------" 130 B=$83DF:A=$86C3 140 SA$=DUP(" ",10):S2$=DUP(" ",2) 150 FOR I=1 TO 127 160 : USE "### ",I; 170 : USE#4,"### ",I; 180 : REM BEFEHLE 190 : T$="" 200 : REPEAT 210 : T=PEEK(B) 220 : T$=T$+CHR$(T AND 127) 230 : B=B+1 240 : UNTIL T>127 250 : L=10-LEN(T$):D$=DUP(" ",L)+"$" 260 : PRINT T$;D$;:PRINT#4,T$;D$; 270 : REM STARTADRESSE HEX 280 : AL=PEEK(A):AH=PEEK(A+1) 290 : AD=AH*256+AL+1 300 : PRINT $$AD:PRINT#4,$$AD 310 : A=A+2 320 NEXT 330 PRINT#4:CLOSE4
Beispiel der Druckausgabe:
AD86 2.30117 TSB BEFEHLSTABELLE -------------------- 1 HIRES $9208 2 PLOT $9265 3 LINE $934C 4 BLOCK $BBCE 5 FCHR $AC5F 6 FCOL $AC5F 7 FILL $AC5F 8 REC $BAF8 9 ROT $A160 10 DRAW $A059 11 CHAR $A192 12 HI COL $A272 13 INV $AC5F 14 FRAC $9E9D 15 MOVE $AC5F 16 PLACE $CCD1 17 UPB $AC5F 18 UPW $AC5F 19 LEFTW $AC5F 20 LEFTB $AC5F 21 DOWNB $AC5F 22 DOWNW $AC5F 23 RIGHTB $AC5F 24 RIGHTW $AC5F 25 MULTI $94EE 26 COLOUR $952F 27 MMOB $95CD 28 BFLASH $966C 29 MOB SET $96DE 30 MUSIC $975F 31 FLASH $978E 32 REPEAT $9AF8 33 PLAY $9905 34 DO $B573 35 CENTRE $9945 36 ENVELOPE $9981 37 CGOTO $99D2 38 WAVE $99E1 39 FETCH $B007 40 AT( $B8B4 41 UNTIL $9B19 42 > $9E9D 43 > $9E9D 44 USE $820B 45 > $9E9D 46 GLOBAL $A343 47 > $9E9D 48 RESET $9C03 49 PROC $9E38 50 CALL $9C66 51 EXEC $9C36 52 END PROC $9D13 53 EXIT $9D31 54 END LOOP $C96F 55 ON KEY $9D77 56 DISABLE $9D6F 57 RESUME $9DFC 58 LOOP $9E5A 59 DELAY $C938 60 CLS $81C0 61 > $9E9D 62 > $9E9D 63 > $9E9D 64 SECURE $C941 65 DISAPA $9759 66 CIRCLE $9492 67 ON ERROR $9E76 68 NO ERROR $9E98 69 LOCAL $A301 70 RCOMP $9F21 71 ELSE $A2C8 72 RETRACE $9B47 73 TRACE $9B59 74 DIR $9546 75 PAGE $98EB 76 DUMP $9F50 77 FIND $A59D 78 OPTION $9B62 79 AUTO $9BD4 80 OLD $9EDC 81 JOY $9E9D 82 MOD $BFE3 83 DIV $81C0 84 D! $B8EA 85 DUP $B7B8 86 INKEY $9E9D 87 INST $CA09 88 TEST $9E9D 89 LIN $C83C 90 EXOR $9E9D 91 INSERT $AF44 92 POT $9E9D 93 PENX $9E9D 94 > $9E9D 95 PENY $9E9D 96 SOUND $864D 97 GRAPHICS $8BCF 98 DESIGN $A634 99 RLOCMOB $A764 100 CMOB $A79D 101 BCKGNDS $A7AC 102 PAUSE $A7DC 103 NRM $A82C 104 MOB $A851 105 OFF $A876 106 ANGL $AB16 107 ARC $A88C 108 COLD $8147 109 SCRSV $B1A5 110 SCRLD $B191 111 TEXT $B22A 112 CSET $B321 113 VOL $B34F 114 DISK $B358 115 HRDCPY $B4D3 116 KEY $B586 117 PAINT $B605 118 LOW COL $93DE 119 COPY $BA03 120 MERGE $8337 121 RENUMBER $8371 122 MEM $BDA6 123 DETECT $BDEF 124 CHECK $A27A 125 DISPLAY $BDFE 126 ERR $BFBA 127 OUT $9ED3
Die zusätzlichen Befehle des TSB[Bearbeiten | Quelltext bearbeiten]
TSB ist eine Verbesserung und Erweiterung von Simon's Basic. Wie war es möglich, in eine komplette BASIC-Erweiterung über 30 neue Befehle und Funktionen einzubauen? Das ist auf verschiedene Weisen realisiert worden:
- Zusätzlichen Speicherbereich nutzen: $C400-$C4FF, $C750-$CAA8, $CC00-$CFFF
- Bestehende Programmteile kürzer fassen (optimieren)
- Bestehende Funktion zusätzlich als Befehl bzw. Befehl zusätzlich als Funktion (oder auch als weiteren Befehl) nutzen
- Als Befehl spezielle Token verwenden, die als nicht benutzbar gekennzeichnet waren
- Neue Befehle bzw. Funktionen durch Zusammensetzen bestehender Befehle/Funktionen generieren
Eine Übersicht der neuen Befehle und Funktionen nach Art ihrer Implementierung:
Token | Name | Verwendung |
Mehfache Nutzung: | ||
$64 $28 | AT | Funktion + Befehl |
$64 $7c | CHECK | Funktion + Befehl |
$64 $7d | DISPLAY | Befehl+ Systemvariable |
$64 $53 | DIV | Funktion + Befehl |
$64 $55 | DUP | Funktion + Befehl |
$64 $61 | GRAPHICS | Systemkonstante + Befehl |
$64 $5B | INSERT | Funktion + Befehl |
$64 $57 | INST | Funktion + Befehl |
$64 $59 | LIN | Systemvariable + Befehl |
$64 $52 | MOD | Funktion + Befehl |
$64 $67 | NRM | Befehl + Funktion |
$64 $10 | PLACE | Funktion + Befehl |
$64 $60 | SOUND | Systemkonstante + Befehl |
$64 $2C | USE | Befehl + Befehl <const> |
Nutzung spezieller Token: | ||
$64 $B3 | CLS | +Befehl |
$64 $54 | D! | +Befehl |
$64 $22 | DO | +Befehl |
$64 $22 | DONE | +Befehl |
$64 $22 | DO NULL | +Befehl |
Zusammengesetzt: | ||
$64 $54 $C2 | D!PEEK | +Funktion |
$64 $7E $B0 | ERROR | Funktion + Operator |
$64 $7A $9A | MEMCONT | +Befehl |
$64 $7A $96 | MEMDEF | +Befehl |
$64 $7A $C3 | MEMLEN | +Befehl |
$64 $7A $93 | MEMLOAD | +Befehl |
$64 $7A $B0 | MEMOR | +Befehl |
$64 $7A $C2 | MEMPEEK | +Befehl |
$64 $7A $B9 | MEMPOS | +Befehl |
$64 $7A $87 | MEMREAD | +Befehl |
$64 $7A $8C | MEMRESTORE | +Befehl |
$64 $7A $94 | MEMSAVE | +Befehl |
$64 $6D $96 | SCRSV DEF | +Befehl |
$64 $6E $96 | SCRLD DEF | +Befehl |
$64 $6D $8C | SCRSV RESTORE | +Befehl |
$64 $6E $8C | SCRLD RESTORE | +Befehl |
Kompatibilität[Bearbeiten | Quelltext bearbeiten]
Dieses Kapitel behandelt die Aufwärtskompatibilität von TSB, gibt also Antworten auf die Frage "Wie muss man ein in Simons' Basic geschriebenes Programm anpassen, damit es in TSB läuft?".
Laufwerk Geräteadresse[Bearbeiten | Quelltext bearbeiten]
Wenn das Simons-Basic-Programm eine andere Geräteadresse (ga) als 8 für ein Laufwerk benutzt, ist bei den entsprechenden Befehle (LOAD, SAVE, OPEN)) eine Anpassung nötig.
Simons' Basic | TSB |
---|---|
SAVE "datei",9 | USE 9: SAVE "datei" |
LOAD "datei",9 | USE 9: LOAD "datei" |
OPEN 2,9,2,"datei" | USE 9: OPEN 2,ga,2,"datei" |
SCRLD und SCRSV[Bearbeiten | Quelltext bearbeiten]
- Auch bei den Befehlen SCRLD und SCRSV muss die Geräteadresse (ga) mit USE bestimmt werden.
- Die Sekundäradresse darf nicht größer als 2 sein. Dies würde in TSB bei SCRSV oder SCRLD nicht den Textschirm, sondern die Grafik speichern bzw. laden.
- Empfehlenswert - wenn auch nicht zwingend notwerndig - ist es, den Dateinamen-Zusatz "P,W" bzw. "P,R" statt "S,W" bzw. "S,R" zu benutzen, weil TSB anders als Simons' Basic die Startadresse speichert.
Simons' Basic | TSB |
---|---|
SCRSV 2,9,2,"datei,S,W" | USE 9: SCRSV 2,ga,2,"datei,P,W" |
SCRSV 3,8,3,"datei,S,W" | SCRSV 2,ga,2,"datei,P,W" |
SCRLD 2,8,2,"datei,S,R" | SCRSV 2,ga,2,"datei,P,R" |
KEY[Bearbeiten | Quelltext bearbeiten]
Der Befehl KEY 0 hat eine andere Bedeutung:
- in Simons' Basic führt KEY 0 zur Anzeige der Funktionstastenbelegung genauso wie DISPLAY.
- In TSB schaltet KEY 0 die Funktionstastenbelegung ab, genauso wie der neue TSB-Befehl KEY OFF.
Simons' Basic | TSB |
---|---|
KEY 0 | DISPLAY |
MEM[Bearbeiten | Quelltext bearbeiten]
- Nach MEM kann man in Simons' Basic nicht die beiden Zeichensätze (Groß-Grafik/Groß-Klein) wechseln. Soll ein SB-Programm mit MEM unter TSB laufen, muss nach MEM der Befehl CSET 0 folgen.
Simons' Basic | TSB |
---|---|
MEM | MEM:CSET 0 |
MERGE[Bearbeiten | Quelltext bearbeiten]
- In Simons' Basic lädt MERGE ein BASIC-Programm hinter ein bereits im Speicher vorhandenes.
- In TSB lädt MERGE ein BASIC-Programm zu einem bereits im Speicher vorhandenen hinzu und integriert es anhand der Zeilennummern. Das neue wird also in das alte hineingemischt.
PAUSE[Bearbeiten | Quelltext bearbeiten]
Beim Befehl PAUSE werden der nachfolgende Zeilenvorschub und die Syntax der Zeitangabe unterschiedlich gehandhabt.
- Simons' Basic:
- bei einem PAUSE ohne Ausgabestring wird kein Zeilenvorschub angehängt.
- die Zeitangabe kann ein beliebiger numerischer Ausdruck sein, auch eine Variable
- TSB:
- hinter PAUSE wird immer ein Zeilenvorschub angehängt, es sei denn, er wird mit einem abschließenden Trennzeichen (z.B. einem Semicolon) unterdrückt.
- der Ausdruck für die Zeitangabe muss immer mit einer Ziffer beginnen, andernfalls wird die Fehlermeldung TYPE MISMATCH ERROR ausgegeben, weshalb man dieses vermeidet, indem man
PAUSE 0+<ausdruck>
eingibt.
Beispiele:
Simons' Basic | TSB |
---|---|
PAUSE "bitte warten", 1 | PAUSE "bitte warten", 1; |
A=2: PAUSE "bitte warten", A | A=2: PAUSE "bitte warten", 0+A; |
PAUSE "bitte warten", .9 | PAUSE "bitte warten", 1; |
Im letzten Fall hätte man als TSB-Wert auch 0+.9 oder einfacher 0.9 schreiben können. Da sowohl in Simons' BASIC als auch in TSB der Wert für die Zeitangabe auf einen Ganzzahlwert abgerundet wird, ist das aber nicht sinnvoll.
RETRACE[Bearbeiten | Quelltext bearbeiten]
Der Befehl RETRACE hat eine völlig andere Bedeutung.
- in Simons' Basic zeigt RETRACE das letzte vom Befehl TRACE erzeugte Beobachtungsfenster am Bildschirm rechts oben, falls der TRACE-Modus aktiv ist.
- In TSB zeigt RETRACE die Initialen des Autors, das Jahr und die aktuelle Versionsnummer an.
USE[Bearbeiten | Quelltext bearbeiten]
Der Befehl USE besitzt in TSB eine andere Syntax und muss in jedem Fall angepasst werden.
Beispiel:
Simons' Basic | TSB |
---|---|
USE "##.##",STR$(22.89) | USE "##.##",22.89 |
CHECK[Bearbeiten | Quelltext bearbeiten]
CHECK als Befehl hat eine völlig andere Bedeutung:
- in Simons' Basic hat CHECK als Befehl die gleiche Syntax und Wirkung wie DETECT und ist daher überflüssig.
- In TSB legt CHECK eine Liste der Prozeduren an, sodass alle folgenden Aufrufe beschleunigt werden.
Wird CHECK in Simon's Basic als Befehl verwendet, so muss es für TSB durch DETECT ersetzt werden.
Beispiel:
Simons' Basic | TSB |
---|---|
CHECK 0: k=CHECK(0,1) | DETECT 0: k=CHECK(0,1) |
TSB Boot[Bearbeiten | Quelltext bearbeiten]
Mit dem BASIC-Programm "TSB.PRG" wird TSB geladen und gestartet:
100 POKE53280,11:POKE53281,12 110 PRINT"SnhP":IFATHEN 200 120 A$="BOOTING TSB ...":A=LEN(A$) 130 FORI=0TOA:PRINT:NEXT 140 PRINTTAB(20-A/2)A$:A=PEEK(186) 150 LOAD"TSB.OBJ",A,1 200 POKE 190,A:POKE 56,128:SYS 33139
Erklärung:
- Programmablauf: Da die Variable A zu Beginn den Wert 0 hat, werden zunächst die Zeilen bis 150 ausgeführt. Nach dem LOAD startet das Programm dann von vorn. Inzwischen hat A einen Wert <> 0 zugewiesen bekommen (in Zeile 140), so dass nun von Zeile 110 in Zeile 200 gesprungen wird.
- Notwendig sind nur das Laden von "TSB.OBJ" und Zeile 200:
- In Speicherstellle 190 ($BE) wird die in TSB mit USE änderbare Gerätenummer gespeichert. Es ist sinnvoll, ihr den Wert PEEK(186) zu geben, weil damit die Nummer des Laufwerks, von dem geladen wurde, übernommen wird. Der vorgegebne Wert in TSB.OBJ ist 8.
- Mit POKE 56,128 wird das Speicherende des BASIC-Bereichs in TSB auf $8000 (original $A000) gesetzt, sodass der Code nicht durch Zeichenketten überschrieben werden kann.
- Mit dem SYS wird TSB gestartet.
- Die vier Steuerzeichen in Zeile 110 sind {CLR}{LOWER CASE}{UP/LO LOCK ON}{BLACK}.
- Farben: Rahmen- und Hintergrundfarbe werden in Zeile 100, die Zeichenfarbe in Zeile 110 mit dem vierten Steuerzeichen geändert. Dies ist dann für den Ladervorgang gültig, wird allerdings in TSB bei einem Reset oder nach COLD wieder auf die Standardwerte zurückgesetzt.
Die folgenden Abschnitte zeigen Versionen des Boot-Programms für spezielle Zwecke.
Eigenes TSB-Programm automatisch starten[Bearbeiten | Quelltext bearbeiten]
Quelle: Thema: Simon's Basic/TSB: Farben, Zeichensätze, Sprites & Co. auf Forum64.de: Ladeprogramm für den Zeichensatzeditor "ZeichenEd".
Das folgende Programm bootet TSB von einem beliebigen Laufwerk und startet darin automatisch das Programm, dessen Name mit den Zeichen "ze" ("zeichened") beginnt.
5 POKE53280,0:POKE53281,0 6 PRINTCHR$(147)CHR$(30)"LOADING..."CHR$(144); 10 IF A=0 THEN A=PEEK(186):LOAD"TSB.OBJ",A,1 20 POKE190,A:POKE56,128 30 FOR P=631 TO 640:READ V:POKE P,V:NEXT 40 POKE 198,10:SYS 33139 60 DATA 76,79,193,34,90,69,42,34,58,131
- Farben alle Schwarz: Bildschirmausgabe beim Booten unsichtbar
- 631-640: Tastaturpuffer, 198: Zeichenanzahl im Tastaturpuffer
- Daten: loA"ze*":{run}
Eigene Funktionstastenbelegung beim Start laden[Bearbeiten | Quelltext bearbeiten]
Da TSB den Speicherbereich für die Funktionstasten nicht beim Start löscht, ist es bei der Diskettenversion möglich, eine eigene Belegung abweichend von der in TSB vorgegebenen mit zu laden.
- Mit TSB eine F-Tastenbelegung nach eigenen Vorstellungen erstellen.
- Mit einem Maschinensprachemonitor den Bereich $C64D-$C74C mit Startadresse in eine Datei auf die TSB Diskette sichern, z.B. mit Vice "save" oder mittels SMON per "s"-Kommando in die Datei "KEYS.C64D".
- Das TSB Bootprogramm laden, wie folgt ändern und dann als alternatives Programm - z.B. "TSB+.PRG" - speichern:
100 POKE53280,11:POKE53281,12 110 PRINT"SnhP":IFB=2 GOTO 200 115 IF B=1 GOTO 151 120 A$="BOOTING TSB ...":A=LEN(A$) 130 FORI=0TOA:PRINT:NEXT 140 PRINTTAB(20-A/2)A$:G=PEEK(186) 150 IF B=0 THEN B=1:LOAD"TSB.OBJ",G,1 151 IF B=1 THEN B=2:LOAD"KEYS.C64D",G,1 200 POKE 190,G:POKE 56,128:SYS 33139
Startet man nun TSB mit "TSB+.PRG", stehen die selbst definierten F-Tasten zur Verfügung.
- Variable G enthält die aktuelle Gerätenummer
TSB und Schnelllader[Bearbeiten | Quelltext bearbeiten]
Will man in TSB einen Schnelllader benutzen, gibt es grundsätzlich die Auswahl zwischen Software- und Hardware-Schnelllader. Da eine Software-Lösung immer zusätzlichen Speicherplatz benötigt, ist eine Cartridge oder ein verändertes Betriebssystem eine attraktive Alternative. Hier muss man allerdings die Kompatibilität zu TSB beachten, das ja nicht nur eine eigene Funktionstastenbelegung mitbringt, sondern auch diverse Betriebssystem-Vektoren geändert hat, darunter die von LOAD- und SAVE. Mit dem Retro-Replay-Modul zum Beispiel gibt es deshalb Probleme. Die folgenden Unterkapitel behandeln einige gut nutzbare Speeder (getestet im Emulator Vice).
Ladezeiten von "tsb.obj" (VD=Virtual Device, TDE=True Drive Emulation):
Vice VD 02,2 sec Vice TDE DolphinDOS 02.9 sec Vice TDE SpeedDOS 06,6 sec Vice TDE JiffyDOS 09,8 sec Vice TDE Ultraload+ 10,1 sec Vice TDE 53,3 sec
Ultraload Plus[Bearbeiten | Quelltext bearbeiten]
Als Software-Variante ist Ultraload Plus zu empfehlen, weil man bei diesem Programm selbst festlegen kann, welchen Speicher es belegen soll. Im Thema: TSB Info - Post #104 auf Forum64.de ist beschreiben, wie man das tun kann.
SpeedDOS plus[Bearbeiten | Quelltext bearbeiten]
Sehr gut arbeitet SpeedDOS plus mit TSB zusammen, weil es zwar die Floppy-Geschwindigkeit erhöht und seine erweiterten Features einbringt, sich aber ansonsten nicht störend bemerkbar macht. Mit einem kleinen Zusatz im Boot-Programm kann man sogar seine DOS-Wedge-ähnlichen Befehle in TSB aktivieren:
100 poke53280,11:poke53281,12
110 print"SnhP":ifathen 200
120 a$="booting tsb ...":a=len(a$)
130 fori=0toa:print:next
140 printtab(20-a/2)a$:a=peek(186)
150 load"tsb.obj",a,1
200 poke 33341,0:poke 33342,240
210 poke 190,a:poke 56,128:sys 33139
In der zusätzlichen Zeile 200 wird in TSB auf den SpeedDOS-Tokenizer bei $F000 weitergeleitet. Die POKE-Adressen können sich allerdings in einer neuen TSB-Version ändern. Die passende Adresse (hier 33341 für TSB v2.20908) lässt sich mit PRINT D!PEEK($0304)+10
ermitteln.
JiffyDOS[Bearbeiten | Quelltext bearbeiten]
Der Schnelllader JiffyDOS ist inzwischen am weitesten verbreitet. Er arbeitet mit ein paar Einschränkungen auch mit TSB zusammen:
- Die JiffyDOS-Befehlserweiterung ist nicht aktiv.
- Die Funktionstastenbelegung von JiffyDOS sollte ausgeschaltet sein, da sie sonst mit der von TSB kollidiert. Bei der TSB-Diskettenversion kann man dafür wie bei SpeedDOS ein spezielles Laderprogramm erstellen, hier mit der Zeile
200 @f
. Wird TSB von einer CRT gestartet, müssen die F-Tasten von JiffyDOS nachträglich deaktiviert werden. Dies ist mitSYS $E4C2
möglich.
Die weiteren Tastenbelegungen von JiffyDOS stehen auch in TSB zur Verfügung.
Dolphin DOS[Bearbeiten | Quelltext bearbeiten]
Will man einen Hardware-Schnelllader mit höherer Geschwindigkeit, dann ist Dolphin DOS eine gute Wahl. Eigenschaften in TSB:
- Die @ und &-Befehle sind nicht aktiv.
- Die Funktionstastenbelegung von Dolphin DOS sollte man mit CTRL X abschalten, da sie sonst mit der von TSB kollidiert.
- Die Tasten für den erweiterten Bildschirm-Editor funktionieren in TSB alle bis auf CTRL @ und CTRL &.
- Der Maschinensprache-Monitor kann mit SYS$F000 (nicht SYS0!) gestartet werden.
- Die Reset-Funktionen sind zum Teil nutzbar. Mit Restore +Space kann man z.B. TSB beenden und zu Dolphin DOS zurück. Von hier kann - sofern nicht wichtige Speicherbereiche überschrieben wurden - mit
SYS 33139
TSB wieder aktiviert werden.
In Vice lässt sich TSB als CRT unter Dolphin DOS bequem mit Hilfe einer eigenen Konfigurationsdatei hinter dem Befehlsparameter "-config" starten. Dazu kopiert man seine "vice.ini" in die neue Konfigurationsdatei - etwa "dolphindos-tsb.cfg" - und ändert/ergänzt darin die folgenden Zeilen ($ROMpath und $CRTpath dem eigenen System entsprechend einsetzen):
[C64SC] KernalName="$ROMpath\dolphindos\kernal-20-3.rom" DosName1541="$ROMpath\dolphindos\c1541-20-x.rom" CartridgeType=0 CartridgeFile="$CRTpath\tsb_md.crt" Drive8ExtendImagePolicy=2 Drive8Type=1541 Drive8RAM8000=1 Drive8ParallelCable=1 Drive8TrueEmulation=1 VirtualDevice8=0
CRT, REU und die Nachladeprogramme[Bearbeiten | Quelltext bearbeiten]
Dieses Kapitel enthält Informatinen zu den CRT-Versionen von TSB und zu den Nachladeprogrammen und deren Behandlung in einer CRT und/oder einer REU.
Nachladeprogramme[Bearbeiten | Quelltext bearbeiten]
Auf der TSB-Diskette findet man neben der Systemdatei "tsb.obj" die folgenden Nachladeprogramme:
- tsb.mem enthält den Speicherbereich $CC00-$CFFF aus "tsb.obj". Wenn dieser Speicher mit MEM überschrieben worden ist, wird er mit NRM wieder aus dieser Datei geladen.
- tsb.ext enthält die DOS-Wedge, die mit INST geladen und in TSB als Erweiterung implemenitert werden kann.
- tsb.hsg enthält die "High-Speed-Grafik"-Erweiterung, die mit GRAPHICS in TSB implementiert werden kann und zusaätzlich den Speicherbereich $7000-$7C74 belegt.
TSB auf CRT[Bearbeiten | Quelltext bearbeiten]
Seit März 2021 gibt es TSB auch als CRT-Datei. Die Entstehungsgeschichte dazu kann man im Thema: TSB Info - ab Post #6 auf Forum64.de lesen. Es gibt zwei unterschiedliche CRT-Versionen:
- Beim Start wird TSB ins RAM bei $8000-$CFFF geladen und danach die Cartridge ausgeschaltet. Für die Nachladeprogramme ist eine Diskette nötig. Die Cartridge kann (zumindest im virtuellen Betrieb) zusammen mit einer REU benutzt werden, da die Register für die Steuerung - $DE00 für MAGIC DESK, $DF00 für REU - verschieden sind.
- Beim Start werden folgende Daten aus der Cartridge ins RAM geladen:
- TSB.HSG: Die High-Speed Grafikerweiterung liegt im üblichen Bereich $7000-$7C74. Will man sie benutzen, muss sie mit SYS$7000 aktiviert werden.
- Die Nachlade-Routine: Sie belegt den Bereich $7F80-$7FFF. Mit ihr kann man aus der Cartridge bestimmte Versionen des Speicherbereichs $CC00-$CFFF nachladen, so dass keine Diskette mit "tsb.mem" und "tsb.ext" nötig ist.
- TSB: $8000-$CFFF
- Folgende Bereiche werden bei Bedarf aus der Cartridge nachgeladen:
- Der "TSB.MEM"-Bereich aus TSB, den MEM überschreibt, wird mit NRM wieder geladen.
- Der "TSB.EXT"-Bereich mit der DOS-Wedge sollte eigentlich mit dem Befehl INST geladen werden. Bis zur aktuellen Uniprom-CRT TSB Version 2.20903 ist das automatische Laden dieses Programms aus der CRT leider noch nicht implementiert, so dass nach INST bei nicht eingelegter Diskette die Meldung "File not found" erscheint. Es ist aber möglich, "TSB-EXT" mit der Nachlade-Routine aufzurufen:
POKE 782,$CC: SYS$7F86: SYS$CC00
- Die Uniprom-CRT kann nicht zusammen mit einer REU benutzt werden, da beide auf das gleiche Steuerungsregister zugreifen.
Nachladen von REU[Bearbeiten | Quelltext bearbeiten]
Bei der Nutzung der TSB-Diskettenversion wäre ein Nachladen der "tsb.mem"-Datei von der REU praktisch. Mit dem TSB-Hack TSB REUMEM von Petrus, der diese Option in TSB einrichtet und damit das Laden von Diskette überflüssig macht, ist dies möglich. Diese TSB-Variante könnte allerdings mit künftigen TSB-Versionen nicht mehr kompatibel sein.