src/mess/audio/mea8000.c
| r3901 | r3902 | |
| 111 | 111 | |
| 112 | 112 | #define LOG(x) do { if (VERBOSE) logerror x; } while (0) |
| 113 | 113 | |
| 114 | | /* digital filters work at 8KHz */ |
| 114 | /* digital filters work at 8 kHz */ |
| 115 | 115 | #define F0 8096 |
| 116 | 116 | |
| 117 | 117 | /* filtered output is supersampled x 8 */ |
| r3901 | r3902 | |
| 477 | 477 | |
| 478 | 478 | |
| 479 | 479 | |
| 480 | | /* next sample in frame, sampling at 64 KHz */ |
| 480 | /* next sample in frame, sampling at 64 kHz */ |
| 481 | 481 | static TIMER_CALLBACK( mea8000_timer_expire ) |
| 482 | 482 | { |
| 483 | 483 | device_config* device = (device_config*) ptr; |
src/mess/audio/dave.c
| r3901 | r3902 | |
| 7 | 7 | |
| 8 | 8 | - pure tone |
| 9 | 9 | - sampled sounds |
| 10 | | - 1kHz, 50Hz and 1Hz ints |
| 10 | - 1 kHz, 50 Hz and 1 Hz ints |
| 11 | 11 | - external ints (int1 and int2) - not correct speed yet |
| 12 | 12 | |
| 13 | 13 | */ |
| r3901 | r3902 | |
| 678 | 678 | b4 = 1: Enable INT1 |
| 679 | 679 | b3 = 1: Reset 1Hz interrupt latch |
| 680 | 680 | b2 = 1: Enable 1Hz interrupt |
| 681 | | b1 = 1: Reset 1kHz/50hz/TG latch |
| 681 | b1 = 1: Reset 1kHz/50Hz/TG latch |
| 682 | 682 | b0 = 1: Enable 1kHz/50Hz/TG latch |
| 683 | 683 | */ |
| 684 | 684 | |
src/mess/machine/tc8521.c
| r3901 | r3902 | |
| 68 | 68 | bit 1: test 1 |
| 69 | 69 | bit 0: test 0 |
| 70 | 70 | 0x0f: RESET etc |
| 71 | | bit 3: 1hz enable |
| 72 | | bit 2: 16hz enable |
| 71 | bit 3: 1 Hz enable |
| 72 | bit 2: 16 Hz enable |
| 73 | 73 | bit 1: timer reset |
| 74 | 74 | bit 0: alarm reset |
| 75 | 75 | |
| r3901 | r3902 | |
| 226 | 226 | |
| 227 | 227 | /* what happens when all are enabled? I assume they are all or'd together */ |
| 228 | 228 | |
| 229 | | /* 16hz enabled? */ |
| 229 | /* 16 Hz enabled? */ |
| 230 | 230 | if ((rtc->registers[TC8521_RESET_REGISTER] & (1<<2))==0) |
| 231 | 231 | { |
| 232 | 232 | /* yes */ |
| 233 | 233 | |
| 234 | | /* add in state of 16hz output */ |
| 234 | /* add in state of 16 Hz output */ |
| 235 | 235 | alarm_output |= (rtc->alarm_outputs & ALARM_OUTPUT_16HZ); |
| 236 | 236 | } |
| 237 | 237 | |
| 238 | 238 | if ((rtc->registers[TC8521_RESET_REGISTER] & (1<<3))==0) |
| 239 | 239 | { |
| 240 | 240 | /* yes */ |
| 241 | | /* add in stat of 1hz output */ |
| 241 | /* add in stat of 1 Hz output */ |
| 242 | 242 | alarm_output |= ((rtc->alarm_outputs & ALARM_OUTPUT_1HZ)>>1); |
| 243 | 243 | } |
| 244 | 244 | |
| r3901 | r3902 | |
| 296 | 296 | tc8521_t *rtc = get_token(device); |
| 297 | 297 | |
| 298 | 298 | /* Assumption how it works */ |
| 299 | | /* 16hz output = 16 cycles per second, 16 cycles of high-low from counter */ |
| 299 | /* 16 Hz output = 16 cycles per second, 16 cycles of high-low from counter */ |
| 300 | 300 | |
| 301 | | /* toggle 16hz wave state */ |
| 301 | /* toggle 16 Hz wave state */ |
| 302 | 302 | rtc->alarm_outputs ^= ALARM_OUTPUT_16HZ; |
| 303 | 303 | /* set in alarm output */ |
| 304 | 304 | tc8521_set_alarm_output(device); |
| r3901 | r3902 | |
| 309 | 309 | { |
| 310 | 310 | rtc->thirty_two_hz_counter = 0; |
| 311 | 311 | |
| 312 | | /* toggle 1hz output */ |
| 312 | /* toggle 1 Hz output */ |
| 313 | 313 | rtc->alarm_outputs ^= ALARM_OUTPUT_1HZ; |
| 314 | 314 | /* set in alarm output */ |
| 315 | 315 | tc8521_set_alarm_output(device); |
| r3901 | r3902 | |
| 478 | 478 | { |
| 479 | 479 | if ((data & 0x08)==0) |
| 480 | 480 | { |
| 481 | | LOG(("1hz enable\n")); |
| 481 | LOG(("1 Hz enable\n")); |
| 482 | 482 | } |
| 483 | 483 | |
| 484 | 484 | if ((data & 0x04)==0) |
| 485 | 485 | { |
| 486 | | LOG(("16hz enable\n")); |
| 486 | LOG(("16 Hz enable\n")); |
| 487 | 487 | } |
| 488 | 488 | |
| 489 | 489 | if (data & 0x02) |
src/mess/machine/thomson.c
| r3901 | r3902 | |
| 44 | 44 | |
| 45 | 45 | /* On the TO7 & compatible (TO7/70,TO8,TO9, but not MO5,MO6), bits are coded |
| 46 | 46 | in FM format with a 1.1 ms period (900 bauds): |
| 47 | | - 0 is 5 periods at 4.5 KHz |
| 48 | | - 1 is 7 periods at 6.3 KHz |
| 47 | - 0 is 5 periods at 4.5 kHz |
| 48 | - 1 is 7 periods at 6.3 kHz |
| 49 | 49 | |
| 50 | 50 | Moreover, a byte is represented using 11 bits: |
| 51 | 51 | - one 0 start bit |
| r3901 | r3902 | |
| 58 | 58 | |
| 59 | 59 | The computer outputs a modulated wave that is directly put on the cassette. |
| 60 | 60 | However, the input is demodulated by the cassette-reader before being |
| 61 | | sent to the computer: we got 0 when the signal is around 4.5 KHz and |
| 62 | | 1 when the signal is around 6.3 KHz. |
| 61 | sent to the computer: we got 0 when the signal is around 4.5 kHz and |
| 62 | 1 when the signal is around 6.3 kHz. |
| 63 | 63 | */ |
| 64 | 64 | |
| 65 | 65 | #define TO7_BIT_LENGTH 0.001114 |
| r3901 | r3902 | |
| 70 | 70 | |
| 71 | 71 | |
| 72 | 72 | /* 1-bit cassette input to the computer |
| 73 | | inside the controller, two frequency filters (adjusted to 6.3 and 4.5 KHz) |
| 73 | inside the controller, two frequency filters (adjusted to 6.3 and 4.5 kHz) |
| 74 | 74 | and a comparator demodulate the raw signal into 0s and 1s. |
| 75 | 75 | */ |
| 76 | 76 | static int to7_get_cassette ( running_machine *machine ) |
src/mess/drivers/thomson.c
| r3901 | r3902 | |
| 338 | 338 | - AZERTY keyboard, 58-keys, French with accents |
| 339 | 339 | - cartridge 16 KB (up to 64 KB using bank-switching), |
| 340 | 340 | the MESS cartridge device is named -cart |
| 341 | | - cassette 900 bauds (frequency signals: 0=4.5Khz, 1=6.3KHz) |
| 341 | - cassette 900 bauds (frequency signals: 0=4.5 kHz, 1=6.3 kHz) |
| 342 | 342 | the MESS cassette device is named -cass |
| 343 | 343 | - 1-bit internal buzzer |
| 344 | 344 | - lightpen, with 8-pixel horizontal resolution, 1-pixel vertical |
| r3901 | r3902 | |
| 1001 | 1001 | . the right SHIFT key has been replaced with a BASIC key |
| 1002 | 1002 | . no caps-lock led |
| 1003 | 1003 | - the famous lightpen is optional |
| 1004 | | - cassette 1200 bauds (frequency signals: 0=4.5Khz, 1=6.3KHz), |
| 1004 | - cassette 1200 bauds (frequency signals: 0=4.5kHz, 1=6.3kHz), |
| 1005 | 1005 | TO7-incompatible |
| 1006 | 1006 | - optional cartridge, up to 64 KB, incompatible with TO7, |
| 1007 | 1007 | masks the integrated BASIC ROM |
src/mess/drivers/newbrain.c
| r3901 | r3902 | |
| 652 | 652 | 0 _USERP 0 enables user data bus interrupt and also parallel latched data output (or centronics printer) interrupt |
| 653 | 653 | 1 ANP 1 enables ADC conversion complete interrupt and also calling indicator interrupt |
| 654 | 654 | 2 MLTMD 1 enables serial receive clock into multiplier input of DAC and signals data terminal not ready |
| 655 | | 3 MSPD 1 enables 50K Baud serial data rate to be obtained ie. CTC input clock of 800KHz. 0 selects xxx.692KHz |
| 655 | 3 MSPD 1 enables 50K Baud serial data rate to be obtained ie. CTC input clock of 800 kHz. 0 selects xxx.692 kHz |
| 656 | 656 | 4 ENOR 1 enables serial receive clock to sound output summer, and also selects serial input from the printer port. 0 selects serial input from the comms port |
| 657 | 657 | 5 ANSW 1 enables second bank of 4 analogue inputs (voltage, non-ratiometric), ie. ch4-7, and enabled sound output, 0 selects ch03 |
| 658 | 658 | 6 ENOT 1 enables serial transmit clock to sound ouput summer, and also selects serial output to the printer port. 0 selects serial output to the comms port |