Beiträge von NorbertJ

    Als erstes werde ich mich noch ein wenig um die Software kümmern, sprich den Boot Code zumindest mal soweit angehen, dass auch jemand anderes als ich ein kleines DOS für den Junior basteln könnte. Dazu wird eventuell nochmal eine kleine Änderung am ROM Code nötig sein, weshalb ich mich vielleicht auch gleich noch mit dem fehlenden Treiber für einen (parallelen) Papertape Reader beschäftige.

    Wer fühlt sich hier in der Lage, ein DOS für den Junior zu schreiben? Ich traue mir das offen gesagt nicht zu.

    Mein Junior ist bereits ganz verzweifelt und hofft, dass es bald weitergeht :weinen: . Auch ich freue mich sehr darüber, dass es weitergeht :sabber: und gehe ganz d'accord mit Thomas! Sogar eine neue Lötstation ist bestellt, meine alte Ersa MS300 ist doch arg in die Jahre gekommen.

    Ich habe mir die Inhalte der COMBO-Images angesehen, sieht folgendermaßen aus:


    SD Card PPPSD0: bei mir als Device 3, genutzte Slices 0-5:


    3.0: CP/M-80 v 2.2 54.0K TPA

    3.1: ZSDOS v1.1 54.0K TPA

    3.2: ZSDOS v1.1 54.0K TPA NZCOM Version 1.1 System Loader for Z-Com V2.0

    3.3: CP/M V3.0 Loader 60K TPA CP/M v3.0 [Banked] for HBIOS v3.2.1

    3.4: ZPM3 [Banked] for HBIOS v3.2.1 ZCPR compatible system for CP/M+ by Simeon Cran

    3.5: WS4 (not bootable)

    Meinst du sowas?


    Input/Output Ports

    • 20h - 23h (aliases 24h - 27h) - CTC Registers
      • 20h: Channel 0
      • 21h: Channel 1
      • 22h: Channel 2
      • 23h: Channel 3
      • See Interrupts section for Zeta SBC V2 specific CTC implementation and programming notes
    • 28h (aliases 29h - 2Fh) - FDC CCR Register
      • Write only
      • FIXME: Add detailed description
    • 30h (aliases 32h, 34h, 36h) - FDC Main Status Register
    • 31h (aliases 33h, 35h, 37h) - FDC Data Register
    • 38h (aliases 39h - 3Fh)
      • Write - FDC Diginal Output Register (DOR), also known as latch.
        • FIXME: Add detailed description
      • Read - Pulse FDC's /DACK and TC control lines
        • This port should be read following FDC data transfer command (read, write, format, etc.) to properly terminate data transfer.
    • 60h-63h (alias 64h-67h) - PPI Registers
    • 68h-6Fh - UART Registers
    • 70h (aliases 71h-77h) - RTC Registers
      • Write:
        • Bits 0-3 - unused
        • Bit 4 - RTC Chip Enable
        • Bit 5 - RTC Write Enable
        • Bit 6 - RTC Clock
        • Bit 7 - RTC Input
      • Read:
        • Bit 0 - RTC Output
        • Bits 1-5 - unused
        • Bit 6 - Configuration Jumper (JP1)
        • Bit 7 - Disk Changed (DC) output from floppy drive. This can be used by the OS to detect floppy disk change. In such case CP/M should be warm rebooted.
    • 78h-7Bh (alias 7Ch-7Fh) - Memory page select registers.
      • Write only
      • 78h - MPGSEL_0 - Page select register for bank #0 (0000h - 3FFFh)
      • 79h - MPGSEL_1 - Page select register for bank #1 (4000h - 7FFFh)
      • 7Ah - MPGSEL_2 - Page select register for bank #2 (8000h - 0BFFFh)
      • 7Bh - MPGSEL_3 - Page select register for bank #3 (0C000h - 0FFFFh)
      • Note: While these registers implemented as 8-bit registers, only 7 lower bits are decoded on board. 6 of these are actually used by on board memory, which contains of 64 pages, 16 KiB each.
    • 7Ch (aliases 7Dh-7Fh) - MPGENA - Enable memory paging
      • Bits 0:
        • 0 = Disable memory paging (default after reset). When memory paging is disabled the memory page 0 (lower 16 KiB of the Flash ROM) is mapped to all banks.
        • 1 = Enable memory paging. Make sure that memory page select registers are configured properly before enabling paging.
      • Bits 1-7 - unused

    Das weiß ich leider (noch) nicht, habe das CP/M 3.0 erst ganz aktuell laufen.

    Was ich bisher (rein ob's läuft) ausprobiert habe sind CP/M2.2, CP/M3.0, P-System(UCSD) und NZ-COM. QPM wäre als nächstes dran.

    Ich werde tiefer in die Materie gehen, wenn ich sehe, was mir am interessantesten erscheint.

    Am besten schaust du dir mal in GITHUB die Releases von ROMWBW an, darin sieht man unter ...\Binary\ die ROM-Files und welche Images angeboten werden. In der Doku steht, was auf Zeta2 läuft.

    Hallo Peter,

    es ist sicher schwierig, das ganze zu einem akzeptablen Preis ohne Chinaware zu kaufen, aber es geht teilweise.

    Ich habe in der Vergangenheit viel Pech mit Chinaware gehabt und bin für mich halt zu der Entscheidung gekommen, Ware von dort zu vermeiden wo es nur geht. Meine Quellen waren größtenteils auf ebay. Beispiele:


    WD37C65 aus F, ebay fractal 2015

    74LS670 aus D, ebay ic-box24

    ZILOG Z84C0020PEC aus NL, ebay evrieze oder reichelt Z84C30-06MHZ und Z84C00-10MHZ

    Die restlichen TTL, ROM und RAM, den 1210 und den 1302 kaufst du am besten über ebay (kessler elektronik usw.)


    Das ganze - will ich ehrlichkeitshalber sagen - wird nicht billig. Wenn ich nicht schon einiges davon in meinem Fundus gehabt hätte (und auch noch habe), hätte ich mir das ganze überlegt. Habe halt vieles auf die Jahre gesammelt.

    Jetzt laufen mittlerweile CP/M2.2 und Z-System, CPM3.0, P-System (UCSD), und NZ-COM auf dem Zeta V.2 . QPM wird wohl demnächst noch hinzukommen.


    Ich muß jetzt erst mal weitere kleinere Mini-SD-Karten (z.B. 2 oder 4 GB) kaufen. Weiß vielleicht jemand, wo man die günstig bekommt?

    Ich habe mit balenaEtcher das psys.img aus dem aktuellen romwbw Image Ordner auf eine 2GB SD Karte geschrieben. Als Unit 3 bootet das System dann auch richtig. Wie kann ich mir mit F(ile und dann L(dir die Files auf dem Datenträger ansehen? Welche Angabe muß ich zum Slice machen ?

    Die üblich C:, D:, E: etc. funktionieren nicht, ebensowenig 00, 01, 02 03, 04 etc. . Im Handbuch zu UCSD finde ich leider nichts funktionierendes dazu.

    Wie kann ich unter CP/M von einer Quelle - meinetwegen C: - alle Dateien nach dem Alphabet auf ein anderes Laufwerk kopieren? Geht das mit PIP?

    Ich weiß, dass DIRX das Directory bereits alphabetisch sortiert ausgibt, aber die Sortierung müßte doch auch schon beim Kopieren möglich sein, oder geht das nicht?

    Ich habe jetzt doch wieder einen Zeta V2 zusammengebaut, da ich dieses System mit ROMBWB genial finde und es läuft momentan stabil auf 8MHz. Ich warte noch auf die Lieferung des Floppy-Bausteins und der 20MHz CMOS CPU.

    Wie war eigentlich noch mal die Syntax für das Rüberschaufeln von Programmen vom PC per Xmodem (xm.com)? Oder gibt es eine Möglichkeit, die Slices der SD-Karte auch am PC per Cardreader direkt füllen, was einfacher wäre?


    Mal sehen, wie ich da ne zweite Floppy dran bekomme…

    Du weißt, dass ein Diskettenlaufwerk zwischen 700mA und etwa 1A zieht?

    ... und vielleicht darüber noch ein kleines Weißblechdöschen mit einem Peppa Wutz Aufkleber darauf. Sieht dann so aus, als müßte es so sein.

    Externer Modulator oder so... :prost:


    /* ich konnte einfach nicht anders als Toast_r's Aussage zu ergänzen, jetzt aber wieder Scherzmodus aus */

    Ist der FTDI auf 5V gejumpert? +5V vom FTDI hast du ja hoffentlich nicht auch mit verbunden. Sind alle 'Beine' der ICs in den Fassungen, speziell die des RS232-IC's? (MAX232 oder ähnlich)? Mit Teraterm sollte das eigentlich gut funktionieren. Mit Putty hatte ich schon öfter Probleme.

    So weit scheint es zu funktionieren, aber beim normalen Hexdump z.B.: 1500.2000<ENTER> stürzt der

    Rechner ab. Immer beim Überschreiten der RIOT Adresse $1A80 bleibt die RS232 Ausgabe unterschiedlich bei

    $1AF1 oder $1A9E und so weiter stehen. Bis $1B00 schafft er es nicht. Alle anderen Speicherbereiche bis

    $FFFF ohne Probleme. Der Disassembler reagiert genauso. CPU SY6502A mit 1 MHz Quarz-Oszillator.

    Hallo jet2bue,

    das ist bei mir ebenso und aus meiner Sicht kein Fehler. Der Cursor bleibt bei mir bei $1ADC hängen. In dem Bereich oberhalb $1A00 liegt u.a. die RIOT RAM Area, also das RAM des 6532, das teilweise vom System genutzt wird, unter anderem die Vektoren für NMI und IRQ, sowie die Hardwareadressen der 7-Segment-Anzeige, Timer etc. . Der Zugriff durch den Hexdump verursacht wohl dieses 'Absturzverhalten'. Hier ein Auszug aus dem Monitor-ROM:


    ; RIOT RAM Area ***************************************************************


    SPI_CODEBASE EQU $1A00

    ;SPI_WRITE EQU $1A00 ; copy of SPI_WRITE0 code starts here

    ;SPI_READ EQU $1A00+N ; copy of SPI_READ0 code starts here

    ;SPI_RESET EQU $1A00+M ; copy of SPI_RESET0 code starts here


    DEVLIST EQU $1A28 ; start of device driver list


    STDBEEP EQU $1A66 ; current standard beep routine

    DEVIN EQU $1A68 ; current opened device input routine

    DEVOUT EQU $1A6A ; current opened device output routine

    DEVCMD EQU $1A6C ; current opened device command routine

    STDIN EQU $1A6E ; current standard input routine

    STDOUT EQU $1A70 ; current standard output routine

    STDCMD EQU $1A72 ; current standard command routine

    STDINDEV EQU $1A74 ; standard input device id

    STDOUTDEV EQU $1A75 ; standard output device id

    STDPRINTDEV EQU $1A76 ; standard printer device id

    STOACC EQU $1A77 ; last accumulator before interrupt


    ; Interrupt Vectors ***********************************************************


    BRKUSR EQU $1A78 ; address of user BREAK vector

    NMIVECT EQU $1A7A ; address of NMI vector

    IRQUSR EQU $1A7C ; address of user IRQ vector

    IRQVECT EQU $1A7E ; address of main IRQ vector


    ; Timer Register **************************************************************


    CNTA EQU $1A94 ; CLK/1T no interrupt

    CNTB EQU $1A95 ; CLK/8T no interrupt

    CNTC EQU $1A96 ; CLK/64T no interrupt

    CNTD EQU $1A97 ; CLK/1024T no interrupt


    CNTIRQ EQU $1A9F ; Timer Interrupt Register


    ; Port Register ***************************************************************


    PAD EQU $1A80 ; Port A Data Register

    PADD EQU $1A81 ; Port A Data Direction Register

    PBD EQU $1A82 ; Port B Data Register

    PBDD EQU $1A83 ; Port B Data Direction Register


    WRDC EQU $1A85 ; Write = set positive edge detection, no int.

    ; Read = get Edge Control Interrupt Register


    Jörg: ich hoffe ich habe das in deinem Sinne korrekt wiedergegeben.


    Viele Grüße

    Norbert

    Hallo Fanhistorie,


    ich habe nach Anschreiben des Support direkten Kontakt zu Herrn Lipowsky bekommen und er hat mir eine ZIP-Datei zur Verfügung gestellt,


    die meine Fragen beantwortet.


    Du scheinst wohl das gleiche getan zu haben, denn ich wurde gefragt, ob eine Verbindung zwischen uns besteht.


    Danke für deine liebe Hilfe, ohne dich wäre ich gar nicht an den Support herangekommen.


    Beste Grüße,

    Norbert

    Hallo Jürgen,


    hier siehst du, was auf der Rückseite der I/O-Karte zu tun ist. Der Cut ist oben links die helle Stelle auf dem Bild in der Mitte oberhalb des 10k Widerstands. Beachte bitte auch die kleine Drahtbrücke in der Mitte rechts. Die Schaltung ist hier. Die Dioden sind 2 x 1N4148, der Widerstand 10k .


    Liebe Grüße,

    Norbert