Die Suche ergab 130 Treffer

von Paul
18.03.2023, 18:00
Forum: Programmierung
Thema: Fragen und Antworten zum C-Kurs
Antworten: 108
Zugriffe: 33930

Re: Fragen und Antworten zum C-Kurs

enum.c mit den Planeten lässt sich auch nicht von mir übersetzen.
Das erzählt mir was von

Code: Alles auswählen

../_DEVELOPMENT/l/sccz80/9-common/f48/fa.asm:12: error: undefined symbol: init_floatpack
  ^---- init_floatpack
von Paul
18.03.2023, 17:41
Forum: Programmierung
Thema: Fragen und Antworten zum C-Kurs
Antworten: 108
Zugriffe: 33930

Re: Fragen und Antworten zum C-Kurs

Wie gesagt, ich bin dabei die Übungen nachzuholen.
Ich habe versucht den Taschenrechner aus den Stringfolgen zu übersetzen.
ohne Erfolg.

Code: Alles auswählen

#include <stdio.h>
#include <string.h>


/* Formats a float by cutting off the zeroes at the end.
   If there are only zeroes after the decimal point, then
   the decimal point is cut off, too.
   
   Parameters: f          the float value to format
               formatted  a character buffer to hold the float as string
*/
void formatNumber(float f, char *formatted) {
    char *s;
    
    sprintf(formatted, "%f", f);
    s = formatted + strlen(formatted);
    --s;
    
    while (s != formatted) {
        if (*s != '0') {
            if (*s != '.') {
                ++s;
            }
            *s = '\0';
            break;
        }
        --s;
    }
}

/* Main.

   Returns an error code (== 0: ok, != 0: error).
*/
int main(void)
{
    float fInput, fAkku;
    char op, currentOp;
    char continueLoop;
    char formatted[20];
    
    printf("Mini-Taschenrechner\n\n");
    op = '\0';
    fAkku = 0;
    continueLoop = 1;
    do {
        printf("Zahl     : ");
        scanf("%f", &fInput);
        
        printf("Operation: ");
        currentOp = getchar();
        currentOp = getchar();
        
        switch (op) {
            case '\0':
                fAkku = fInput;
                break;
            case '+':
                fAkku = fAkku + fInput;
                break;
            case '-':
                fAkku = fAkku - fInput;
                break;
            case '*':
                fAkku = fAkku * fInput;
                break;
            case '/':
                fAkku = fAkku / fInput;
                break;
            default:
                continueLoop = 0;
        }
        
        formatNumber(fAkku, formatted);
        printf("    %s\n", formatted);
        op = currentOp;
    } while (currentOp != '=' && continueLoop);
    
    return 0;
}

Code: Alles auswählen

zcc +cpm -subtype=pcw80  -create-app calc.c -o calc.com
calc.c::main::0::5:36: error: undefined symbol: dadd
  ^---- dadd
calc.c::main::0::5:36: error: undefined symbol: dsub
  ^---- dsub
calc.c::main::0::5:36: error: undefined symbol: dmul
  ^---- dmul
calc.c::main::0::5:36: error: undefined symbol: ddiv
  ^---- ddiv
und noch ganz viele Zeilen mehr.
Was mache ich falsch?
von Paul
14.03.2023, 17:12
Forum: Hardware
Thema: Wir bauen einen Retro-JOYCE
Antworten: 11
Zugriffe: 5712

Re: Wir bauen einen Retro-JOYCE

Danke, den core kannte ich nicht.
Sieht gut aus
von Paul
13.03.2023, 08:24
Forum: Hardware
Thema: Wir bauen einen Retro-JOYCE
Antworten: 11
Zugriffe: 5712

Re: Wir bauen einen Retro-JOYCE

Das ist der ZX81 ohne ULA
https://forum.tlienhard.com/phpBB3/viewtopic.php?t=1029

Im wesentlichen ist der ASIC durch einen Haufen TTLs ersetzt worden.
Dazu ist es notwendig die Funktionsweise des ASIC genau zu verstehen.

