You are not logged in.

121

Sunday, February 12th 2012, 10:48pm

wenn niemand mit dem petSD reden mag, dann geht das in den idle-Zustand, ohne dass es UNTALK oder UNLISTEN gesehen hat. Ohne timeouts hängt sich der Bus auf, was eigentlich nicht der Fall sein sollte -- der Standard sieht eigentlich vor, dass ein Gerät NRFD aktivieren kann und dann alle Zeit der Welt hat.


Das ist meiner Software zum Verhängnis geworden. Ich habe mir den Source Deiner Wedge angeschaut und wollte mal eine andere Version testen: Directory seitenweise (20 Einträge) und Auswahl per Rollbalken. Nach der Ausgabe der ersten 20 Einträge stirbt der Bus ab.



Immerhin klappte es mit einer echten CBM 2031 und der Emulation (VICE). Für PetSD werde ich mal eine spezielle CBM8296-Version programmieren. Mit dem zusätzlichen Speicher müsste man genügend Puffer für große Directories haben.

Kann man PetSD per Software erkennen ?
If we're evil or divine - we're the last in line. - Ronnie James Dio (1984) -

  • "for(;;)" started this thread

Posts: 1,837

Date of registration: Aug 28th 2005

Location: Leverkusen

  • Send private message

member since 108 month member since 108 month member since 108 month member since 108 month member since 108 month member since 108 month

122

Monday, February 13th 2012, 6:36am

Ja, so wie jedes sd2iec. In der README steht:

Quoted

If you are the author of a program that needs to detect sd2iec for
some reason, DO NOT use M-R for this purpose. Use the UI command
instead and check the message you get for "sd2iec" and "uiec" instead.

Bleibt zu hoffen, dass eine "petSD-Version" möglichst bald unnötig wird: zwischenzeitlich habe ich angefangen, die Bus-Routinen der 2031 nach C zu portieren - was ein ziemlicher Murks ist mit jeder Menge GOTOs und mittels pin-change-Interrupt simulierter Hardware-ATN-Acknowledge inkl. aller Seiteneffekte der Schaltung. Und einen Logic-Analyzer habe ich jetzt dankenswerterweise auch zur Verfügung. Muss doch möglich sein, diese )(/&%$§-Busroutinen in den Griff zu bekommen!!?

123

Monday, February 13th 2012, 9:39am

Ja, die README hatte ich nicht gelesen. Das mit "M-R" hatte ich mir allerdings schon gedacht.

Wenn Du die Bus-Routinen nochmal optimieren könntest, müsste man keine Sonderbehandlung bauen. Das wäre sehr schön. Der Source Deiner Wedge läuft mit der CBM 2031 vollkommen stabil.

http://draft.cbmhardware.de/doku.php?id=…ong_directories
Das ist der ACME-Source vom Test. Kurze Dirs werden so nur auf den Bildschirm gebracht. Sobald das Directory mehr als 20 Einträge hat, kann man dann mit "Space" blättern und "S" den Rollbalken zur Auswahl aktivieren. Mit "ESC" kann man jeweils Abbrechen oder Aussteigen. Nur erstmal nur die grundlegenden Funktionen zur Ausgabe und Auswahl mit kleinen Mängeln, die aufgrund des kurzen Source (<500 Bytes) nicht abgefangen werden.
Ich würde daraus gern ein 4K-ROM mit variabler Plugin-Adresse (RAM) machen. Dann kann man sich evtl. noch eine neue(re) Funktion (D**-Writer, etc.) später in den Speicher laden. Vielleicht wird es erst mal ein reiner "Echt-Floppy"-Explorer. petSD ist im Moment immerhin eine wertvolle Hilfe beim Datentransport vom PC zum CBM.

Vielleicht ist der Source hilfreich beim Testen ... ?
If we're evil or divine - we're the last in line. - Ronnie James Dio (1984) -

Unseen

Hätte gerne 'n Sony PVM-9L3

  • "Unseen" is male
  • »Unseen« is a verified user

Posts: 5,475

Date of registration: Jun 16th 2007

Location: Debara Hamtar

  • Send private message

member since 72 month member since 72 month member since 72 month member since 72 month

124

Monday, February 13th 2012, 11:15am

Bleibt zu hoffen, dass eine "petSD-Version" möglichst bald unnötig wird: zwischenzeitlich habe ich angefangen, die Bus-Routinen der 2031 nach C zu portieren - was ein ziemlicher Murks ist mit jeder Menge GOTOs und mittels pin-change-Interrupt simulierter Hardware-ATN-Acknowledge inkl. aller Seiteneffekte der Schaltung. Und einen Logic-Analyzer habe ich jetzt dankenswerterweise auch zur Verfügung. Muss doch möglich sein, diese )(/&%$§-Busroutinen in den Griff zu bekommen!!?

Als ich das damals mit den 1541/1571-IEC-Routinen gemacht habe fand ich es hilfreich, erstmal den Assemblercode auf dem Papier in eine Art Pseudocode umzuformulieren und ein kleines Diagramm der durchlaufenen Codeblöcke mit den Sprüngen dazwischen anzulegen - danach war es etwas einfacher das in Form eines Zustandsautomaten zu pressen um es mit vertretbarem Chaos in C neu zu implementieren.

Quellcode

1
2
3
10 x=rnd(-1963):fori=1to81:y=rnd(1):next
20 forj=1to5:printchr$(rnd(1)*16+70);:next
30 printint(rnd(1)*328)-217

sd2iec Homepage