Moin,
ich schreibe ja grad' den FIBR (siehe thread in Neue Hardware) und hab' da einen sehr komischen bug, den ich mir nicht erklaeren kann...
also, was so passiert (oder auch nicht):
- das programm ist per >LOAD "FIBR.PRG",8< zu laden
- dann mit >RUN< starten
- an dieser stelle wird etliches im speicher initialisiert, das basic-rom abgeschaltet, das programm umkopiert, ein zeichensatz umkopiert, der vic auf bank 3(c0-ff) gestellt, der screen(c4)&charset(c8) eingestellt
- hier wartet das programm auf ein taste (*)
- noch mehr initialisierung
- identifizieren des letztgenuztenlaufwerks mit "UI" (**)
- lesen des verzeichnisses "$"
- lesen (fast) aller load-adressen (also die ersten 2 bytes [fast] aller dateien, 0.1s pause vor jedem lesen)
- anzeigen!
- optional: disk wechseln oder nicht - bei ** wieder beginnen
(alles ab hier passiert nur im emulator vice & power64, 1541-emu: fast & full getestet)
wenn ich das programm direkt (also aus einem verzeichnis) lade, klappt alles!
wenn ich das programm in eine d64 packe und lade klappt bis * alles, danach gibt's komische bugs (s.u.)
wenn ich das programm in eine d64 packe, lade und bei * die disk wechsle oder rausnehme oder ... klappts!
zu den fehlern:
- (ich schalte immer zwischen 2 screen um) der falsche wird angezeigt
- die farben passen nicht (z.B. [fast] alles schwarz)
- das charset wird geschrottet (tritt aber nur an einer bestimmten stelle auf)
speicherplan (grob)
- 1k "wie immer" (ausser, das ich so einige zero pages nutzte)
- 32k (4 bloecke a 8k) fuer verzeichnis listings
- 7k daten (nicht voll genutzt)
- 8k programm (nicht voll genutzt)
- 2k screen (2 screens)
- 2k char rom
- rest (ab d000) unveraendert
beim lesen des verzeichnisses achte ich (bis jetzt) nicht auf die laenge, es koennte also schaden verursachen, aber nur wenn es ueber 31.5k lang ist(!)
ich habe nach dem laden (vor dem run) zwei memory dumps gemacht (verz. und disk laden) und der bereich, in dem das prog ist, war identisch.
wo kann der fehler liegen?
Ciao, ALeX.
P.S.: gibt's irgendwo eine liste von bugs, die zu beachten sind?
{beispiel: jmp ($xxff) klappt nicht wie gewuenscht}
P.P.S.: wie schalte ich die smilies aus? (s.o.)