Eine Überlegung ist:
Die Joyce ist ein Z80 Rechner dessen Memory Mapping und dessen Ports bekannt sind.
Was wir nicht so gut kennen ist das ASIC mit seinen vielen Funktionen.
Und insbesondere welche Funktionen davon als notwendig angesehen werden.
Das heißt nicht das wir alles abschaffen wollen, nur das wir eine Bestandsaufnahme machen wollen was notwendig ist (und was nicht).
Tastatur:
Original soll anschließbar sein, eine Cherry MX Nachbauplatine für die original Tastatur, eine PS2 oder USB Tastatur soll anschließbar sein.
Monitor:
Ein Videosignal soll für einen monochrome Monitor zur Verfügung stehen.
Es gibt auch den Wunsch nach einem VGA Ausgang.
Der Videospeicher muss so ansprechbar/nutzbar sein wie in der original Joyce.
Hat jemand Unterlagen wie der implementiert ist?
Idee: in den Sourcen von CPMBOX nachsehen was emuliert wird.
Floppy-Controller:
Welcher wird original verwendet. Wird der direkt programmiert? Oder nur über CPM angesprochen?
Alternative Speichermöglichkeiten
von Paul
09.03.2023, 16:27
Forum: Programmierung
Thema: Fragen und Antworten zum C-Kurs
Antworten: 108
Zugriffe: 33930

Re: Fragen und Antworten zum C-Kurs

Ja, das ist echt bitter.
von Paul
07.03.2023, 21:19
Forum: Programmierung
Thema: Fragen und Antworten zum C-Kurs
Antworten: 108
Zugriffe: 33930

Re: Fragen und Antworten zum C-Kurs

Nur zur Info: ich habe nicht das Handtuch geworfen.
Durch meine Krankheit bedingt hinke ich etwas hinterher, hole das aber nach sobald mein Kopf wieder klarer ist!
von Paul
27.02.2023, 16:29
Forum: Hardware
Thema: PCW WiFi Modem
Antworten: 35
Zugriffe: 18049

Re: PCW WiFi Modem

bbock hat geschrieben: 26.02.2023, 17:14 Also, das mit der zu schnellen Tastenwiederholung kenne ich nur, wenn ich den "Fast Mode" einschalte (mit F11 oder mit der "Vorwärtsspulen"-Schaltfläche). Das betrifft dann alle Tasten. Die Return-Taste macht bei mir gar keine Tastenwiederholung, die Enter-Taste vom Ziffernblock schon.

Welche CP/M Box Version verwendest du denn?
CP/M Box Version 1.9.2 benutze ich. Und normalerweise die Enter Taste am Ziffernblock.
Test3.zip
Beispielvideo
(313.32 KiB) 183-mal heruntergeladen
von Paul
27.02.2023, 16:14
Forum: Hardware
Thema: PCW WiFi Modem
Antworten: 35
Zugriffe: 18049

Re: PCW WiFi Modem

Wie war das Jungsi? Du kannst nicht nach Helmarshausen kommen? Kannst du es jemandem mitgeben? Dann könnte man in Helmarshausen mal danach schauen. Könnte Bernd seine Joyce mit seinem Interface zum Test mitbringen? Wir wollen das Kind ja ans laufen bringen. Bis Wolfhagen ist so lange.
von Paul
25.02.2023, 23:41
Forum: Programmierung
Thema: Fragen und Antworten zum C-Kurs
Antworten: 108
Zugriffe: 33930

Re: Fragen und Antworten zum C-Kurs

bbock hat geschrieben: 25.02.2023, 14:09
Das würde man in C ähnlich wie in TurboPascal mit gotoxy(10, 14); machen - normalerweise...

Code: Alles auswählen

#include <stdio.h>

void gotoXY(unsigned int x, unsigned int y) {
    putchar(27);        // ESC
    putchar('Y');       // cursor to position
    putchar(y + 32);    // row + 32
    putchar(x + 32);    // column + 32
}

int main(void) {
    gotoXY(10, 14);
    putchar('O'); // oder printf("%s", "O");
}
Ganz ganz herzlichen Dank Bernd!!!
von Paul
25.02.2023, 14:03
Forum: Programmierung
Thema: Fragen und Antworten zum C-Kurs
Antworten: 108
Zugriffe: 33930

Re: Fragen und Antworten zum C-Kurs

Vielen Dank!