Posts by hugofisch

    Hallo,


    Gibt es eigentlich eine Notfall PLA als Schaltung?
    Akso quasi hart verdrahtete PLA, die den C64 in nur einen Zustand zwingt (Multimax),
    In dem man schon mal alles mögkiche an HW
    testen könnte.
    Ich weiss, man kann ein EPROM nehmen, aber würde auch ne harte Verdrahtung mit ein paar Pullup Pulldown Widerständen gehen?

    Do you plan to add some sensors to the VR64?
    Must be easy with a small ardoino and a position sensor.
    The biggedt problem would be to synchronize the game and the Position of the headset.
    But you have "only" 4 directions so it must not be so precisely.

    Ja, ist mir jetzt auch klar.
    Nur weil der Schaltplan sagt, dass da 9V sind,
    darf man halt nicht einfach welche abzweigen.
    Hätte ich doch mal E-Technik studiert :schande:

    Ich habe gerade probiert 150mA zusätzlich zum SID aus der 9V Gleichspannung abzunehmen.
    Der D789 ging in Rauch auf und ich fürchte der SID hat auch nicht überlebt,
    da die Spannung nun 18V betrug.


    Blöde Idee :cry:

    Hab so einen 3fach Modulumschalter auch in ner Kiste gefunden.
    Wozu die 3 Schalter links sind ist mir klar. Wozu dient der rechte Schalter?
    Und wie rum müssen die Module rein?

    Hallo,


    in einer alten Tüte mit MOS ROM Chips und anderen C64/C16/C20 Chips (gab es damals bei Völkner in Braunschweig als Schrott aus dem Braunschweiger Commodore Werk),
    habe ich einen NEC 8504P9 Chip gefunden, den ich irgendwie keinem Rechner zuordnen kann. In der Commodore Ersatzteil-Liste taucht er
    nicht auf und das grosse Internet fördert auch nix zu Tage.


    hat jemand eine Idee?

    Files

    Endlich mal Zeit gefunden mein Uhr zu bauen.
    OK, ist mit einem 6502 Prozessor ein wenig überdimensioniert, aber stilecht.


    Basis ist ein Bilderrahmen von IKEA und ein microKIM von Briel Computers. Das Ganze ist also ein KIM-1 Clone.


    Die Uhr ist in Software implementiert (RIOT-Chips werden nicht genutzt) und dank auszählen der Taktzyklen
    ausgesprochen stabil (<1Sek im Monat). Die SW habe ich den freien Bereich im ROM gepackt.


    Natürlich nutze ich den mircoKIM auch noch für andere Zwecke, aber wenn er nicht gebraucht wird,
    macht er an der Wand ne gute Figur.


    hier der Assembler Code der SW-Uhr:



    .ORG $1AF8
    LDA $0024 ; SEKUNDEN
    LDA $0025 ; MINUTEN
    LDA $0026 ; STUNDEN
    START: SED
    CLC
    LDX #$00
    LDA #$01
    STA $29
    NETXD: LDY #$00
    LDA $29
    ADC $24,X
    STA $24,X
    CMP CARRYT,X
    BEQ CONTIN
    LDY $24,X
    LDA #$00
    STA $29
    CONTIN: STY $24,X
    STY $F9,X
    INX
    CPX #$03
    BNE NETXD
    LDA #$A0
    STA $28
    L1: JSR $1F1F
    LDA #$C8
    STA $27
    L2: NOP
    DEC $27
    BNE L2
    DEC $28
    BNE L1
    JMP START
    CARRYT: .BYTE $60,$60,$24

    Habe die 4 Seiten in die Wolke geladen.
    Wobei ich gearde gesehen habe, dass der komplette 86 Jahrgang dort als RAR schon liegt.
    Unter Zeitschriften/c't.


    Also dann bitte dort gleich laden. Wie es geht, steht ja im Wolke64 Link.

    Wenn es draußen heiß wird, soll man ja im kühlen Zimmer bleiben. Also habe ich mich nochmal an die CGI Geschichte gewagt.
    War gar nicht so schwer.
    Wie schon oben geschrieben muss man den Contiki Webserver mit
    make -C contiki-2.5/examples/webserver disk TARGET=c64 HTTPD-CFS=0
    übersetzen. Dann hat man zwar nicht das SD-Karten Filesysstem, sondern nur das In-Memory File-System,
    aber dafür volle CGI Kontrolle.
    Ich habe mal einen Webserver aufgesetzt, der Temperaturwerte über den Userport einliest und das ganze mittels AJAX dynamisch
    im Browser darstellen kann.
    im Detail werde ich es auf jedem Fall in meinem Blog beschreiben: https://commodore64breadbox.tumblr.com
    Hier schon mal die Highlights:
    Als Basis für meinen Webserver habe ich das Beispiel aus den Contiki Examples genommen. Ich bin noch bei Contiki 2.5,
    da dieses Version ja noch supported wurde. Später ggf. mal auf 3.0 migrieren.


    Wenn man also den Webserver ohne das CFS Filesystem übersetzt, kann man nur auf die In-Memeory Files zugreifen.
    Diese zu erzeugen sind ganz einfach. Man muss sich nur aus dem Verzeichnis
    ....\contiki-2.5\apps\webserver
    den Ordner httpd-fs und die Datei httpd-fsdata.c kopieren. In der C Datei liegen die Dateien aus dem Ordner als ASCII Arrays abgelegt.
    Das muss man machen, da der Compiler normale Printausgaben in PETSCII ausliefert. Das versteht jedoch kein Browser ;-)
    Mit dem Perl-Skript makefsdata aus dem Contiki Toolverzeichnis läßt sich einfach der komplette Ordner in diese Form bringen:
    perl ....\tools\makefsdata -d httpd-fs

    Beim nächsten make werden dann diese neuen Files eincompiliert und stehen dann zur Verfügung. Coole Idee :-)


    Natürlich muss man bei den File-Endungen aufpassen. Denn der Webserver muss ja in der HTTP Antwort den Content-Type richtig setzen.


    Und leider kennt der Webserver noch keinen Javaskript (JS) und liefert diese dann als "Plain" aus. Das gefällt nicht jedem Browser.


    War aber leicht zu patchen.



    Um nun seine eigenen CGi Skripte aufrufen zu können, muss man nur einen CGI Handler schreiben.


    Sieht dann in etwa so aus:


    #include <stdio.h> /* For printf() */
    #include <string.h>
    #include <stdlib.h>
    #include "contiki-net.h"
    #include "httpd.h"
    #include "httpd-cgi.h"


    #include "lib/petsciiconv.h"


    #include "webserver-nogui.h"
    #include "webserver-strings.c"
    #include "tempvalues.h"


    int nMyTemperatur=20;
    int nMyTemperaturDecimal=0;


    PROCESS(get_temp_process,"get temperature process");


    /*---------------------------------------------------------------------------*/


    void gettemp()
    {
    int* DDRB=(int*) 56579;
    int* CRA=(int*) 56590;
    int* PRB=(int*)56577;
    int* SDR=(int*)56588;
    int* ICR=(int*) 56589;
    int* KEY=(int*)198;


    int nValue=0;// read value from SDR register
    int nTemp=0;
    int xPos=0;


    //First init all CIA registers
    *DDRB=255;//all lines are output lines
    *CRA=8+64;*CRA=8;//first clear SDR and then set it to input
    *PRB=0;*SDR=0;//empty buffer
    *ICR=127;//Set Interrupt flag



    // toggle eight times the clock line for eight bits


    for (xPos=0;xPos<8;xPos++){
    *PRB=0;
    *PRB=1;
    }


    //Wait until interrupt is set
    while (*ICR!=0){}
    nValue=*SDR;
    nTemp=arrTemp[nValue];
    //Calculate temperature
    *PRB=2; //reset TLC549


    nMyTemperatur=nTemp/10;
    nMyTemperaturDecimal=abs(nTemp%10);


    }


    static unsigned short
    make_temp(void *p)
    {
    uint16_t numprinted;
    numprinted=snprintf( (char *)uip_appdata, uip_mss(),"%d.%d",nMyTemperatur,nMyTemperaturDecimal);
    return numprinted;
    }
    /*---------------------------------------------------------------------------*/
    static
    PT_THREAD(MyTemp_thread(struct httpd_state *s, char *ptr))
    {
    PSOCK_BEGIN(&s->sout);
    PSOCK_GENERATOR_SEND(&s->sout, make_temp, s->u.ptr);
    PSOCK_END(&s->sout);
    }


    HTTPD_CGI_CALL(MyTemp, MyTemp_name, MyTemp_thread);


    /*---------------------------------------------------------------------------*/
    PROCESS_THREAD(get_temp_process, ev, data)
    {
    static struct etimer timer;
    static int nCount=0;
    PROCESS_BEGIN();
    httpd_cgi_add(&MyTemp);


    etimer_set(&timer, 1*CLOCK_SECOND);
    while(1) {


    PROCESS_WAIT_EVENT();
    if (ev == PROCESS_EVENT_TIMER)
    {
    gettemp();
    etimer_reset(&timer);
    }
    }


    PROCESS_END();
    }



    /*---------------------------------------------------------------------------*/
    AUTOSTART_PROCESSES(&webserver_nogui_process,&get_temp_process);
    /*---------------------------------------------------------------------------*/



    Für die Temepraturmessung habe ich eine alte Schaltung aus einem Bastelbuch von John Iovine aus 1980 genommen. hier der Link.


    Die Schaltung und meine Bastelversuche habe ich mal dran gehängt..


    Das schöne ist, dass man den TLC548 einfach dranhängen kann und 8-Bit Digitalwerte bekommt, aber ohne das


    ganze Timing geraffele wie beim I2C Bus oder so. Mit nem Multiplexer könnte man sogar mehrere dran hängen, aber das kommt später ;-)



    Das genaue How-To beschreibe ich im oben genannten Blog. Das wäre hier zu viel.


    Wird noch ein paar Tage dauern bis ich im Blog alles drin habe. Wer vorher Infos haben will, einfach fragen.



    Wenn ich meine RR-Net und Netzteile Probleme endlich im Griff habe, werde ich mit dem Server auch Online gehen. Eingerichtet ist schon alles,


    aber wie in anderen Threads beschrieben, habe ich Probleme das RR-Net zum Laufen zu bekommen und Probleme mit meinem Netzteilnachbau.
    Ich wollte der Rechner 24/7 laufen lassen. Aber dazu bearfs es noch ein wenig Vorbereitung, beginnend beim Netzteil.

    Ich habe mich heute auch mal dran gemacht,
    mir so eine Dual Netzteil Variante zu bauen, aber ohne Crowbar.
    Ich hatte mir ein 9V Netzteil von Rock Power (Model RP NT8) ausgewählt. Input 230V Output 9V~ bei 2100mA.
    War keine gute Idee!!!


    Das Netzteil selber hatte ca 11V im Leerlaufbetrieb, was mir schon recht hoch vorkam.
    An einem 250407 Board wurde die Drossel (das weiße Keramikding, was wie ein Trafo aussieht) verdammt heiß.
    Nach wenigen Minuten haben ich das Experiment abgeschaltet, da es schon anfing zu riechen.
    Dann habe ich es auf einem 250425 ausprobiert. Wärmeentwicklung habe ich nicht festgestellt,
    aber aus dem Augenwinkel meinte ich einen kleinen Blitz an der Diode CR6 gesehen zu haben
    und die Sicherung war durch. Nach Austausch der Sicherung an einem original Netzteil ging alles wieder.


    Jemad ne Idee? die Diode scheint unversehrt zu sein. Gegen welchen Typ kann ich die mal tauschen?

    keine Ahnung ob das nun ein ähnliches Problem ist, aber meine rr-net wollte auch nicht mehr.
    Sie wollte sogar nicht mehr starten. Manchmal hat es 3-5 Versuche gebraucht, bis
    der Rechner überhaupt startete. manchmal blueb er direkt hängen,
    manchmal kam nur READY.
    Da Jens auf eine Anfrage nicht reagiert hatte, habe ich die rr-net neu geflashed.
    Das neue Image ist definitiv stabiler!
    Ich habe nur noch mit einem 407 Board Probleme. Dort startet nichts!
    Wenn man beim Start C= oder Shift hält, kommt nur ein bunter Rahmen.
    Da scheint ein Timing wohl nicht zu stimmen.
    An einem 425 geht es dagegen gut. Da am 407 auch eine SD2IEC verlötet ist, werde
    ich das Board auch noch mal ohne testen.


    Aber komisch ist das schon, denn mit SD2IEC und dem 407er hatte es im Mai noch funktioniert.
    Dann lag alles verpackt rum und vorgestern ging nix mehr.
    Ggf. eine unbeabsichtige statische Entladung? Verkehrt herum hatte ich sie nie drin, auch wenn das ja echt leicht passieren kann :-)