• CP400 standard ROM cartridge (rev.eng)

    03/20/2026 at 00:30 0 comments

    Recreation of a standard ROM cartridge for the CP400 Color Computer,  a TRS-Color compatible manufactured by Prologica .  (Github link)

    The schematics and the board were reverse engineered from the pictures and article from Rafael Ferrari (thanks!) 

    I like to superpose the bottom and top pcb images to figure out the connections using Libre Office Draw. Other programs can be used as long as they provide to adjust the transparency of the images.

    I was intrigued by the bodge wires used on the original cartridge but after analyzing the schematics I could see no reason why the jumpers on the board were not used.

    The circuit uses a BJT with a speed-up capacitor on its base to form an inverter for the address line A13 that is used to select either chip is active. That was a very common trick in the 1980s to save on glue logic chips. While such components were not present on the board, it was easy to figure this out given the application.   

  • PIC micro / SDCC on Linux: Quick and dirty installation guide

    02/19/2026 at 02:24 2 comments

    The standard SDCC and GPUTILS packages does not support PIC microcontrollers, unlike their counterpart on Windows.

    To provide them you have to install from the sources. Here's a quick guide on Linux Mint/XFCE 22.3

    First Step: Install missing libraries and tools

    sudo apt-get update
    sudo apt-get install bison flex zlib1g-dev libboost-dev libboost-graph-dev 

    Second Step: Download GPUTILS source from https://sourceforge.net/projects/gputils/files/

    Create a temporary directory then unpack the sources

    cd ~
    mkdir tmp1
    tar xjf /...path..to...source.../gputils-1.5.2.tar.bz2

     Enter the sources directory, then configure, compile and install 

    cd tmp1/gputils-1.5.2/
    ./configure
    make
    sudo make install

    Third Step: Download  SDCC source from https://sourceforge.net/projects/sdcc/files/
    Create a temporary directory then unpack the sources

    cd ~
    mkdir tmp2
    tar xjf /...path..to..source.../sdcc-src-4.5.0.tar.bz2

     Enter the sources directory, then configure, compile and install 

    cd tmp2/sdcc-4.5.0/
    ./configure
    make
    sudo make install 

    It will take forever, but when it finishes, check if the binary was propely installed

    cd ~
    sdcc -v

     The compiler shall respond with the architectures it support:

    SDCC : mcs51/z80/z180/r2k/r2ka/r3ka/sm83/tlcs90/ez80_z80/z80n/r800/ds390/pic16/pic14/TININative/ds400/hc08/s08/stm8/pdk13/pdk14/pdk15/mos6502/mos65c02/f8 TD- 4.5.0 #15242 (Linux)
    published under GNU General Public License (GPL)

    The final test is to compile a test program with following command line

    sdcc -mpic14 -p16f88 --use-non-free teste.c

    Test program

    #include <pic16f88.h>
    
    // Configurações do Microcontrolador (Fuses)
    // Oscilador interno, Watchdog desligado, Master Clear habilitado
    unsigned int __at(0x2007) CONFIG1 = _INTRC_IO & _WDT_OFF & _MCLR_ON & _LVP_OFF;
    
    void delay(unsigned int tempo) {
        unsigned int i, j;
        for(i = 0; i < tempo; i++)
            for(j = 0; j < 100; j++); // Atraso simples
    }
    
    void main(void) {
        // Configura o oscilador interno para 8 MHz
        OSCCON = 0x70; 
    
        // Configura RB0 como saída digital
        TRISB = 0xFE; // 1111 1110 (0 = saída)
        PORTB = 0x00; // Inicia todos os pinos em nível baixo
    
        while(1) {
            RB0 = 1; // Liga o LED no pino 6 (RB0)
            delay(500);
            RB0 = 0; // Desliga o LED
            delay(500);
        }
    }

    The compilation may generate some warnings but at the end the .hex is generated with success. 


  • Coco Fujinet for CP400

    02/07/2026 at 13:45 0 comments

    Started to work on a PCB for Coco Fujinet for brazilian CP400 by Prologica.