Zwar harte Kritik, aber schön beschrieben, wie die Probleme ausgebessert wurden.
TSB Info
-
GoDot -
14. Januar 2021 um 14:30 -
Unerledigt
Es gibt 2.419 Antworten in diesem Thema, welches 329.476 mal aufgerufen wurde. Der letzte Beitrag (
-
-
-
Ja, vom Prinzip schon. Wenn ich das geschrieben hätte, wären da sicherlich auch einige dieser Probleme enthalten. Nicht jeder kennt alle Tricks. Mit dem Hires-Farbüberspringen könnte ich das z.B. auch nicht besser.
-
- Interessanter Beitrag
Mal wieder Zeit für ein kleines TSB-Demo!

Diesmal ein farbiges mit Bewegung in Hires.
Code
Alles anzeigen100 hires0,15:poke648,$c0:f=$64:text8,192,chr$(2)+"End with 'x'" 110 fchr 0,28,12,25,$0b:fchr 19,0,28,6,$0b:rec 0,0,224,152,1 120 repeat:f=f+1:if f>255 then f=0 130 rec 44,28,56,40,1 140 fchr 3,5,8,6,f 150 for i=0 to 9:rightw 3,5,8+i,6:next 160 rec 44,28,56,40,0:rec 114,28,56,40,1 180 for i=0 to 7:downw 3,14,8,6+i:next 190 rec 114,28,56,40,0:rec 114,84,56,40,1 210 for i=0 to 8:leftw 8,13-i,9,8:next 220 rec 114,84,56,40,0:rec 44,84,56,40,1 240 for i=0 to6 :upw 9-i,5,8,7:next 250 rec 44,84,56,40,0:rec 44,28,56,40,1 270 getx$ 280 untilx$="x" 290 poke648,$04Einfach in TSB injizieren und RUN.
Arndt
-
Ein wenig Erläuterung:
Der Farbkasten wird mit dem Bitte melde dich an, um diesen Link zu sehen. erzeugt, der in Bitte melde dich an, um diesen Link zu sehen. das erste Mal das Licht der Welt erblickt hat. Das hab ich für die Simulation der Bewegung erweitert mit den TSB-Scroll-Befehlen Bitte melde dich an, um diesen Link zu sehen., DOWN, LEFT und UP, und zwar in der Variante mit „W“ („wrap“), weil hier sonst eine schwarze „Bremsspur“ mit roten Pixeln entstünde.
Die ersten beiden Durchgänge (nach rechts und unten) sind eigentlich falsch gedacht, hier wird der Scroll-Bereich einfach nur vergrößert und nicht verschoben (was aber im Endeffekt aufs Gleiche hinausläuft), die beiden letzten machen es aber „richtig“, hier wandert der Scroll-Bereich mit.
Am Anfang (Zeile 110) sieht man, wie *blitzschnell* (statt mit dem lahmen Bitte melde dich an, um diesen Link zu sehen.-Befehl) größere Teile des Bildschirms bearbeitet werden können, um den Eindruck eines Action-Bereichs auf dem Screen hervorzurufen (dort, wo dann die Bewegung stattfindet).Ich hoffe, man kann solche Sachen mal für eigene Programme nutzen.

Arndt -
Ich habe den Code oben ausprobiert und es sieht sehr interessant aus.
Sehe ich schon in einem Intro-Screen von mir!

Nach wenig experimentieren erzielte ich selber interessante Effekte {lese: gemischte Salat!}, aber mit TSB kenne ich mich zu wenig aus = gar nicht!
{wenn ich allerdings Jahrzehnte zurück denke, kann ich mich schwach erinnern damals ein Buch für Simon's Basic gekauft zu haben. Es sei denn es war ein Traum!}
Was ich aber immerhin jetzt auf die Beine stellte, ist meine C128 Zeilen in TSB kompatible umzuwandeln {war gar nicht so schwer, zum Glück, und schon erster Versuch war ein Erfolg}
Dann habe ich noch alles ein wenig verändert und leider zu spät gesehen, dass es auch HSG Grafik gibt {die allerdings kein MultiColor kann}. Der Code wird dann noch irgendwann nochmals angepasst damit ich sehe wie viel schneller HSG ist.
{Gehen zehn Linien ohne WARP! Das wäre was!}
Wie auch immer, wer das hier unten ausprobieren will, sollte das nur im Emulator tun und WARP einschalten {oder C64U verwenden
, 48MHz Turbo Mode!} Oder die 'fd' Variable mit 1 oder 2 futtern!TSB ist ziemlich vielseitig! Werde mir das mal näher anschauen müssen!
Code
Alles anzeigen10 rem by lived.ch / august 2025 15 color 0,0:hires 0,0:ln=10 20 multi on:multi 3,6,14 30 dim x1(ln),y1(ln),x2(ln),y2(ln) 40 dim s1(ln),s2(ln),s3(ln),s4(ln) 50 fd=5 60 if fd>10 then print "10 is max!":end 70 : 80 fora=1tofd:rem can take a bit (fd!) 90 x1=int(rnd(ti)*160) 100 x2(a)=int(rnd(ti)*160) 110 y1(a)=int(rnd(ti)*200) 120 y2(a)=int(rnd(ti)*200) 130 : 140 s1(a)=int(rnd(ti)*3)+1 150 s2(a)=int(rnd(ti)*3)+1 160 s3(a)=int(rnd(ti)*3)+1 170 s4(a)=int(rnd(ti)*3)+1 180 next 190 rem cycles 200 for nc=1 to 100 210 for a=1 to fd 220 x1(a)=x1(a)+s1(a) 230 y1(a)=y1(a)+s2(a) 240 x2(a)=x2(a)+s3(a) 250 y2(a)=y2(a)+s4(a) 260 : 270 if x1(a)>159 then s1(a)=-s1(a) 280 if x1(a)<3 then s1(a)=abs(s1(a)) 290 if x2(a)>159 then s3(a)=-s3(a) 300 if x2(a)<3 then s3(a)=abs(s3(a)) 310 : 320 if y1(a)>199 then s2(a)=-s2(a) 330 if y1(a)<3 then s2(a)=abs(s2(a)) 340 if y2(a)>199 then s4(a)=-s4(a) 350 if y2(a)<3 then s4(a)=abs(s4(a)) 360 : 370 cs=int(rnd(ti)*3)+1 380 : 390 line x1(a),y1(a),x2(a),y2(a),cs 400 next a 410 next nc 420 hires 0,0 430 cm=cm+1 440 if cm=1 then multi 8,9,10 450 if cm=2 then multi 2,3,4 460 if cm=3 then multi 5,13,7 470 if cm=4 then multi 11,12,15 480 if cm=5 then multi 3,6,14 490 if cm=6 then multi 1,2,7:cm=0 500 goto190 -
- Interessanter Beitrag
wer das hier unten ausprobieren will, sollte das nur im Emulator tun und WARP einschalten
Sieht aus wie früher mal ein Windows-Bildschirmschoner!

und leider zu spät gesehen, dass es auch HSG Grafik gibt
Linien sind in HSG zwar auch schneller, aber nicht spürbar. Vor allem Kreise sind dort unglaublich.
TSB ist ziemlich vielseitig! Werde mir das mal näher anschauen müssen!
Tu du das! Gerne mal Fragen stellen oder Vorschläge machen!
Noch mal zu deinem Beispiel. Das sind mir persönlich zu viele Linien, zu viele wirre Linien, meine ich. Ich bin mehr für was Konkretes im Ergebnis. Hier mal ein Beispiel (aus dem Buch "Bitte melde dich an, um diesen Link zu sehen.", die Disk ist in der F64-Wolke zu finden):
Code
Alles anzeigen100 hires 0,1:color 1:dim x(31,19),y(31,19) 110 for i=0 to 30:for j=0 to 18 140 x(i,j)=10+i*10+10*sin(j/3) 150 y(i,j)=10+j*10+10*sin(i/3):plot x(i,j),y(i,j),1:next:next 170 for i=1 to 30:for j=0 to 18 180 line x(i,j),y(i,j),x(i-1,j),y(i-1,j),1:next:next 190 for i=0 to 30:for j=1 to 18 200 line x(i,j),y(i,j),x(i,j-1),y(i,j-1),1:next:next 210 for i=0 to 29:for j=0 to 17 220 if ((i+j)and1)=0 then 240 230 paint x(i,j)+4,y(i,j)+4,1 240 next:next 250 do null 260 color 11Sieht dann so aus (besteht auch aus vielen, vielen Linien, aber es kommt ein konkretes Ergebnis dabei raus
) :Bitte melde dich an, um diesen Anhang zu sehen.
Arndt
-
- Interessanter Beitrag
Commodore will bis Sonntag das Software-Package, das mit dem neuen C64 Ultimate kommt, zusammengestellt haben.
Bin ich der Einzige, der meint, dass auf alle Fälle auch TSB mit dazu gehört? Als konsequente Weiterentwicklung des Klassiker "Simons' BASIC". Mehr "Neu-Retro" und "Commodore-Spirit" geht ja kaum!


-
Danke für das Lob, Snoopy ! Auch die TSB-Dokumentation ist ja ziemlich umfangreich, wenn auch nicht dermaßen gigantisch wie die vom ´64-OS.
Übrigens reagiert GoDot auf eine Ultimate Elite mit automatischem Turbo beim Grafikanzeigen
. Schön zu sehen, wenn sich - wuuusch - das Bild aufbaut!
Arndt -
Danke für das Lob, Snoopy ! Übrigens reagiert GoDot auf eine Ultimate Elite mit automatischem Turbo beim Grafikanzeigen
. Schön zu sehen, wenn sich - wuuusch - das Bild aufbaut!Selbstverständlich "TSB + GoDot" als Doppelpaket mit dazu! Ohne diese Software fehlt jedem C64(-Nachbau) was!

-
- Interessanter Beitrag
Update auf TSB v2.50.828!
In Zusammenhang mit Goodwell s aktuellem Projekt stießen wir auf eine Verhaltensweise des Befehls Bitte melde dich an, um diesen Link zu sehen., die zu Abstürzen mit merkwürdigen Fehlermeldungen führte. Nach einigem Hin und Her ergab sich, dass die bisher angemessene Art, ein Programm im Speicher zu scannen (nämlich vom Basic-Start bis zum Variablen-Start), in einem bestimmten Fall zum beschriebenen Verhalten führt: Wenn nämlich ein neues Programm *über* ein vorhandenes Programm geladen wird! Dann bleibt der Variablen-Start des *alten* Programms aktiv, das neue ist aber (meist - jedenfalls in diesem Fall) kürzer. Es entsteht eine Lücke zwischen dem Programm-Ende und dem Variablen-Start! In dieser Lücke können weiterhin für CHECK relevante Daten stehen, die es auch erfasst und abspeichert. Da sie aber im neuen Programm nicht gültig sind, kam es zu den Abstürzen.
Behoben.
Arndt
-
Danke, Arndt, dass du dir die Zeit genommen hast, dem Problem auf die Spur zu kommen

Wenn man Programmcode nachladen kann, ist das Speicherlimit von 30 kB viel leichter zu verschmerzen

Und CHECK ist ja eine tolle Sache, weil dadurch die Sprünge im Programm schneller werden. Ist echt Klasse, dass man da nun keine Einschränkungen mehr hat

-
GoDot ,
ich habe mir mal TSBneo angeschaut (ja, erst heute), und dabei bin ich auf einen kleinen Fehler gestossen.
Es handelt sich dabei um diese Version: Bitte melde dich an, um diesen Link zu sehen.
Lädt man mit dem Befehl GRAPHICS das VDC_Basic, so wird der Vector in $0308/$0309 auf die Befehlsroutine ins VDC_Basic umgeleitet.
Mit dem Befehl COLD wird der Vektor wieder zurückgestellt.Lädt man den smon mit dem Befehl MONITOR, dann ueberschreibt man das VDC-Basic.
Hat man das VDC_Basic vorher nicht deaktiviert, dann hat man nun keine Möglichkeit mehr, es abzuschalten.Jeder Befehl, der nach dem Beenden des Monitors eingegeben wird, führt nun aufgrund des fehlerhaften Vektors unweigerlich zu einem Absturz (break)
Kurz:
Starten des Moduls.Einabe von GRAPHICS
Eingabe von MONITOR
Monitor beenden.
Nun führt jeder weiterer Befehl zum break.Vorschläge zur Lösung:
1. Dem User nahelegen, das vor dem Gebrauch des Monitors unbedingt das VDC_Basic vorher mit dem Befehl COLD abgeschaltet werden muss.
2. Im Monitor beim Start eine kurze Befehlssequenz aufrufen, welche die Vektoren wieder auf TSB stellt, da VDC_Basic nun ja nicht mehr genutzt werden kann.
(Das könnte auch hilfreich für eventuelle zukünftige Erweiterungen sein)
Claus -
Lädt man den smon mit dem Befehl MONITOR, dann ueberschreibt man das VDC-Basic.
Hat man das VDC_Basic vorher nicht deaktiviert, dann hat man nun keine Möglichkeit mehr, es abzuschalten.Ah, danke für den Hinweis! Ich hatte das schon mal auf meiner Todo-Liste, ist aber irgendwie in Vergessenheit geraten. Ja, SMON und HSG (du meinst „HSG“ statt „VDC-Basic“) belegen den gleichen Platz, klar, dass das zu einem Konflikt führt. Mal sehen, ob ich HSG und SMON austauschbar hinkriege (wenn SMON startet, kann es ja nachsehen, ob HSG bereits aktiv ist, und es beim Beenden wieder nachladen und erneut aktivieren).
Arndt
(Nebenbei: Fürs VDC-Basic gilt das Gleiche. Hm…) -
Gibt es noch irgendwelchen Speicher, der normalerweise unter TSB nicht genutzt wird, weil er extrem unhandlich ist oder so? Unterhalb des BASIC ROMs, unterhalb des IO-Bereichs, ...? In dem Fall könnte der Bereich als Cache für das "entladene" Overlay genutzt werden.
-
Gibt es noch irgendwelchen Speicher, der normalerweise unter TSB nicht genutzt wird, weil er extrem unhandlich ist oder so? Unterhalb des BASIC ROMs, unterhalb des IO-Bereichs, ...? In dem Fall könnte der Bereich als Cache für das "entladene" Overlay genutzt werden.
Ja, die 4K unter dem IO sind ungenutzt. Wenn man auf AllRam schaltet, ginge das. Danke für die Idee!

Arndt -
(du meinst „HSG“ statt „VDC-Basic“)
Da hab ich doch wirklich was verwechselt.
Aber gut, das du es bemerkt hast.

-
(du meinst „HSG“ statt „VDC-Basic“)
Da hab ich doch wirklich was verwechselt.
Aber gut, das du es bemerkt hast.

Reimt sich ja! (HSG/VDC)

-
Update auf TSB 2.50.908!
Das Bitte melde dich an, um diesen Link zu sehen. (wegen des CHECK-Befehls) hat nicht ganz ausgereicht, um Basic-Nachlader korrekt einzubinden. Das ist mit diesem Update behoben. Goodwell kann beruhigt weitermachen und ClausS mit seinem Projekt loslegen (wird er euch selber erklären)!

Arndt
-
-