HANNES RAM für den Plus4 Yape.

  • Hallo, guten Tag.

    Nach langer Zeit fange ich wieder mit dem Plus4 Yape an mit 75 Jahren.


    Der PLUS4 gefällt mir sehr zum Programmieren.

    Yape gibt es jetzt 1.2.4 Version.


    Nun habe ich im Yape das Hannes RAM 256kb eingestellt.

    Die Beispiel DSK erkennen das RAM und die DEMOS funktionieren Super.


    Ich nehme jetzt das Mas Pascal zum Programmieren.

    Es wurde gut ausgebaut.


    Einpaar fragen bitte zum Hannes RAM bitte.

    Würde mich freuen wenn es bitte einpaar infos gibt für das Hannes RAM unter Yape.


    MadPascal :

    -----------------------------------

    HANNES : Byte absolut $fd16;

    HANNES:= %11110011 ;

    ----------------------------------

    Die gesamten 64kb des Plus4 gehören nun zu Hannes Bank 3?

    und kann ein Programm starten, das in Bank 3 liegt?


    wenn ich das jetzt schreibe:

    -------------------------------------------------- ----------

    HANNES:= %11110001 ;

    Dann kann ich ein Programm auf dem Plus4 schreiben, das zu Bank 1 gehört?


    HANNES:= %11110000 ;

    Ich bin jetzt also wieder in Bank 0?


    HANNES:= %11110001 ;

    Damit ich dann mein Programm starten kann von Bank 1, was ich oben geschrieben habe?


    Bedeutet das auch, dass eine Bank immer zu Plus4 0-3 gehört?

    HANNES:= %11110000 ;


    Damit gehört der Speicher 0-3fff dem RAM von Hannes und dem Programmierer gemeinsam?

    HANNES:= %11110001 or 8;


    Danke.

  • Hallo,


    hab letztes Jahr auch wieder angefangen am Plus4 zu programmieren, nach fast 20 Jahren. Die Erweiterung von Hannes wurde von SukkoPera gut dokumentiert auf GitHub. Hier der Link:


    GitHub - SukkoPera/Hannes256: 256 kB RAM Expansion for the Commodore 16/+4
    256 kB RAM Expansion for the Commodore 16/+4. Contribute to SukkoPera/Hannes256 development by creating an account on GitHub.
    github.com


    Musst relativ weit runterscrollen da steht dann was zur Programmierung.

    Vielleich finde ich noch meine alte Anleitung der 256KB Erweiterung von Solder (basiert auf der Hannes Erweiterung) wenn ich die noch finde schicke ich Sie dir.


    Ansonsten kann man immer gut Fragen im Forum von http://www.plus4world.com stellen. Da Sind noch viele unterwegs die selbst programmieren.


    Im Moment programmiere ich ein Spiel für Sukkoperas WheelofJoy, ein 8 Port Joystick Adapter. Den habe ich auch schon gebaut :)

  • Hallo, danke für deine Info.


    Der Plus4 ist ein Gerät , welches gute Eigenschaften hat zum Tüfteln mit seinem innneren Aufbau und den einzelnen ROMS die man nutzen kan und erfinden kann.

    Das Yape ist echt Betriebsnah.


    Ich such bitte LösungenTricks für das 256KB-RAM für die Nutzung.


    Ich suche auch bitte eine PDF für die Befehle vom OS96.

    Habe diese Eingebaut im YAPE. Mir fehlen die Befehle dazu bzw die Nutzung vom Hannes-Ram.


    Danke.

  • Hallo,


    hier die Orginal Anleitung von Solder für die 256 KB Erweiterung.


    Ich hatte damals angefangen mit Solder zusammen eine Grafische Benutzeroberfläche für OS96 zu programmieren, leider ist daraus nix geworden. Dann hatte ich noch einen Festplattenkrasch und alle meine Daten inkl. aller Codes und Infos sind verloren gegangen :(


    OS96 mit dem Kabel zum PC mit der 1551.exe ist meiner Meinung nach noch das coolste was es für den Plus4 gab. Leider habe ich das Kabel auch nicht mehr.


    Was hast du denn vor?


    256KB-Solder.pdf

  • Hallo,


    habe noch ein Brief von Solder gefunden (29.03.96) da stehen noch ein paar Infos zu den 256KB und zu OS96 drin.

    Wenn du mir deine E-Mail gibt kann ich dir gerne mal die passenden Ausschnitte dafür zuschicken.


    Kannst mir auch deine E-Mail als PM über das Forum plus4world schicken.

  • Danke für deine Hilfe,


    Ein festes Ziel habe ich noch nicht , muss mich erstmal wieder einspielen.


    Ich programmiere diesen Yape zur Zeit mit MadPascal.

    Dieses MadPascal hat eine tolle Schnelligkeit und die PRG sind sehr klein.


    Wollte alles mal mit ASM machen , aber dieses Madpascal bietet auch eine Mischung an , um direkt mit ASM in das System zu greifen.

    Für mich ist es leichter wenn ich meine eigenen kleinen ASM-Routinen schreibe und dann in Madpascal einbette als das ich alles mal

    in ASM schreibe und dann mit den Sprungsalat nicht mehr durchsteige,




    Gruss


    Die ersten 6 Chars verändern mit Madpascal :

    ----------------------------

    var

    RAMROMSEL : byte absolute $ff12;

    CHBAS : byte absolute $ff13;


    const

    SCREEN_ADDR = $0c00;

    EMPTY = $20;


    fonts: array [0..(8 * 6 - 1)] of byte = (

    24,24,36,36,36,60,102,90, // ship up

    0,3,62,197,197,62,3,0, // ship left

    0,192,124,163,163,124,192,0, // ship right

    90,102,60,36,36,36,24,24, // ship down

    0,60,110,98,70,118,60,0, // obstacle 1

    0,60,118,70,98,110,60,0 // obstacle 2

    );


    procedure initFonts;

    begin

    Move(pointer($d000), pointer($6000), $400);

    Move(fonts, pointer($6000), SizeOf(fonts));


    // set bit 2

    RAMROMSEL := RAMROMSEL and %11111011;


    // 24 = $6000 / $400 on 2-7 bits

    CHBAS := (CHBAS and %11) or 24 shl 2;

    end;


    begin

    initFonts;


    FillChar(pointer(SCREEN_ADDR), 24 * 40, EMPTY);


    poke(3072,0);

    poke(3074,1);

    poke(3076,2);

    poke(3078,3);

    poke(3080,4);

    poke(3082,5);


    poke(3084,6);

    poke(3086,7);


    repeat until false;

    end.

    ------------------------------------------------




    Mit ASM dazwischen spielen mit Madpascal :

    -----------------------------------------------

    var

    SCREEN : pointer;

    GSCREEN : pointer;

    BORDERCOLOR : byte absolute $ff15;

    BGCOLOR : byte absolute $ff19;


    var

    a,b,c : word;

    x,y,z : byte;


    begin

    asm {

    lda #$0d // ausgabe char

    jsr $ffd2

    lda #65

    jsr $ffd2


    lda #$0d

    jsr $ffd2

    lda #66

    jsr $ffd2

    };


    asm {

    lda #$0d

    jsr $ffd2


    ldx #46 // ausgabe integer

    lda #12

    jsr 42079

    };


    // A B in Color

    asm {

    lda #90

    sta 2048

    lda #70

    sta 2049

    lda #1

    sta 3072

    lda #2

    sta 3073

    };


    writeln('');

    a:=$1234;

    writeln(lo(a));

    writeln(hi(a));

    z:=66;

    writeln(#66);


    repeat until false;

    end.

    --------------------------------------

  • Oder Raster-IRQ :

    ----------------------------------

    var

    DETIRQSRC : byte absolute $ff09; //detect IRQ source, and clear IRQ flag

    SETIRQSRC : byte absolute $ff0a; //set IRQ source

    RC : byte absolute $ff0b; //raser counter bits 0-7

    BACKGROUND : byte absolute $ff15;

    BORDER : byte absolute $ff19;

    VCOUNT : byte absolute $ff1d; //vertical line bits 0-7

    IRQVEC : word absolute $fffe;


    var

    tmp : byte absolute $ff;


    procedure myRasterIrq; interrupt;

    begin

    asm { phr };


    Inc(BORDER);

    tmp:= VCOUNT + 32; repeat until tmp = VCOUNT;

    Dec(BORDER);


    DETIRQSRC := DETIRQSRC and %01111111;

    asm { plr };

    end;


    begin

    pause;


    asm { sei \ sta $ff3f};


    RC := 204; SETIRQSRC := 2;

    DETIRQSRC := DETIRQSRC and %01111111;


    IRQVEC := word(@myRasterIrq);


    asm { cli };


    repeat until false;

    end.

    ----------------------------------------------------

  • Denke den Sourcode hat nur Solder.


    Wenn du dich in Pascal gut auskennst solltest du mal TRSE (Turbo Rascal Sytax Error - https://lemonspawn.com/) versuchen. Das soll sehr gut sein. Leider habe ich keine Ahnung von Pascal, denke aber ich werde trotzdem mal versuchen mit da reinzudenken.

  • Danke für die Info.


    Das TRSE hatte ich vor 2 jahren einmal angeschaut es hat sich vom Spiel her bis heute wenig geändert und wurde wenig erweitert.

    Es wurde sehr wenig umgesetzt für Plus4 , fast nichts,

    Über 15 Systeme sind dort umgesetzt mehr oder weniger schlecht im Programmierstiel.

    Mit dem sogenannten Pascal hat dieses System nichts am Hut.


    Das CC65 kommt da schon besser hin für den Plus4. Aber C lernen ist nicht so einfach.


    Mit welcher Sprache programmierst du bitte?


    Ich Progge mit MadPascal und ASM , ist sehr Systemnah.

    Diese Demo mit dem IRQ zeigt wie Professionell es gemacht wird mit dem System und IRQ-Programme müssen schon Sauber sein im arbeiten damit es

    gut funktioniert ohne Rasterflimmern.


    Danke.

  • Hallo Haranni , du hattest doch mal mit Solder zusammen gearbeitet , wie du oben geschrieben hast.


    Könntest du bitte mit Solder mal Verbindung aufnehmen wegen dem OS96 Sourcecode?

    Wäre dir sehr dankbar dafür und den Erfinder Solder auch.


    Danke.

    Einmal editiert, zuletzt von funkheld ()

  • weiss ich gerade nicht so recht was anzufangen


    Das war halt einfach falsch geschrieben und der Post nur ein Hinweis drauf ... es wurde dann auch schnell korrigiert.


    Und da "Solder of Synergy" irgendwie sowas wie ein stehender Begriff und jemand war, den man bewundert hat, ohne ihn zu kennen, dachte ich, daß es schon wichtig ist und man es dann auch korrekt schreiben sollte. Es gibt ja in dem 264er Umfeld gar nicht soviel Leute, die wirklich für fast alle, die sowas hatten, irgendwie doch zumindest dem Namen nach bekannt waren. Und die 256KByte RAM Erweiterung war schon wirklich was sehr Cooles, auch wenn sie letztlich nie wirklich umfassend benutzt worden ist. Vielleicht war sie auch einfach bißchen spät; wenn die in der Zeit erschienen wäre, als die Hardware von CBM massiv abverkauft worden ist, hätte das evtl sogar ein "Standard" werden können.

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

  • Für Spiele wurde die 256KB wirklich nicht viel benutzt. Synergy hatte aber versucht möglichst die Hardware von Solder zu unterstützen. Insbesondere die SID Card wurde später viel eingesetzt. Für die 256KB gibt es ja ein paar Programme. insbesondere zum kopieren und dann natürlich die Demos.

  • Kurz als Info, hatte jetzt wieder Kontakt mit The Solder und hab einiges an Infos bekommen und weitergeleitet. Teile wurde auch schon auf http://www.plus4world.com veröffentlicht.


    Was früher Solder war ist meiner Ansicht nach heute SukkoPera aus Italien, neben vielen eigenen Sachen versucht er auch Sachen von Solder nachzubauen. Alle Infos zu seinen Projekten findet Ihr auf http://www.github.com/sukkopera.


    Neben fertigen Projekten wie Solders Sid-Card und Hannes 256KB und 512KB Erweiterung arbeitet er gerade an einem Remake der DigiBlaster Karte von Solder.