Changes in / [56746cf:3231e25] in buchla-emu


Ignore:
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • emu/fdd.c

    r56746cf r3231e25  
    4444#define COM_WR_SEC 0xa2
    4545#define COM_INT 0xd0
    46 #define COM_WR_TRA_WP 0xf0
    47 #define COM_WR_TRA 0xf2
     46#define COM_WR_TRA 0xf0
    4847
    4948#define COM_LAT_CYC 5
     
    9998                return "COM_WR_SEC";
    10099
    101         case COM_WR_TRA_WP:
    102                 return "COM_WR_TRA_WP";
    103 
    104100        case COM_WR_TRA:
    105101                return "COM_WR_TRA";
     
    144140{
    145141        ver("fdd init");
    146         inf("reading disk image file %s", disk);
     142        inf("loading disk image file %s", disk);
    147143
    148144        SDL_RWops *ops = SDL_RWFromFile(disk, "rb");
    149145
    150146        if (ops == NULL) {
    151                 fail("error while opening disk image file %s for reading", disk);
     147                fail("error while opening disk image file %s", disk);
    152148        }
    153149
     
    170166{
    171167        ver("fdd quit");
    172         inf("writing disk image file %s", disk);
    173 
    174         SDL_RWops *ops = SDL_RWFromFile(disk, "wb");
    175 
    176         if (ops == NULL) {
    177                 fail("error while opening disk image file %s for writing", disk);
    178         }
    179 
    180         size_t stored = 0;
    181 
    182         while (stored < SZ_DISK) {
    183                 size_t n_wr = SDL_RWwrite(ops, image + stored, 1, SZ_DISK - stored);
    184 
    185                 if (n_wr == 0) {
    186                         fail("error while writing disk image file %s", disk);
    187                 }
    188 
    189                 stored += n_wr;
    190         }
    191 
    192         SDL_RWclose(ops);
    193168}
    194169
     
    363338
    364339                case COM_WR_TRA:
    365                 case COM_WR_TRA_WP:
    366340                        state.tra_0 = false;
    367341                        fail("format not yet supported");
  • emu/lcd.c

    r56746cf r3231e25  
    2424int32_t lcd_verbose = 0;
    2525
    26 #define WIN_W (1615 / 2)
    27 #define WIN_H (304 / 2)
     26#define WIN_W (1615 * 2 / 3)
     27#define WIN_H (304 * 2 / 3)
    2828
    2929#define GFX_BGR 0x00000000
  • emu/ser.c

    r56746cf r3231e25  
    2424int32_t ser_verbose = 0;
    2525
    26 #define WIN_W (1520 / 2)
    27 #define WIN_H (950 / 2)
     26#define WIN_W (1520 * 2 / 3)
     27#define WIN_H (950 * 2 / 3)
    2828
    2929#define BEL_CYC 10000
    3030#define MOU_CYC 10000
    31 
    32 #if defined EMU_WIN
    33 #define MOU_DIV 64
    34 #elif defined EMU_OS_X
    35 #define MOU_DIV 1
    36 #else
    37 #define MOU_DIV 4
    38 #endif
    3931
    4032#define CON_W 80
     
    343335                mou_dx, mou_dy, mou_l ? 'l' : '-', mou_r ? 'r' : '-');
    344336
    345         int32_t dx = mou_dx / MOU_DIV;
    346         int32_t dy = mou_dy / MOU_DIV;
     337        int32_t dx = mou_dx;
     338        int32_t dy = mou_dy;
    347339
    348340        if (dx < -128) {
  • readme.txt

    r56746cf r3231e25  
    288288-----------------
    289289
    290 Here's what we currently emulate:
     290Here's what we emulate:
    291291
    292292  * Motorola 68000 CPU. This is actually the Musashi CPU emulator by
     
    295295      https://github.com/kstenerud/Musashi
    296296
     297  * Motorola MC6840: Timers.
     298
     299  * Rockwell R65C52: Serial console and MIDI ports.
     300
     301  * Epson SED1335: LCD controller.
     302
    297303  * Intel 82716: Video chip.
    298304
    299   * Epson SED1335: LCD controller.
     305  * National Semiconductor LMC835: Equalizer.
     306
     307  * General Instrument AY-3-8910: A sound chip, which is not used for
     308    sound generation, but only for its I/O ports. It connects the CPU
     309    to the above equalizer chip.
    300310
    301311  * Western Digital WD1772: Floppy disk controller.
    302312
    303   * Rockwell R65C52: Serial console and MIDI ports.
    304 
    305   * Motorola MC6840: Timers.
    306 
    307   * Unknown item #1: A program running on a microcontroller. It
    308     converts the analog signals from the Buchla's controller pads to
    309     digital values.
     313  * A few LEDs.
     314
     315  * Item X: A program running on a microcontroller. It converts the
     316    analog signals from the Buchla's controller pads to digital
     317    values.
    310318
    311319    Neither the program, nor the microcontroller are known, but the
     
    313321    and self-explanatory.
    314322
    315 The next development milestone will hopefully emulate the following
    316 additional components:
    317 
    318   * National Semiconductor LMC835: Equalizer.
    319 
    320   * General Instrument AY-3-8910: A sound chip, which is not used for
    321     sound generation, but only for its I/O ports. It connects the CPU
    322     to the above equalizer chip.
    323 
    324   * A few indicator LEDs.
    325 
    326   * Unknown item #2: The actual sound generator, referred to by the
    327     firmware source code as "the FPU." This is the biggest unknown so
    328     far. Judging from the firmware source code it consist of two
    329     parts:
    330 
    331       1. The function generator that generates the 15 different
     323  * Item Y: The actual sound generator, referred to by the firmware
     324    source code as "the FPU." This could actually be two chips:
     325
     326      1. One chip, maybe a DSP, for generating the 15 different
    332327         parameter envelopes for each of the 12 voices:
    333328
     
    344339           - 1x Output signal stereo location.
    345340
    346            - 1x "Dynamics" - whatever that is.
    347 
    348          The firmware feeds the the points of the envelopes drawn in
    349          the MIDAS VII instrument editor to the function generator,
    350          which then interpolates between them.
    351 
    352       2. The digital oscillator.
     341           - 1x "Dynamics." (TBD - currently not emulated.)
     342
     343         Over time, the chip interpolates between the points of the
     344         envelopes drawn in the MIDAS VII instrument editor.
     345
     346      2. A second chip for the actual sound generation. This is likely
     347         a DSP.
    353348
    354349         XXX - Details to be filled in.
     
    358353         of the envelopes probably control analog circuits.
    359354
    360     This "two FPU parts" hypothesis would be in line with the "four
     355         Obviously, the emulator does everything digitally.
     356
     357    This "two chip" hypothesis would be in line with the "four
    361358    computers" marketing claim from the Buchla 700 marketing copy. The
    362359    four "computers" would be the Motorola 68000, the microcontroller
    363     that does the A/D conversion of the pad inputs, plus the two parts
     360    that does the A/D conversion of the pad inputs, plus the two CPUs
    364361    that constitute "the FPU."
    365 
    366     The firmware source code archive indicates that the FPU is based
    367     on micro-programmable hardware. We recently ran this by Lynx, the
    368     developer of the firmware, who generously agreed to meet up with
    369     us in Oakland, CA. While he did not work on the FPU and thus was
    370     not familiar with its implementation details, he was able to
    371     confirm that the FPU is based on AMD's Am2900 family.
    372362
    373363If you have access to an actual Buchla 700, please do contact us. It
     
    375365
    376366If your Buchla is non-functional, this is also fine. We might be able
    377 to gain some insights from reading out the FPU microcode PROMs or from
    378 figuring out how the FPU chips are wired together.
     367to gain some insights from reading out the FPU microcode PROMs.
Note: See TracChangeset for help on using the changeset viewer.