Hello, Guest the thread was called10k times and contains 190 replays

last post from Spider1982 at the

Elektronischer Schreibschutz

  • Sehe ich das richtig, dass diese Schaltung es ermöglicht, auf physisch schreibgeschützte Disketten zu speichern? Wäre es andersrum nicht auch sinnvoll? Also Verhinderung des Speicherns auf nicht geschützte Disketten?

    Ja, beides ist sinnvoll.



    Das habe ich auch vor 30 Jahren schon gemacht, ohne große Technik.
    Einfach nur ein Kippschalter mit drei Stellungen:


    Normal, immer Schreibschutz, kein Schreibschutz



    Lief tadellos, nur die Erkennung des Diskwechsel ist ein "Schönheitsfehler".
    Der Atmel berücksichtigt auch das ...

  • Nee leider, ich habe gestern die externen platten durchgesehen.
    Da sind keine Sourcen von so Atmel Mini Projekten.
    Höchstens auf einem USB Stick in einer bastelkiste.
    Das finde ich aber höchstens zufällig.



    Aber wir können ja gemeinsam ein kleines Arduino Projekt starten?


    So als Arduino Lern Objekt wo dann am Ende auch was sinnvolles raus kommt ...
    Es kann so jeder was lernenwie man einen Arduino programmiert.


    Erst mal auf einem normalen Arduino bis es passt.
    Am Ende soll es dann auf einem 5€ Nano laufen ...




    Sowas ist ja schnell zusammen geklickt, wenn man sich erst mal einig wird, wie es ganz genau funktionieren soll.



    Machen wir kurz ein Brain Storming. Was wollen wir:

    • Schreibschutz ein, aus, normal
    • Kernal Umschaltung 4 fach (normales DOS, Jiffy, Speed-DOS, ...)
    • Geräte Umschaltung (drive 8, 9, 10, 11)
    • Reset
    • optional LCD Display zweizeilig 16 Zeichen
    • optional Drehimpulsgeber
    • optional Taster und LED
    • optional 7 Segment (Geräte Nummer)



    Diese Lösung könnte man dann auch auch am C64 verbauen, für Kernel Umschaltung, Zeichensatz, Reset und Modul Kennung.




    Im einfachsten Fall ist nur eine LED und ein Taster für Schreibschutz:

    • Nach dem einschalten der Floppy ist alles normal, LED ist aus
    • Der Taster schaltet drei Modi durch: Schreibschutz aus, Schreibschutz ein, Automatic über Lichtschranke
    • Die LED ist aus (für automatic/normal), ein wenn Schreibschutz aktiv, blinkend wenn Schreibschutz aus
    • wenn die Lichtschranke betätigt wird, als ein Diskettenwechsel stattfinden, wird in den Automatic Modus gewechselt



    Optional dazu die Geräteumschaltung einfach:

    • ein Taster wechselt durch die geräte nummer: 8, 9, 10, 11
    • der Atmel speichert es in dem EEPROM, sodass die Gerätenummer erhalten bleibt beim ausschalten
    • Optional eine 7 Segment der die Geräte Nummer anzeigt, ein oder zweistellig (8, 9, A, b) - (8, 9, 10, 11)



    Die komplexere Lösung hat eine LCD Anzeige:

    • erste Zeile im Display zeigt den Kernal Name
    • zweite Zeile zeigt die Gerätenummer, den Schreibschutz, den Lichtschrankenstatus
    • der Drehimpuls Geber dient dazu, alles schalten zu können
    • Optional: die zwei Taster aus der simplen Lösung
  • Trackanzeige war auch noch gewünscht :)

    Wäre machbar


    Das Problem, man kann es nur inkrementell lesen.
    Man weiß nie ganz wirklich, wo man ist.


    Nur nach einem Format kann man es genau sagen ...


    Klar kann man vermuten, dass der erste Lesezugriff nach dem einschalten die BAM ist, also Spur 18.




    Aber wer braucht ene Trackanzeige wirklich???

  • Hallo @Diddl



    Das hört sich sehr gut an.


    Bin voll dabei. Bin Anfänger, aber die Grundusstattung habe ich ja hier.


    Trackanzeige wäre super.


    Bin gerade dabei eine Lüftersteuerug aus zu probieren, die ich in einem anderem Forum gefunden habe, wo der Lüfter nach Temperatur ein und ausgeschaltet wird.


    Das könnte man dann gut kombinieren, und alles später auf dem LCD ausgeben.


    Gruß Spider

  • Gut, fangen wir mal klein an.



    Erste Version mit einem Taster und einer LED.
    Nur Laufwerks Schreibschutz.


    Werde mir morgen Abend mal eine Arduino Workbench aufsetzen und das mal rein klopfen.


    Muss mir auch im Keller eine funktionierende 1541 suchen.
    Und einen C64, oder zumindest ein Zoomfloppy.
    Um es zu testen.





    Es sollte ganz easy funktionieren:

    • einen digitalen Eingang für die Lichtschranke
    • einen digitalen Eingang für den Taster
    • einen digitalen Ausgang für die LED
    • einen digitalen Ausgang zum Schreibschutz der Floppy




    In der Main Loop:

    • drei Stati: locked, unlocked, auto
    • Taste abfragen, ggf. den Status ändern
    • Status locked: schreibschutz setzen, LED ein
    • Status unlocked: schreibschutz löschen, LED blinken
    • Status auto: Lichtschranke lesen und schreibschutz setzen bzw. löschen, LED aus
    • Schreibschutz abfragen: bei wechsel auf Status "auto" wechseln
  • Für die Entwicklung/Test empfehle ich ein beliebiges Arduino Set, zB.: (39 €)
    https://www.amazon.de/Kuman-Up…ccessories/dp/B074GN4HCX/


    Da ist alles dabei, Arduino, 7 Segment, LCD Anzeige, Taster, LED, Drehgeber, Box ...





    Für den Einbau in die Floppy empfehle ich ein Nano, zB.: (3 Stück 13 €)
    https://www.amazon.de/dp/B0793S8NJ8/

  • Wenn du das kannst, dann mach dir die Platine selber. :)



    Es ist nur so, dass die meisten (inklusive mir) das nicht können, bzw. sich sehr schwer tun damit.



    Was aber bei einem Preis von nur 4€ eh völlig egal ist, selbermachen kann kaum viel billger sein.
    Zudem hat der Nano ja auch schon alles drauf, was dieses Mini Projekt braucht.




    Aber eine Platine wäre trotzdem genial.
    Wo Taster und LCD schon drauf ist.


    Die man quasi nur noch in der Floppy einbauen müßte.

  • Danke für die Info.


    Versuche gerade zu viel zu machen


    Meine Werkbank/statt zu bauen, mich mit Arduino beschäftigen und mit Kikad :)


    Ach ja, zur Arbeit gehen noch vergessen


    Gruß Spider

  • optional Taster und LED

    Pfui. Heutzutage bohrt man keine Löcher mehr in klassiche Computer oder Peripherie. Das geht sehr viel eleganter: Rückmeldung über einen kleinen Beeper, der auch außerhalb des Floppy-Gehäuses sehr gut hörbar sein kann.


    Das "Bedienen" der neuen Schaltung kann gut über die Lichtschranke erfolgen, nämlich indem man mit Herausziehen und reinstecken einer Disk eine Art Morse code übergibt.

    Das Problem, man kann es nur inkrementell lesen.
    Man weiß nie ganz wirklich, wo man ist.

    drei Möglichkeiten, alle für einen Atmel aus heutiger Sicht kein Thema:


    - Überwachung der Adresse $40 (current track number - es gibt noch andere Adressen in denen der zuletzt gelesene Track steht)
    - Überwachung der step-Pulse (STP0 und STP1) und Zählen - das ist zwar inkrementell, wird sich aber ultimativ auf den richtigen Track einstellen
    - Auswerten der Lese-Signale und Dekodieren des sector headers im Atmel. Die serialisierten Daten kommen "fast im Klartext" am Gate Array Pins 23 und 24 an. Ein Atmel mit mehreren zehn MHz sollte das in Echtzeit hinbekommen.


    Jens

  • Ah, diese trackanzeige meinst du?


    http://home.foni.net/~gero-ihde/trackdisplay.htm




    Raffiniert, der PLA überwacht schreibzugriffe auf die Speicherzelle, wo die Track Nummer drin ist.





    Danke Wiesel.


    Ja, die drei Möglichkeiten sehe ich auch.


    Wobei, den Zugriff auf den Speicher ...
    Ein 16 MHz Atmel, der den adressbus überwacht, also ein Signal das nur eine Mikro Sekunde lang ansteht ...


    Möglicherweise geht es knapp.
    Aber dann tut der Atmel nix anderes mehr.
    Und man braucht eine Menge IO ...


    Nee ...



    Schön wäre, den Track zu lesen!
    Und den Sektor Header zu dekodieren.


    Den Code dazu habe ich sogar schon da liegen.


    Mit einem 1284 könnte man sogar den Track buffern. Denn der hat 8kb RAM


    Man hätte die RAW Daten, - verlockend!


    Aber im Zuge einer Arduino Schulung zu komplex ...


    ----------


    Ich denke wir lesen die inkrements vom Stepper.


    Dann geht die Anzeige auch ohne Diskette.
    Bzw. mit unformattierter Diskette.

  • Du könntest an das CS Signal des Floppy-RAMs dran gehen und beim Low einen interrupt im AVR auslösen lassen, dann lauscht er auf die RamAdressen. Und wenn die 6502-cpu im Rom ist, macht der AVR den Rest der Arbeit.

  • Ah, diese trackanzeige meinst du?

    Ja die ist klasse, das Laufwerk hab ich von GI-Joe vor einigen Jahren erhalten und Trackanzeige und elek.Disklocher sind einfach genial 8o Hier mal ein Bild:

  • Du könntest an das CS Signal des Floppy-RAMs dran gehen und beim Low einen interrupt im AVR auslösen lassen, dann lauscht er auf die RamAdressen. Und wenn die 6502-cpu im Rom ist, macht der AVR den Rest der Arbeit.

    Du hast recht, das wäre elegant.
    In AVR Assembler auch sicher machbar ...



    Aber in C habe ich die Erfahrung gemacht, dass der Interrupt ziemlich lange braucht.
    Die ganzen Register sichern ...


    Und wenn man andere Interrupts auch noch hat, Timer, UART, etc, dann ist es sowieso vorbei mit so schnellen Sachen.

  • Phase 1:



    So, ich habe mich ein bisschen gespielt mit dem Arduino. :)






    Der Aufbau ist wie folgt (für die, die es mitmachen und testen wollen):




    Die rote LED und der Taster daneben sind für die Anzeige und Bedienung, werden also in die Floppy eingebaut.



    Die grüne LED steht für den Zustand des Schreibschutz, der unserem 1541 Laufwerk signalisiert wird.
    Der Taster daneben steht für die Lichtschranke des Laufwerk.



    Zustand AUTO nach dem einschalten (Normalzustand):


    die rote LED ist aus.
    die grüne LED zeigt den Zustand des grünen Taster


    Der Schreibschutz hängt also direkt mit der Lichtschranke zusammen.



    Zustand UNLOCKED:


    die rote LED blinkt als Warnung, dass die Diskette ungeschützt ist.
    die grüne LED ist an (kein Schreibschutz)


    Der Schreibschutz ist also immer aus, jede Diskette kann beschrieben werden.



    Zustand LOCKED:


    die rote LED ist ein.
    die grüne LED ist aus (immer Schreibschutz).


    Der Schreibschutz ist also immer ein, die Diskette ist geschützt.




    Taster:


    Mit dem roten Taster kann man zwischen den drei Zuständen AUTO, LOCKED und UNLOCKED wechseln.




    Lichtschranke:


    Mit dem grünen Taster, also der Lichtschranke, wird immer der Zustand AUTO eingenommen.


    Damit ist gewährleistet, dass der Diskettenwechsel erkannt wird.
    Und dass nicht versehentlich eine andere Diskette gelöscht wird.











    Und das Schaltbild des Schreibschutz:






    Und der Code: (Besprechung des Code und/oder Fragen sind erwünscht)