Display MoreBei der Nutzung der WiC64-Emulation in Vice fallen mir zwei Dinge auf:
- Während die Antwort eines HTTP-Requests aussteht, friert Vice als Applikation ein, bis der Request beantwortet worden ist. Das sieht man, wenn ein HTTP-Request extra lange dauert, also meinetwegen 2-4 Sekunden.
- Wenn man eine HTTP-Seite mit sagen wir 100 Bytes abturnt und über das 100. Byte hinaus liest, liefert die WiC64-Emulation in Vice noch Bytes zurück (ich glaube, immer $01). Die WiC64-Emulation im Kernal64 liefert keine Bytes mehr (kein NMI).
Da ich mein reales WiC64 noch nicht zusammengelötet habe, kann ich nicht testen, wie es auf realer HW aussieht.
Hi,
Danke fuer diese Inputs - auf welcher Platform hast Du das getestet? (Linux, Windows, ???)
Schick' mir ev. Dein Testprogramm fuer den C64 - dann kann ich das nachstellen.
Mal sehen, ob ich da was finde - ich habe ein WiC64 und kann vergleichen.
lg, pottendo
Zu dem zweiten Punkt:
Um es zu Testzwecken zu reprozieren, dass der sktp-client mehr oder weniger Bytes liest als geliefert werden, kannst Du Dir eine SKTP-Testumgebung aufbauen:
Du brauchst einen Webserver mit PHP + sktp-server und in Vice oder am C64 dann den sktp-client. (siehe Web-Apps in PHP erstellen für den C64 mit Sidekick64 oder WiC64 per sktp-server )
Um Fehler zu "provozieren", änderst Du eine beiliebige PHP-Datei auf dem sktp-server im Ordner apps/screentests/. Jede PHP-Datei ruft irgendwann print $this->getCurrentScreen(); auf.
Du kannst nun zu viele Bytes ausliefern (die Content-Length im HTTP-Response-Header wird dadurch aber nicht gefaked, sondern stimmt immer), indem Du einfach sowas machst:
print $this->getCurrentScreen() . "und ein paar mehr Bytes";. Diese Mehrbytes führen vielleicht gar nicht sofort zum Fehler, sondern erst später beim nächsten Request.
Du kannst auch zu wenig Bytes ausliefern über print substr($this->getCurrentScreen(),0,-2);. Hier werden die letzten beiden Bytes einfach abgeschnitten, was einen Fehler provozieren sollte, weil der SKTP-Client noch zwei Bytes weiterlesen will. (die Content-Length im HTTP-Response-Header wird dadurch aber nicht gefaked, sondern stimmt immer)