Beiträge von guidol

    evtl. passt auch die von unserem pdp11gy :

    GitHub - pdp11gy/SoC-HPS-based-MFM-disk-emulator: MFM disk emulator ( ST506, ST412, ST225 ) based on DE10-Nano board
    MFM disk emulator ( ST506, ST412, ST225 ) based on DE10-Nano board - GitHub - pdp11gy/SoC-HPS-based-MFM-disk-emulator: MFM disk emulator ( ST506, ST412,…
    github.com

    http://pdp11gy.com/BV/MFM-disk-emulator.pdf

    # Disable RESET options - get rid of the unreconized Reset-Device in Device-manager # see https://forums.raspberrypi.com/viewtopic.php?t=334691 add_compile_definitions(PICO_STDIO_USB_ENABLE_RESET_VIA_BAUD_RATE=0) add_compile_definitions(PICO_STDIO_USB_ENABLE_RESET_VIA_VENDOR_INTERFACE=0)

    es reicht die 2te Zeile, erste kann man auch (ist wohl default?) auf

    Code
    add_compile_definitions(PICO_STDIO_USB_ENABLE_RESET_VIA_BAUD_RATE=1)

    stellen (oder weglassen?)

    Im technischen Handbuch steht auch, dass es neben den Netzwerkfunktionen auch eine Routine fuer einen Floppy-Boot geben soll.

    Wenn es also eine Floppy fuer den seriellen Netzwerkpork geben sollte (so seriell wie eine 1541), dann koennte man so eine relativ schnell emulieren.


    Von der Hardware koennte es neben MSX auch fuer CP/M reichen? ;)

    Wer im Windows Device-Manager das unerkannte "Reset-Device" weg bekommen will, muss vor dem Compile in der Datei /Pico_1140/Pico_1140_DC/CMakeLists.txt folgende Zeilen am Ende anfuegen:

    Code
    # Disable RESET options - get rid of the unreconized Reset-Device in Device-manager
    # see https://forums.raspberrypi.com/viewtopic.php?t=334691
    add_compile_definitions(PICO_STDIO_USB_ENABLE_RESET_VIA_BAUD_RATE=0)
    add_compile_definitions(PICO_STDIO_USB_ENABLE_RESET_VIA_VENDOR_INTERFACE=0)


    nebenbei: erweiterter Inhalt bei der rtv400c.dsk - da Merge mit den Inhalten aus einem .dsk-Image des
    pdp/1140-Emulator-Autors ;)

    Ich muß das leider zurücknehmen. Zwar kann Safari auf dem alten PowerBook so nebensächlichen Kram wie google.com öffnen, aber die wirklich wichtigen Webseiten machen Probleme:

    je nach MacOS-Version solltest Du es mal mit der letzten Version von folgenden Browsern probieren

    (da wurde die Entwicklung "erst" 2021 eingestellt)


    Classzilla

    TenFourFox


    Dir hatte ich auch mal mit einem G4 MacBook getestet und bekam einige Seiten mehr auf als nur google.com ;)

    Die Anleitung ist adaptiert von folgender Seite:

    GitHub - bombasticbob/PDP11: Utilities and programs related to 'simh' and PDP11 emulation
    Utilities and programs related to 'simh' and PDP11 emulation - GitHub - bombasticbob/PDP11: Utilities and programs related to 'simh' and PDP11 emulation
    github.com


    ==========================================================================

    Import einer Datei in ein .dsk-image:

    https://raw.githubusercontent.com/bombasticbob/PDP11/master/attach_ptr.bat

    ==========================================================================

    * ptp = (p)aper(t)ape(r)eader = input-device


    Start von simh-pdp11:

    Code
    ./pdp11
    
    
    sim> att rk0 ./rt11.dsk
    sim> att ptr ./bbcbasic.sav
    sim> boot rk0


    Bootscreen-Anzeige:

    Code
    RT-11SJ V04.00C


    Kopier-Befehl (. ist der RT-11-prompt):

    Code
    .RUN PIP BBCBAS.SAV=PC:


    Exit aus der Emulation mit Control-E zur simh-console:

    Simulation stopped, PC: 151304 (ASR R5)

    "Auswerfen/unmounten" (wie USB-Stick) der Datei

    Code
    sim> detach ptr
    sim> cont


    Zurueck im RT-11 (. ist der RT-11-prompt):

    Code
    .RUN BBCBAS.SAV
    PDP11 BBC BASIC IV Version 0.39 (RT11)
    (C) Copyright J.G.Harston 1989-2022
    >LIST
    >



    ==========================================================================

    Export einer Datei aus einem .dsk-image:

    https://raw.githubusercontent.com/bombasticbob/PDP11/master/attach_ptp.bat

    ==========================================================================

    * ptp = (p)aper(t)ape(p)unch = output-device


    Start von simh-pdp11:

    Code
    ./pdp11
    
    
    sim> att rk0 ./rt11.dsk
    sim> att ptp ./fracta.bas
    sim> boot rk0


    Bootscreen-Anzeige:

    Code
    RT-11SJ V04.00C


    Kopier-Befehl (. ist der RT-11-prompt):

    Code
    .RUN PIP PC:=FRACTA.BAS


    Exit aus der Emulation mit Control-E zur simh-console:

    Simulation stopped.

    "Auswerfen/unmounten" (wie USB-Stick) der Datei

    Code
    sim> detach ptp
    sim> quit


    Anzeigen lassen der Datei in Linux:

    Code
    more ./fracta.bas


    ==========================================================================

    Um mehrer Dateien gleichzeitig zu tranferieren gibt es auf der github-Seite auch ein

    C-Program namens dectape:

    ==========================================================================

    PDP11/dectape at master · bombasticbob/PDP11
    Utilities and programs related to 'simh' and PDP11 emulation - PDP11/dectape at master · bombasticbob/PDP11
    github.com

    Der original Source laesst den Pico auf 200Mhz laufen. "Safe" uebertakten kann man bis 250Mhz (wie bei RunPM),

    dehalb habe ich den Source bei mir vor dem compilieren mal angepasst.


    Die Mhz stellt man ein in der Pico_1140.cxx (Zeile 86)

    von set_sys_clock_khz(200000, true)

    auf set_sys_clock_khz(250000, true)

    vor dem Compile.


    Das gibt der pdp11/40 auch ca. 1/5 mehr CPU-Power ;)

    (getestet mit dem FRACTA.BAS unter BASIC-11)

    Eine pdp11/40-Emulation auf einem RPi Pico braucht unter BASIC-11/RT-11 dafuer 1 Minute 54 Sekunden ;)

    Der original pdp11/40-E,ution-Source setzt den Pico auf 200Mhz,
    aber man kann a "safe" auf 250Mhz "overclocken" (wie bei RunCPM)


    So braucht der Pico bei 250Mz nur noch 1 Minute 29 Sekunden, d.h. von 114 auf 89 Sekunden,
    dass passt auch ca. zu dem 1/5 Anstieg an Mhz ;)

    Entweder IF ... THEN zeilennummer oder IF ... GO TO zeilennummer.

    Kommandos nach IF gehen gar nicht.

    Das Leerzeichen im GO TO ist Pflicht.

    Danke fuer die Info! ;)


    So gehts dann:


    Werde es bestimmt mal versuchen, das auch hier drauf zu bringen.

    War zu einfach - in der hw_config.c ist es drin:

    Fuer meins Breadboard muesste ich wohl nur auf spi oder spi0 wechseln und die Pin-Nummern anpassen...

    vor dem compilieren :)

    Gerade mal getestet fuer mein "RC2040"-Pico-Board (RC2014 Emulation mit dem Pico)

    Es muss also spi0. sein und nicht nur spi. (das meckert der Compiler dann an)


    So sieht es in der Datei (an den SPI-Stellen) fuer den RC2040 aus:

    Code
    .hw_inst = spi0, // SPI component
    .miso_gpio = 4, // GPIO number (not pin number)
    .mosi_gpio = 3,
    .sck_gpio = 2,
    ...
    .ss_gpio = 5, // The SPI slave select GPIO for this SD card

    Fuer meinen RunCPM-Pico Aufbau sollte es dann so aussehen:

    Code
    .hw_inst = spi0, // SPI component
    .miso_gpio = 16, // GPIO number (not pin number)
    .mosi_gpio = 19,
    .sck_gpio = 18,
    ...
    .ss_gpio = 17, // The SPI slave select GPIO for this SD card

    Eine pdp11/40-Emulation auf einem RPi Pico braucht unter BASIC-11/RT-11 dafuer 1 Minute 54 Sekunden ;)


    Ich musste die Variablen CA und CB gegen C und D tauschen, da wohl keine Variablen mit 2 Buchstaben erkannt wurden.

    Fuer die richtige Darstellung musste ich auch die Breite (X) verringern von 39 auf 35, da ansonsten die Zeile zu lang war.



    So ;) - hartnaeckig sein hat sich wieder gelohnt :)
    Ich habe es nun mit simh v4.0 current (auf Windows und Linux) hinbekommen, RT11-BASIC, Focal und Fortan von dem RL-Image RL0 RL02_0-9.DSK auf das RT-11 V4.00C Image zu kopieren.


    Schoen - fuer mich - ist dies, weil die pdp11/40-Emulation die V4.00C booten kann und ich nun die Sprachen dort nutzbar sind.


    Erst wollte es nicht klappen, da sich die "neue" open-simh Variante weigerte ein RL-Image auf ein RK-device zu mounten:

    Code
    sim> att rk1 ./basic.dsk
    %SIM-ERROR: RK1: RL02 container created by the PDP-11 simulator is incompatible with the RK device on the PDP-11 simulator
    %SIM-ERROR: RK device: Non-existent parameter - RK05

    Mit simh V4.00 current sah es dann gleich anders aus:


    Wahrscheinlich half hier auch nicht das RK-Image (RT-11 V4.00C) als RL-Image zu mounten, sondern das RL-Image (RL0 RL02_0-9.DSK von pdp11gy ) als RK(1)-Image im read-only Modus zu mounten ;) was simh dazu bringt:

    RK1: Read Only access to inconsistent drive type allowed


    Nach dem boot des RT-11 V4.00C ueber rk0 koennte dann von dem RL-BASIC-Image (also rk1:) kopiert werden:

    Code
    copy rk1:basic.sav rk0:basic.sav
    copy rk1:focal.sav rk0:focal.sav
    copy rk1:fortra.sav rk0:fortra.sav


    Nach einem Neustart von simh (um sicher zu sein, dass rk1: weg ist und nur von rk0: gelesen wird) bootet V4.00C noch und die Programmiersprachen sind trotzdem noch aufrufbar/nutzbar (die laufen obowhl die aus einem V5.04 Image kommen dann unter V4.00C):



    Das RT-11 V4.00C Image mit den reinkopierten Programmiersprachen haenge ich Euch unten - zum selbst testen - an ;)

    Wenn es nur darum geht eine pdp11/40 zu emulieren, kannst Du auf Deinem MacBook einfach simh fuers erste testen.

    Oder soll das Macbook zum programmeiren des Pico genutzt werden?

    Das MacBook soll zum Programmieren des Pico benutzt werden. Sowohl um darauf Programme zu entwickeln bzw. kompilieren, als auch um die fertige Software auf den Pico zu übertragen.

    Zum entwickeln fuer den Pico kannst Du das Pico-SDK nehmen (direktes C(++)) oder per arduino-pico core die Arduino-IDE.
    Das SDK erstellt Dir ein .UF2, dass man dann im BOTTSEL-Modus direkt auf den Pico schreibt per Drag&Drop

    Bei der ARduino-IDE erledigt diese das schreiben de .UF2-Binary auf den Pico.


    Die pdp11/40-Emulation wurde mit dem SDK zum .UF2 compiliert.

    pdp11gy

    ums MINC gehts mir auch nicht direkt ;)
    BASIC-11/RT-11 war schon OK :)
    Das MINC-RK05 Image ist wohl beim Pico pdp11/40 Projekt ueber folgenden Weg gekommen:
    https://pdp2011.sytse.net/wordpress/howto/minc-rk05/
    https://pdp2011.sytse.net/wordpress/building-a-rk-minc-disk/


    Weil Du die MINC_RK05.dsk als RL1 gemounted hast, habe ich auch mal was getestet...
    So konnte ich 2 Laufwerke "mounten", Directorys ansehen und auch copy-Befehle absetzen, aber leider scheint das v4.00C RT-11 dann beim naechsten Bootversuch korrupt zu sein:


    Ich würde gern mal probieren, ob ich eine emulierte pdp11/40 zum Laufen bekomme. Würde ich da besser einen Sparkfun Things plus oder einen RaspberryPi Pico benutzen? Gibt es Unterschiede bei der Entwicklungsumgebung? Wahrscheinlich würde ich dafür ein nicht mehr ganz so frisches MacBook benutzen, also noch mit Intel CPU.

    Das Sparkfun Things Plus hat den SD-Card-Slot schon onboard, fuer den Pico braucht es Breadboard und SPI-SD-Adapter - ansonten ist es der selbe Prozessor RP2040 (die 16MB Flash des Sparkfun nutzt die pdp11/40 nicht).


    Wenn es nur darum geht eine pdp11/40 zu emulieren, kannst Du auf Deinem MacBook einfach simh fuers erste testen.

    Oder soll das Macbook zum programmeiren des Pico genutzt werden?

    Entpacken, dann ganz einfach nach rlc21e/subsets und die datei RL02_0-9.DSK ist genau die richtige für Dich.

    BASIC , Fortran, Macro, Kermit und Focal. BASIC ist nun auch mit den Sourcen vorhanden


    EInen PDP11 emulator findest du auch.

    pdp11gy Danke, der Inhalt des RL02_0.9.DSK ist schon richtig ;)
    Allerdings kann ich dies z.B. nur mit SimH starten.


    Wuerde das BASIC, Fortran, Focal auch auf einem v4.00C laufen?

    Ich war ja auf der Suche nach BASIC fuer die Emualtion auf der RPi Pico pdp11/40
    und der hat/kann nur v4.xx und RK05-Images (meines Wissens und der Doku nach)


    Dies oben ist ja ein groesseres RL02-Image.


    Gibt es eine Moeglichkeit fuer den File-Import/Export aus RL02/RK05-Disk-Images?

    Mit UxFiler, putr oder rt11dsk habe ich noch keine Moeglichkeit gefunden.


    Mit simh habe ich versucht beide Images zu "mounten":

    att RK05 ./rt11v400.dsk

    att RL02 ./RL02_0-9.DSK


    wenn ich dann per "boot RK05" ins V4.00C komme kann ich aber kein

    DIR RL2: machen - gibt sowas wie das, dass ich da in simh dann von einem Device zum anderen kopieren kann?


    Code
    .DIR RL2:
    ?DIR-F-Illegal device
    
    sim> show rl2
    RL2, 5242KW, attached to ./RL02_0-9.DSK, on line, write enabled, RL02
    sim> show rk5
    RK5, 1247KW, attached to ./rt11v400.dsk, write enabled
    sim>

    Bei der Suche nach einem RK05-Disk-Image mit BASIC (habe noch keins gefunden ausser MINC, denn alle haben zwar "HELP BASIC" aber kein BASIC.SAV) bin ich auf einen Emulator gestossen der mich als RunCPM-Fan ansprach ;) weil

    er nutzt wie RunCPM das Host-Filesystem.



    Der Emulator von Dmitry Patronov (kommt aus .ru also Russland - aber der Windows Defender hat nichts drin gefunden ;) )
    gibt nicht direkt vor, ein pdp11-Emulator zu sein, hat aber im Kern ein RT-11 V5.04 (wenn man das SYSTEM als SYSTEM.DSK exportieren laesst laut Doku-PDF kann man den String in der DSK-Datei finden). Ein RK05 .DSK ist es wohl nicht, da leider die pdp11/40-Emulation auf dem RPi Pico damit nichts anfangen kann (oder es ist ein RK05 und die 11/40-Emulation vertraegt die v5.04 nicht - was wahrscheinlicher ist).


    Direkt im "Image" kann man mit "BASIC" das BASIC-11/RT-11 starten (und per BYE beenden).
    Legt man ins Filesystem eine BBCBAS.SAV/BASIC.SAV mit BBC Basic drin, kann man mit "RUN BBCBAS" ein BBC-BASIC fuer die pdp11 starten :)


    So hab ich das Ziel BASIC auf der pdp11 nur teilweise erreicht... evtl. kommt die pdp11/40-Emulation auf dem Pico noch weiter oder man kann die BASIC-Versionen in ein altes V3.x/V4.x RT-11 verpflanzen?


    Wenn man das SYSTEM in eine SYSTEM.DSK exportiert ( copy/dev/file/noq sy: SYSTEM.DSK )
    hat und es ein RK05 ist, dann waere ich neugierig, wenn man in die SYSTEM.DSK ein anderes RT-11 speichert (v4.00C?) on der RT1Em dies auch startet? ===> Noe - startet immer noch die v5.04 ;)

    Du benutzt aber die gleichen GPIO-Pins wie die spark fun platine?

    Nur die "pin nummern" sind verschieden?


    Der Pico benutzt nur den spi mode der sd-card, stimmt?

    Kein "luxus 4bit" mode"?

    Ich habe ein Breadboard mit den GPIO-/PinNummern des Sparfun "nachgestellt" umd nicht am Source was zu aendern.

    Bei RunCPM nehme ich normal andere GPIOs/Pins - da die Nummern (GPIO) aber in der hw_config.c sind (die passen zu der Grafik vom Schaltplan) koennte ich die fuer mein RunCPM Breadboard anpassen.


    Soweit ich weiss, ist es normales SPI ueber einen speziellen noOS-FatFS-SD-Pico Driver

    Werde es bestimmt mal versuchen, das auch hier drauf zu bringen.

    Dann musst Du wohl im Sourcecode finden, wo die SPI-Pins definiert sind, damit es zu Deinem MicroSD-Layout passt.


    Hmm...wenn ich es finden wuerde (habe noch nicht rein gesehen) dann koennte ich meinen RunCPM-SPI-Aufbau nehmen und nur umflashen ;) *holdmybeer*

    War zu einfach - in der hw_config.c ist es drin:


    Code
    .hw_inst = spi1, // SPI component
    .miso_gpio = 12, // GPIO number (not pin number)
    .mosi_gpio = 15,
    .sck_gpio = 14,
    ...
    .ss_gpio = 9, // The SPI slave select GPIO for this SD card


    Fuer meins Breadboard muesste ich wohl nur auf spi oder spi0 wechseln und die Pin-Nummern anpassen...

    vor dem compilieren :)

    Ich hab es mit Bootcamp probiert, einen USB Stick erstellt, aber genau von dem bootet er dann nicht….

    Wenn der BootCamp Stick nicht ein eigenes Format hat, dann ist die Frage, ob Du den Boot-Stick mit Rufus erstellt hast?

    Denn Rufus kann ab der Version 3.19 den Bootstcik so vorbereiten, dass nicht TPM und SecureBoot geprueft/genutzt wird/ werden muss:

    Zitat

    - Version 3.19 (2022.07.01) Add a new selection dialog for Windows 11 setup customization:

    - Secure Boot and TPM bypass have now been moved to this dialog

    - Also allows to bypass the mandatory requirement for a Microsoft account on Windows 11 22H2 (NB: Network *MUST* be temporarily disabled for the local account creation to be proposed) - Also add an option to skip all collection questions (Sets all answers to "Don't allow")

    Hallo Reinhard,

    beim Video schauen auf YT zum Thema pdp habe ich auch Dein RT11-BASIC Video angesehen ;)

    ALLERDINGS geht der grosse Danke fuer die pdp11/40 auf dem Pico NICHT an mich, sondern an

    Ian Schofield von https://github.com/Isysxp/Pico_1140


    Leider kann der/die pdp11/40 Pico nur ein dsk-image mounten, so dass ich gerne ein RT1-RK05 Image finden wuerde auf dem das BASIC schon drauf ist ;)


    Beim Emulator dabei ist ein .DSK mit MINC Basic

    Du hast im Video RT11 5.04 genutzt, der Pico mit pdp11/40 kann (bis jetzt) nur v3.c und v4.x laut Github-Page Doku.


    Gruesse

    Guido

    So - wie versprochen die Bild-Ausschnitte aus dem Sparkfun Things Plus RP2040.
    Dazu noch ein Pico-Bild mit der SPI-Belegung entsprechend meines BreadBoards.

    Weiterhin als .TXT eine Anleitung, wie ich auf meinem armbian das Pico-SDK installiert habe und dann die pdp11/40 fuer den Pico compiliert habe.


    Da ich eben noch einen PicoW verloetet habe (mein letzter freier) habe ich auch nachgesehen, was man beim compilieren aendern muss am Compile-Befehl - steht auch in der Anleiung (siehe cmake Befehl)


    Im Anhang dann auch das .UF2-Binary fuer den PicoW
    (das Binary ist wie bei der Arduino-IDE aufgrund des Board-Typ nicht das selbe)




    Ueber die Seite zur Emulation der pdp11/40 auf dem Raspberry Pi Pico bin ich vor kurzem "gestolpert" bei der Suche nach weiteren moeglichen Emulationen fuer den Kleinen ;)


    Da es kein Arduino-IDE Code ist, musste wieder meine Pico/SDK Installation herhalten, die ich auch zum compilieren des RC2040 nutze :)

    Deshalb haenge ich Euch das .UF2 Binary (Pico_1140_10112022.zip) hier an, da es auf der Github-Seite nicht angeboten wird.

    Die Disk-Images zum booten findet Ihr auf der Github-Seite des Projektes im Ordner images.


    Soweit klappte das compilieren des Source (bis auf 1-2 Warnings) gut.


    Nun bei der Hardware wurde vom Projekt-Autor anstatt eines normalen Pico ein Sparkfun Things Plus - RP2040 genutzt :(

    und es heisst auf der Github-Seite man sollte die SD-Karte so anschliessen, wie sie bei dieser Platine gemacht wurde:

    "Other hardware may be used including a Pi Pico itself. Wire the SDCard as per the Sparkfun schematic."


    Nun musste ich mir erst dort die SDCard Verbindungen such, mit den GPIO-Pins vergleichen und dann die passenden Pico Standard-Pin-Nummern suchen, da die Sparkfun-Platine mal wieder andere Nummern nutzt.


    Also dafuer eine Art Tabelle selbst erstellt:



    Da mich die Things_Plus_Pin-Namen etwas verwirrten hatte ich beim ersten Start MISO und MOSI verwechselt, denn die eckigen Klammern habe ich mir erst nachhher hinzugefuegt.


    Der zweite Start un die ersten Boot-Versuche haben nun geklappt, deshalb lasse ich es fuer heute dabei - der erste Erfolg muss bis Morgen langen :)

    Morgen kann ich mal sehen, welche Befehle man normal nutzt.


    Evtl. finden sich hier weitere pdp11/40-Freunde, die mri Ideen geben und auch Spass daran haben.

    Auch werde ich dann wohl Morgen (beziehungsweise spaeter am Tag - es ist ja schon hier nach 0:00Uhr) ein Bild meines Breadbard-Aufbaus zum Vergleich mit der Tabelle einstellen (und evtl. Ausschnitte aus dem Schematic-File)






    vom 31.10.2022 gibt es die 5.07.05.RC09, die habe ich heute installiert nachdem ich einen Pico wieder aus einer anderen Idee (RTC fuer den MiST) wieder befreit habe :)


    PicoMite MMBasic Version 5.07.05RC9

    Copyright 2011-2022 Geoff Graham

    Copyright 2016-2022 Peter Mather


    Mein aktueller Init:

    Mein Resettaster ist direkt links neben dem GP26(SDA) = Pin 30 (RUN) in Bruecke zu Pin 28 (GND)


    SPI:

    GP16 (MISO) - GP17 (Card Select CS) - GP18 (Clock - CLK) - GP19 (MOSI)

    I2C:

    GP26 (SDA) - GP27 (SCL)

    Power:

    Pin 28 (GND) - Pin 30 (RUN) - Pin 36 (3.3V OUT) - Pin 38 (GND)


    SDCard und DS3213-RTC beide an 3.3V und GND

    Mein Vorschlag, wäre das so zu lassen, mit folgender Ausnahme:

    #define UART_CTS 35 // NEW wird zu #define UART_CTS 39


    Würde das funktionieren?

    Ich denke, dass sollte passen.


    Du kannst Dir in der FabGL Library fuer die Arduino-IDE schon mal im src/devdrivers Ordner die Dateien

    kbdlayouts.cpp und kbdlayouts.h ansehen. In erster werden die Tastatur-Layouts definiert und in zweiter werden die dann als vorhanden definiert.


    Code
    Beispiel-Pfad:
    C:\Users\guido\Documents\Arduino\libraries\FabGL\src\devdrivers\