Ich habe mir gestern/heute den sam11 pdp11-Emulator angesehen und muss sagen der ist ja noch arg roh im Zustand gegen den pdp 11/40 Emulator fuer den Pico von Ian Schofield.
Der einzige Vorteil bis jetzt, er ist fuer die Arduio-IDE und koennte so rein theoretisch auch fuer mehr Hardware-Plattformen nutzbar sein.
Der Pico(W) ist normal nicht im vorhandenen Source unterstuetzt, aber nach vielem basteln ist er zumindest mal gestartet, wenn man Unix v6 starten will.
Denn an RT-11 it scheinbar nicht zu denken (Boot-Error).
Fuer den Pico musste ich das RAM von 248K auf 120K runterdrehen, (um vorherfestzustellen das der Wert Octal angegeben ist )
ansonsten compiliert er nicht erfolgreich bzw. der Mode mit Swapfile will bei mir nicht starten und soll dann auch arg langsam sein
Auch gab es ein paa Huerden im Source, bis ich die gefunden hatte Da habe ich mir ein paar Debug-Ausgaben eingebaut, ansonsten gabs es nur die Meldung "Processor halted" und da wusste ich noch nicht, dass er meine SPI-SD-Karte schon erkannt hatte
Ich musste irgendwie meine SPI-SDCard Config eingebastelt bekommen, die Hardware-Board-Unterstuetzungs-Config zusammenbauen und rausfinden dass ich auch noch die Library elapsedMillis installeiren muss.
sam11.cpp:
// =========================================================================================
// Redefine SPI-Pins - if needed : (SPI.) = SPI0 / (SPI1.) = SPI1
// =========================================================================================
SPI.setRX(16); // MISO
SPI.setCS(17); // Card Select
SPI.setSCK(18); // Clock
SPI.setTX(19); // MOSI
#define SDFAT_FILE_TYPE 1 // Uncomment for Due, Teensy or RPi Pico
#define ENABLE_DEDICATED_SPI 1 // Dedicated SPI 1=ON 0=OFF
platform.h :
#define BOOT_SCRIPT (true) // Enable using the boot script to setup drives/etc.
#define _printf Serial.printf
// OCT <-> DEC Converter
// https://www.rapidtables.com/convert/number/decimal-to-octal.html
#define ALLOW_DISASM (true) // allow disassembly (PDP-11) on crash/panic/state prints
// #define MAX_RAM_ADDRESS (0760000) // 248KB octal
// #define MAX_RAM_ADDRESS (0400000) // 128KB octal = LOW MEMORY
// #define MAX_RAM_ADDRESS (0370000) // 124KB octal = LOW MEMORY
#define MAX_RAM_ADDRESS (0360000) // 120KB octal = NO LOW MEMORY
// #define MAX_RAM_ADDRESS (0350000) // 116KB octal = NO LOW MEMORY
// #define MAX_RAM_ADDRESS (0340000) // 112KB octal = NO LOW MEMORY
// #define MAX_RAM_ADDRESS (0300000) // 96KB octal = NO LOW MEMORY
#define RAM_MODE RAM_INTERNAL // use the chip's onboard SRAM
// #define RAM_MODE RAM_SWAPFILE // use a swapfile as ram
#define LED_ON (HIGH)
#define LED_OFF (LOW)
#define PIN_OUT_SD_CS (17)
#define SD_SPEED_MHZ (12)
#define PIN_OUT_DISK_ACT (32)
//#define PIN_OUT_PROC_STEP (20)
//#define PIN_OUT_PROC_RUN (0)
//#define PIN_OUT_BUS_ACT (0)
//#define PIN_OUT_USER_MODE (0)
// #define LKS_ACC LKS_HIGH_ACC
#define LKS_ACC LKS_LOW_ACC
// #define LKS_ACC LKS_SHIFT_TICK
Alles anzeigen
Das Swapfile von 256K ist zwar im Sourceverzeichnis vorhanden, aber keine Info dass es mit auf die SD-Karte muss