Ich poste hier mal meinen Code:
öhm, kommt nach dem RESET nicht erstmal ein Hardware-INIT ?
und ich bin mir nicht sicher, ob sich nach dem Ausschalten des MagicDesk-Moduls es sich wieder einschalten lässt ....
You are about to leave Forum64 to get redirected to the following address:
Please note, that the target website is not operated by us. We are not responsible for it's content nor does our privacy policy apply there.
Ich poste hier mal meinen Code:
öhm, kommt nach dem RESET nicht erstmal ein Hardware-INIT ?
und ich bin mir nicht sicher, ob sich nach dem Ausschalten des MagicDesk-Moduls es sich wieder einschalten lässt ....
tsb.ext.prg und tsb.mem.prg liegen beide bei $CC00 .
Wäre es nicht möglich, beides gleichzeitig im RAM zu lagern ab $C900 ?
Möglich schon, das sind Nachlader für die Befehle MEM (verlegt den Bildschirmspeicher nach $cc00) und INST (lädt tsb.ext nach $cc00). Wenn die beiden mit NRM beendet werden, lädt TSB die Datei tsb.mem nach, um den Code an $cc00 zu reparieren. Auch am $c900 ist TSB-Code, daher ist ein Auslagern irgendwo im $C-Bereich auch nicht möglich (allenfalls direkt an $c000 bis $c3ff, da ist nach HIRES der Farbspeicher).
kommt nach dem RESET nicht erstmal ein Hardware-INIT ?
Der Sprung nach $8147 führt auf COLD, das ist das System-Init.
nicht sicher, ob sich nach dem Ausschalten des MagicDesk-Moduls es sich wieder einschalten lässt
Doch, da ich es ja in meinem Code oben ständig aus- und wieder einschalte.
die Pokes mit im Modulcode drin, bevor Du TSB startest
Die POKEs setzen die durch das Init verlorengegangenen Parameter für PAGE (schaltet PAGE ein und setzt die Seitenlänge auf 23).
Ich hab das Einschalten des Moduls (im Code oben) kurz vor JMP $8147 rausgenommen (das Modul ist dann aus). Keine Änderung, VICE hängt, obwohl alles so ist, wie es soll...
Arndt
Edit: Auch die Modulkennung ("CBM80") hab ich mal unkenntlich gemacht. Keine Wirkung, nach einem Reset hängt VICE.
Ich habe das File tsb.obj.prg mal mit exomizer gepackt:
und.... es startet nicht.
Solch ein Phänomän hab ich so noch nicht gehabt.
OK, dann hab ich über den VICE-Monitor über un 8171 gefreezed und davon auch einen 64k-MemoryDump gemacht (all_8171_from_exofile.bin)
Danach 1x von dem D64 geladen und auch mit un 8171 gefreezed und einen 64kb MemoryDump gemacht (all_8171_from_disk.bin).
nun habe ich beide Files über einen HEX-Dump - Vergleich miteinander verglichen.....
vielleicht hilft das ja weiter - einige Adressen (ZP und 2nd-ZP) sind ja schon verschieden ....
[OFFTOPIC]
Interessant finde ich, dass an diversen Stellen im Memory-Dump Werte voneinander abweichen, wo es nicht sein kann ...
z.B. $7c45 (siehe Screenshot#3 oder auch Screenshot#4)
[/OFFTOPIC]
Fehler gefunden! War kein Problem der Cartridge, sondern ein (aus Simons' Basic übriggebliebenes) TSB-Problem! Im COLD-Befehl, der eigentlich einen vollständigen Reset machen sollte (und danach die SB-typischen Sachen), wurde der Interrupt zu früh freigegeben (bevor alle Pointer gesetzt waren), was zum ersten Hänger führte. Außerdem wurde der Tastaturpuffer nicht initialisiert, was beim Start zur fälschlichen Annahme von 255 gedrückten Tasten führte, die dann alle ab $0277 auch eingetragen wurden (was die soeben gesetzten Pointer ab $0300 weder zerstörte) und den zweiten Hänger verursachten.
Behoben!
Das Einzige, was mich noch stört, ist, dass der CLR-Code ($93) am Anfang der Einschaltmeldung nur als Herzchen ausgegeben wird. Und weil PAGE ja hier nicht vom Booter gesetzt wird, hab ich es auf die Taste F1 gelegt. Also nach dem Booten F1 drücken, dann ist PAGE wieder aktiviert.
CRT mit TSB hängt hier dran (und wird aktualisiert, wenn sich was ändert, das kündige ich aber hier dann an).
Viel Spaß!
Arndt
nun habe ich beide Files über einen HEX-Dump - Vergleich miteinander verglichen
Das ist ja gediegen! :-o
???
Arndt
Wow. Vielen Dank. Gleich mal ausprobiert auf der KungFu Flash Cart. Läuft.
Ist noch ein Fehler drin (Basic-RAM-Ende wird falsch gesetzt). Sorry. Ich melde mich später.
Arndt
Edit: Nein, falscher Alarm. Muss einen anderen Grund gehabt haben. Kann mal einer ein bisschen rumprobieren, ob bei Basic-Programmen OUT OF MEMORY auftaucht?
Ich habe mich auch zu früh gefreut. Ich teste mit einem echten C64 und einer 1581. Kein Jiffy DOS im Kernel. Mit der neusten "Disk" Version von TSB startet alles vollständig von der 1581 und ich kann Programme laden. Dem ist nicht so, wenn ich dein CRT über das KungFu Flash lade. TSB startet zwar (mit blauen Bildschirm), aber ich kann nicht auf das Laufwerk zugreifen. Selbst "Error" zeigt nichts an. Ein Vergleich mit dem Simons Basic CRT über das KungFu Flash Modul zeigt, dort kann ich auf das Laufwerk zugreifen.
Übrigens, soll das TSB CRT im blauen Bildschirm starten? Er wird erst grau/hellgrau nachdem ich Run/Stop + Restore Taste zusammen drückte. Nach einem Reset wird der Bildschirm aber wieder blau/hellblau mit dem netten Hinweis "Tuned" unter 64k
Dem ist nicht so, wenn ich dein CRT über das KungFu Flash lade. TSB startet zwar (mit blauen Bildschirm), aber ich kann nicht auf das Laufwerk zugreifen. Selbst "Error" zeigt nichts an.
Übrigens, soll das TSB CRT im blauen Bildschirm starten? Er wird erst grau/hellgrau nachdem ich Run/Stop + Restore Taste zusammen drückte. Nach einem Reset wird der Bildschirm aber wieder blau/hellblau mit dem netten Hinweis "Tuned" unter 64k
Beim Booten wird TSB auf Drive 8 gesetzt, ist dein Laufwerk mit 8 angeschlossen? Wenn nicht, USE plus Laufwerksnummer eingeben.
Der blaue Screen ist richtig. Nur NRM schaltet auf grau (glaube ich, warte mal... nein, nur F8 und STOP/Restore).
Arndt
Ich habe heraus gefunden, dass TSB nicht im ROM von 8000-BFFF läuft, sondern nur im darunter liegenden RAM.
Hab mir mal eine build-chain für das UNIPROM64 gebaut.
make.sh macht nur ein PRG-File was executable ist - das läuft !
make_UNIPROM64-CRT.sh macht ein UNIPROM64 - File, wo der Code 8000-BFFF im ROM verbleibt. - das läuft so nicht.
Beim Booten wird TSB auf Drive 8 gesetzt, ist dein Laufwerk mit 8 angeschlossen? Wenn nicht, USE plus Laufwerksnummer eingeben.
Ja, Laufwerk ist auf 8 gesetzt. Sonst ist nichts dran. Wie gesagt, nur die CRT Version greift nicht aufs Laufwerk zu. Es passiert einfach nichts, als wäre gar keines angeschlossen.
Ich habe heraus gefunden, dass TSB nicht im ROM von 8000-BFFF läuft, sondern nur im darunter liegenden RAM.
Das ist richtig, denn das Basic wird ja verwendet.
Arndt
Ja, Laufwerk ist auf 8 gesetzt.
Versuch trotzdem mal USE 8. Geht es dann? Wenn ja, wird beim Reset das generelle TSB-Laufwerk nicht gesetzt ($be bzw 190, was aber eigentlich geschieht). Ist der Bus irgendwie blockiert?
Arndt
Versuch trotzdem mal USE 8. Geht es dann?
Nein, leider nicht.
Nein, leider nicht.
Funkt das Kung Fu da vielleicht rein? Das TSB-Modul ist ja abgeschaltet.
Arndt
Funkt das Kung Fu da vielleicht rein? Das TSB-Modul ist ja abgeschaltet.
das kann ich nicht beurteilen. Ich kann das KFF lediglich mit anderen CRTs entsprechend laden und mit TSB vergleichen. Die Basic Erweiterungen, wie SB, Basic 4.5 oder auch das COMAL Modul haben mit Laufwerkszugriffen bisher keine Probleme aufgezeigt.
Ich kann ja mal das CRT auf ein Eprom brennen und in das UniProm64 einsetzen und starten. Naja, aber das wird GI-Joe vielleicht auch schon gemacht haben.
Ich kann ja mal das CRT auf ein Eprom brennen und in das UniProm64 einsetzen und starten
Ah ja, das würde mich interessieren!
Arndt
ein RICHTIGES File für das UNIPROM64 gibt´ s hier
Fehler gefunden! War kein Problem der Cartridge, sondern ein (aus Simons' Basic übriggebliebenes) TSB-Problem! Im COLD-Befehl, der eigentlich einen vollständigen Reset machen sollte (und danach die SB-typischen Sachen), wurde der Interrupt zu früh freigegeben (bevor alle Pointer gesetzt waren), was zum ersten Hänger führte. Außerdem wurde der Tastaturpuffer nicht initialisiert, was beim Start zur fälschlichen Annahme von 255 gedrückten Tasten führte, die dann alle ab $0277 auch eingetragen wurden (was die soeben gesetzten Pointer ab $0300 weder zerstörte) und den zweiten Hänger verursachten.
Behoben!
könntest Du mal ein "latest D64" hochladen - daraus könnte ich dann ein fertiges Cartrige-File fürs UNIPROM64 machen.