Previous 199869 Revisions Next

r26073 Saturday 9th November, 2013 at 16:46:56 UTC by Jürgen Buchmüller
Define LOG_xxx constants for the sections, m_log_type enable mask and m_log_level verbosity. Log output into the debug console.
[/branches/alto2/src/emu/cpu/alto2]a2curt.c a2dht.c a2disk.c a2disp.c a2drive.c a2dvt.c a2dwt.c a2emu.c a2ether.c a2ksec.c a2kwd.c a2mem.c a2mrt.c a2ram.c alto2.c alto2.h
[/branches/alto2/src/mess/includes]alto2.h

branches/alto2/src/emu/cpu/alto2/a2ether.c
r26072r26073
127127
128128   etac = m_task == task_ether;
129129
130   LOG((0,0,"eth_wakeup: ibusy=%d obusy=%d ", GET_ETH_IBUSY(m_eth.status), GET_ETH_OBUSY(m_eth.status)));
130   LOG((LOG_ETH,0,"eth_wakeup: ibusy=%d obusy=%d ", GET_ETH_IBUSY(m_eth.status), GET_ETH_OBUSY(m_eth.status)));
131131   busy = GET_ETH_IBUSY(m_eth.status) | GET_ETH_OBUSY(m_eth.status);
132132   /* if not busy, reset the FIFO read and write counters */
133133   if (busy == 0) {
r26072r26073
144144    *   input gone
145145    */
146146   if (GET_ETH_IDL(m_eth.status)) {
147      LOG((0,0,"post (input data late)\n"));
147      LOG((LOG_ETH,0,"post (input data late)\n"));
148148      m_task_wakeup |= 1 << task_ether;
149149      return;
150150   }
151151   if (GET_ETH_OCMD(m_eth.status)) {
152      LOG((0,0,"post (output command)\n"));
152      LOG((LOG_ETH,0,"post (output command)\n"));
153153      m_task_wakeup |= 1 << task_ether;
154154      return;
155155   }
156156   if (GET_ETH_ICMD(m_eth.status)) {
157      LOG((0,0,"post (input command)\n"));
157      LOG((LOG_ETH,0,"post (input command)\n"));
158158      m_task_wakeup |= 1 << task_ether;
159159      return;
160160   }
161161   if (GET_ETH_OGONE(m_eth.status)) {
162      LOG((0,0,"post (output gone)\n"));
162      LOG((LOG_ETH,0,"post (output gone)\n"));
163163      m_task_wakeup |= 1 << task_ether;
164164      return;
165165   }
166166   if (GET_ETH_IGONE(m_eth.status)) {
167      LOG((0,0,"post (input gone)\n"));
167      LOG((LOG_ETH,0,"post (input gone)\n"));
168168      m_task_wakeup |= 1 << task_ether;
169169      return;
170170   }
r26072r26073
181181   idr = GET_ETH_IBUSY(m_eth.status) && (ETHER_A49_BNNE || (ETHER_A49_BNE == 0 && etac));
182182   if (idr) {
183183      m_task_wakeup |= 1 << task_ether;
184      LOG((0,0,"input data ready\n"));
184      LOG((LOG_ETH,0,"input data ready\n"));
185185      return;
186186   }
187187
r26072r26073
197197   odr = GET_ETH_OBUSY(m_eth.status) && (GET_ETH_OEOT(m_eth.status) || (GET_ETH_WLF(m_eth.status) && ETHER_A49_BF == 0));
198198   if (odr) {
199199      m_task_wakeup |= 1 << task_ether;
200      LOG((0,0,"output data ready\n"));
200      LOG((LOG_ETH,0,"output data ready\n"));
201201      return;
202202   }
203203
r26072r26073
209209    */
210210   if (m_ewfct) {
211211      m_task_wakeup |= 1 << task_ether;
212      LOG((0,0,"ether wake function\n"));
212      LOG((LOG_ETH,0,"ether wake function\n"));
213213      return;
214214   }
215215
216216   /* otherwise no more wakeup for the Ether task */
217   LOG((0,0,"-/-\n"));
217   LOG((LOG_ETH,0,"-/-\n"));
218218   m_task_wakeup &= ~(1 << task_ether);
219219}
220220
r26072r26073
389389      if (m_eth.tx_timer)
390390         m_eth.tx_timer->enable(false);
391391      /* TODO: send the CRC as final word of the packet */
392      LOG((0,0," CRC:%06o\n", m_eth.tx_crc));
392      LOG((LOG_ETH,0," CRC:%06o\n", m_eth.tx_crc));
393393      m_eth.tx_crc = 0;
394394      PUT_ETH_OGONE(m_eth.status, 1);      // set the OGONE flip flop
395395      eth_wakeup();
r26072r26073
399399   data = m_eth.fifo[m_eth.fifo_rd];
400400   m_eth.tx_crc = f9401_7(m_eth.tx_crc, data);
401401   if (m_eth.fifo_rd % 8)
402      LOG((0,0," %06o", data));
402      LOG((LOG_ETH,0," %06o", data));
403403   else
404      LOG((0,0,"\n%06o: %06o", m_eth.tx_count, data));
404      LOG((LOG_ETH,0,"\n%06o: %06o", m_eth.tx_count, data));
405405   m_eth.fifo_rd = (m_eth.fifo_rd + 1) % ALTO2_ETHER_FIFO_SIZE;
406406   m_eth.tx_count++;
407407
r26072r26073
440440{
441441   UINT16 r = m_eth.fifo[m_eth.fifo_rd];
442442
443   LOG((0,3, "   <-EIDFCT; pull %06o from FIFO[%02o]\n", r, m_eth.fifo_rd));
443   LOG((LOG_ETH,3, "   <-EIDFCT; pull %06o from FIFO[%02o]\n", r, m_eth.fifo_rd));
444444   m_eth.fifo_rd = (m_eth.fifo_rd + 1) % ALTO2_ETHER_FIFO_SIZE;
445445   m_bus &= r;
446446   m_eth.rx_count++;
r26072r26073
453453 */
454454void alto2_cpu_device::f1_eth_block_0()
455455{
456   LOG((0,2,"   BLOCK %s\n", task_name(m_task)));
456   LOG((LOG_ETH,2,"   BLOCK %s\n", task_name(m_task)));
457457   m_task_wakeup &= ~(1 << task_ether);
458458}
459459
r26072r26073
466466void alto2_cpu_device::f1_eilfct_0()
467467{
468468   UINT16 r = m_eth.fifo[m_eth.fifo_rd];
469   LOG((0,3, "   <-EILFCT; %06o at FIFO[%02o]\n", r, m_eth.fifo_rd));
469   LOG((LOG_ETH,3, "   <-EILFCT; %06o at FIFO[%02o]\n", r, m_eth.fifo_rd));
470470   m_bus &= r;
471471}
472472
r26072r26073
487487{
488488   UINT16 r = ~A2_GET16(m_eth.status,16,10,15) & 0177777;
489489
490   LOG((0,3, "   <-EPFCT; BUS[8-15] = STATUS (%#o)\n", r));
490   LOG((LOG_ETH,3, "   <-EPFCT; BUS[8-15] = STATUS (%#o)\n", r));
491491   m_bus &= r;
492492
493493   m_eth.status = 0;
r26072r26073
519519 */
520520void alto2_cpu_device::f2_eodfct_1()
521521{
522   LOG((0,3, "   EODFCT<-; push %06o into FIFO[%02o]\n", m_bus, m_eth.fifo_wr));
522   LOG((LOG_ETH,3, "   EODFCT<-; push %06o into FIFO[%02o]\n", m_bus, m_eth.fifo_wr));
523523
524524   m_eth.fifo[m_eth.fifo_wr] = m_bus;
525525   m_eth.fifo_wr = (m_eth.fifo_wr + 1) % ALTO2_ETHER_FIFO_SIZE;
r26072r26073
545545 */
546546void alto2_cpu_device::f2_eosfct_1()
547547{
548   LOG((0,3, "   EOSFCT\n"));
548   LOG((LOG_ETH,3, "   EOSFCT\n"));
549549   PUT_ETH_WLF(m_eth.status, 0);
550550   PUT_ETH_OBUSY(m_eth.status, 0);
551551   eth_wakeup();
r26072r26073
566566   UINT16 r = 0;
567567   A2_PUT16(r,10,6,6,GET_ETH_ICMD(m_eth.status));
568568   A2_PUT16(r,10,7,7,GET_ETH_OCMD(m_eth.status));
569   LOG((0,3, "   ERBFCT; NEXT[6-7] = ICMD,OCMD (%#o | %#o)\n", m_next2, r));
569   LOG((LOG_ETH,3, "   ERBFCT; NEXT[6-7] = ICMD,OCMD (%#o | %#o)\n", m_next2, r));
570570   m_next2 |= r;
571571   eth_wakeup();
572572}
r26072r26073
608608      GET_ETH_OCMD(m_eth.status) |
609609      GET_ETH_IGONE(m_eth.status) |
610610      GET_ETH_OGONE(m_eth.status));
611   LOG((0,3, "   EBFCT; NEXT ... (%#o | %#o)\n", m_next2, r));
611   LOG((LOG_ETH,3, "   EBFCT; NEXT ... (%#o | %#o)\n", m_next2, r));
612612   m_next2 |= r;
613613}
614614
r26072r26073
622622   UINT16 r = 0;
623623   /* TODO: the BE' (buffer empty) signal is output D0 of PROM a49 */
624624   A2_PUT16(r,10,7,7,ETHER_A49_BE);
625   LOG((0,3, "   ECBFCT; NEXT[7] = FIFO %sempty (%#o | %#o)\n", r ? "not " : "is ", m_next2, r));
625   LOG((LOG_ETH,3, "   ECBFCT; NEXT[7] = FIFO %sempty (%#o | %#o)\n", r ? "not " : "is ", m_next2, r));
626626   m_next2 |= r;
627627}
628628
r26072r26073
636636 */
637637void alto2_cpu_device::f2_eisfct_1()
638638{
639   LOG((0,3, "   EISFCT\n"));
639   LOG((LOG_ETH,3, "   EISFCT\n"));
640640   PUT_ETH_IBUSY(m_eth.status, 0);
641641   eth_wakeup();
642642}
branches/alto2/src/emu/cpu/alto2/a2drive.c
r26072r26073
5151      return;
5252   }
5353   if (d->cylinder < 0 || d->cylinder >= DIABLO_DRIVE_CYLINDERS) {
54      LOG((0,9,"   DRIVE C/H/S:%d/%d/%d => invalid cylinder\n", d->cylinder, d->head, d->sector));
54      LOG((LOG_DRIVE,9,"   DRIVE C/H/S:%d/%d/%d => invalid cylinder\n", d->cylinder, d->head, d->sector));
5555      d->page = -1;
5656      return;
5757   }
5858   /* calculate the new disk relative sector offset */
5959   d->page = DRIVE_PAGE(d->cylinder, d->head, d->sector);
60   LOG((0,9,"   DRIVE C/H/S:%d/%d/%d => page:%d\n", d->cylinder, d->head, d->sector, d->page));
60   LOG((LOG_DRIVE,9,"   DRIVE C/H/S:%d/%d/%d => page:%d\n", d->cylinder, d->head, d->sector, d->page));
6161}
6262
6363/**
r26072r26073
205205      return;
206206
207207   if (-1 == page || !d->image) {
208      LOG((0,0,"   no sector for #%d: %d/%d/%d\n", d->unit, d->cylinder, d->head, d->sector));
208      LOG((LOG_DRIVE,0,"   no sector for #%d: %d/%d/%d\n", d->unit, d->cylinder, d->head, d->sector));
209209      return;
210210   }
211211
r26072r26073
258258#endif
259259   d->bits[page] = bits;
260260
261   LOG((0,0,"   BITS #%d: %03d/%d/%02d #%-5d bits (@%03d.%02d)\n",
261   LOG((LOG_DRIVE,0,"   BITS #%d: %03d/%d/%02d #%-5d bits (@%03d.%02d)\n",
262262      d->unit, d->cylinder, d->head, d->sector,
263263      dst, dst / 32, dst % 32));
264264
r26072r26073
268268void alto2_cpu_device::drive_dump_ascii(UINT8 *src, size_t size)
269269{
270270   size_t offs;
271   LOG((0,0," ["));
271   LOG((LOG_DRIVE,0," ["));
272272   for (offs = 0; offs < size; offs++) {
273273      char ch = (char)src[offs ^ 1];
274      LOG((0,0, "%c", ch < 32 || ch > 126 ? '.' : ch));
274      LOG((LOG_DRIVE,0, "%c", ch < 32 || ch > 126 ? '.' : ch));
275275   }
276   LOG((0,0,"]\n"));
276   LOG((LOG_DRIVE,0,"]\n"));
277277}
278278
279279
r26072r26073
287287size_t alto2_cpu_device::dump_record(UINT8 *src, size_t addr, size_t size, const char *name, int cr)
288288{
289289   size_t offs;
290   LOG((0,0,"%s:", name));
290   LOG((LOG_DRIVE,0,"%s:", name));
291291   for (offs = 0; offs < size; offs += 2) {
292292      int word = src[offs] + 256 * src[offs + 1];
293293      if (offs % 16) {
294         LOG((0,0," %06o", word));
294         LOG((LOG_DRIVE,0," %06o", word));
295295      } else {
296296         if (offs > 0)
297297            drive_dump_ascii(&src[offs-16], 16);
298         LOG((0,0,"\t%05o: %06o", (addr + offs) / 2, word));
298         LOG((LOG_DRIVE,0,"\t%05o: %06o", (addr + offs) / 2, word));
299299      }
300300   }
301301   if (offs % 16) {
r26072r26073
304304      drive_dump_ascii(&src[offs-16], 16);
305305   }
306306   if (cr) {
307      LOG((0,0,"\n"));
307      LOG((LOG_DRIVE,0,"\n"));
308308   }
309309   return size;
310310}
r26072r26073
343343      }
344344   }
345345   /* return if no sync found within size*32 clock and data bits */
346   LOG((0,0,"   no sync within %d words\n", size));
346   LOG((LOG_DRIVE,0,"   no sync within %d words\n", size));
347347   return src;
348348}
349349
r26072r26073
380380      }
381381   }
382382   /* return if no sync found within size*32 clock and data bits */
383   LOG((0,0,"   no unsync within %d words\n", size));
383   LOG((LOG_DRIVE,0,"   no unsync within %d words\n", size));
384384   return src;
385385}
386386
r26072r26073
459459      fatal(1, "invalid unit %d in call to squeeze_sector()\n", unit);
460460
461461   if (d->rdfirst >= 0) {
462      LOG((0,0,
462      LOG((LOG_DRIVE,0,
463463         "   RD #%d %03d/%d/%02d bit#%-5d (@%03d.%02d) ... bit#%-5d (@%03d.%02d)\n",
464464         d->unit, d->cylinder, d->head, d->sector,
465465         d->rdfirst, d->rdfirst / 32, d->rdfirst % 32,
r26072r26073
483483   }
484484
485485   if (d->wrfirst >= 0) {
486      LOG((0,0,
486      LOG((LOG_DRIVE,0,
487487         "   WR #%d %03d/%d/%02d bit#%-5d (@%03d.%02d) ... bit#%-5d (@%03d.%02d)\n",
488488         d->unit, d->cylinder, d->head, d->sector,
489489         d->wrfirst, d->wrfirst / 32, d->wrfirst % 32,
r26072r26073
493493   d->wrlast = -1;
494494
495495   if (d->page < 0 || d->page >= DIABLO_DRIVE_PAGES) {
496      LOG((0,0,"   no sector for #%d: %d/%d/%d\n", d->unit, d->cylinder, d->head, d->sector));
496      LOG((LOG_DRIVE,0,"   no sector for #%d: %d/%d/%d\n", d->unit, d->cylinder, d->head, d->sector));
497497      return;
498498   }
499499
r26072r26073
505505
506506   /* no bits to write? */
507507   if (!bits) {
508      LOG((0,0,"   no sector for #%d: %d/%d/%d\n", d->unit, d->cylinder, d->head, d->sector));
508      LOG((LOG_DRIVE,0,"   no sector for #%d: %d/%d/%d\n", d->unit, d->cylinder, d->head, d->sector));
509509      return;
510510   }
511511
r26072r26073
519519   src = squeeze_unsync(bits, src, 40);
520520   /* sync on header preamble */
521521   src = squeeze_sync(bits, src, 40);
522   LOG((0,0,"   header sync bit #%d (@%03d.%02d)\n",
522   LOG((LOG_DRIVE,0,"   header sync bit #%d (@%03d.%02d)\n",
523523      src, src / 32, src % 32));
524524   src = squeeze_record(bits, src, s->header, sizeof(s->header));
525525   src = squeeze_cksum(bits, src, &cksum_header);
r26072r26073
531531   src = squeeze_unsync(bits, src, 40);
532532   /* sync on label preamble */
533533   src = squeeze_sync(bits, src, 40);
534   LOG((0,0,"   label  sync bit #%d (@%03d.%02d)\n",
534   LOG((LOG_DRIVE,0,"   label  sync bit #%d (@%03d.%02d)\n",
535535      src, src / 32, src % 32));
536536   src = squeeze_record(bits, src, s->label, sizeof(s->label));
537537   src = squeeze_cksum(bits, src, &cksum_label);
r26072r26073
543543   src = squeeze_unsync(bits, src, 40);
544544   /* sync on data preamble */
545545   src = squeeze_sync(bits, src, 40);
546   LOG((0,0,"   data   sync bit #%d (@%03d.%02d)\n",
546   LOG((LOG_DRIVE,0,"   data   sync bit #%d (@%03d.%02d)\n",
547547      src, src / 32, src % 32));
548548   src = squeeze_record(bits, src, s->data, sizeof(s->data));
549549   src = squeeze_cksum(bits, src, &cksum_data);
r26072r26073
558558
559559   if (cksum_header || cksum_label || cksum_data) {
560560#if   ALTO2_DEBUG
561      LOG((0,0,"   cksum check - header:%06o label:%06o data:%06o\n", cksum_header, cksum_label, cksum_data));
561      LOG((LOG_DRIVE,0,"   cksum check - header:%06o label:%06o data:%06o\n", cksum_header, cksum_label, cksum_data));
562562#else
563563      printf("   cksum check - header:%06o label:%06o data:%06o\n", cksum_header, cksum_label, cksum_data);
564564#endif
r26072r26073
834834      d->addx_acknowledge_0 = 0;
835835      /* clear log address interlock (?) */
836836      d->log_addx_interlock_0 = 1;
837      LOG((0,1,"   UNIT select %d ready\n", unit));
837      LOG((LOG_DRIVE,1,"   UNIT select %d ready\n", unit));
838838   } else {
839839      /* it is not ready (?) */
840840      d->ready_0 = 1;
r26072r26073
842842      d->s_r_w_0 = 1;
843843      /* address acknowledge (?) */
844844      d->addx_acknowledge_0 = 0;
845      LOG((0,1,"   UNIT select %d not ready (no image)\n", unit));
845      LOG((LOG_DRIVE,1,"   UNIT select %d not ready (no image)\n", unit));
846846   }
847847
848848   /* Note: head select input is active low (0: selects head 1, 1: selects head 0) */
849849   head = head & DIABLO_DRIVE_HEAD_MASK;
850850   if (head != d->head) {
851851      d->head = head;
852      LOG((0,1,"   HEAD %d select on unit %d\n", head, unit));
852      LOG((LOG_DRIVE,1,"   HEAD %d select on unit %d\n", head, unit));
853853   }
854854   drive_get_sector(unit);
855855}
r26072r26073
873873      fatal(1, "invalid unit %d in call to drive_strobe()\n", unit);
874874
875875   if (strobe == 1) {
876      LOG((0,1,"   STROBE end of interlock\n", seekto));
876      LOG((LOG_DRIVE,1,"   STROBE end of interlock\n", seekto));
877877      /* deassert the log address interlock */
878878      d->log_addx_interlock_0 = 1;
879879      return;
r26072r26073
883883   d->log_addx_interlock_0 = 0;
884884
885885   if (seekto == d->cylinder) {
886      LOG((0,1,"   STROBE to cylinder %d acknowledge\n", seekto));
886      LOG((LOG_DRIVE,1,"   STROBE to cylinder %d acknowledge\n", seekto));
887887      d->addx_acknowledge_0 = 0;   /* address acknowledge, if cylinder is reached */
888888      d->seek_incomplete_0 = 1;   /* reset seek incomplete */
889889      return;
r26072r26073
899899         d->log_addx_interlock_0 = 1;   /* deassert the log address interlock */
900900         d->seek_incomplete_0 = 1;   /* deassert seek incomplete */
901901         d->addx_acknowledge_0 = 0;   /* assert address acknowledge  */
902         LOG((0,1,"   STROBE to cylinder %d incomplete\n", seekto));
902         LOG((LOG_DRIVE,1,"   STROBE to cylinder %d incomplete\n", seekto));
903903         return;
904904      }
905905   } else {
r26072r26073
910910         d->log_addx_interlock_0 = 1;   /* deassert the log address interlock */
911911         d->seek_incomplete_0 = 1;   /* deassert seek incomplete */
912912         d->addx_acknowledge_0 = 0;   /* assert address acknowledge  */
913         LOG((0,1,"   STROBE to cylinder %d incomplete\n", seekto));
913         LOG((LOG_DRIVE,1,"   STROBE to cylinder %d incomplete\n", seekto));
914914         return;
915915      }
916916   }
917   LOG((0,1,"   STROBE to cylinder %d (now %d) - interlock\n", seekto, d->cylinder));
917   LOG((LOG_DRIVE,1,"   STROBE to cylinder %d (now %d) - interlock\n", seekto, d->cylinder));
918918
919919   d->addx_acknowledge_0 = 1;   /* deassert address acknowledge  */
920920   d->seek_incomplete_0 = 1;   /* deassert seek incomplete */
r26072r26073
10171017   if (-1 == d->wrfirst)
10181018      d->wrfirst = index;
10191019
1020   LOG((0,7,"   write #%d %d/%d/%d bit #%d bit:%d\n", unit, d->cylinder, d->head, d->sector, index, wrdata));
1020   LOG((LOG_DRIVE,7,"   write #%d %d/%d/%d bit #%d bit:%d\n", unit, d->cylinder, d->head, d->sector, index, wrdata));
10211021
10221022   if (index < GUARD_ZONE_BITS) {
10231023      /* don't write in the guard zone (?) */
r26072r26073
10741074      d->rdfirst = index;
10751075
10761076   bit = RDBIT(bits,index);
1077   LOG((0,7,"   read #%d %d/%d/%d bit #%d:%d\n", unit, d->cylinder, d->head, d->sector, index, bit));
1077   LOG((LOG_DRIVE,7,"   read #%d %d/%d/%d bit #%d:%d\n", unit, d->cylinder, d->head, d->sector, index, bit));
10781078   d->rdlast = index;
10791079   return bit;
10801080}
r26072r26073
11261126      clk = RDBIT(bits,index);
11271127   }
11281128
1129   LOG((0,7,   "   read #%d %d/%d/%d clk #%d:%d\n", unit, d->cylinder, d->head, d->sector, index, clk));
1129   LOG((LOG_DRIVE,7,   "   read #%d %d/%d/%d clk #%d:%d\n", unit, d->cylinder, d->head, d->sector, index, clk));
11301130
11311131   d->rdlast = index;
11321132   return clk ^ 1;
r26072r26073
12331233   int unit = m_unit_selected;
12341234   diablo_drive_t *d = m_drive[unit];
12351235
1236   LOG((0,5, "   next sector (unit #%d sector %d)\n", unit, d->sector));
1236   LOG((LOG_DRIVE,5, "   next sector (unit #%d sector %d)\n", unit, d->sector));
12371237   (void)d;
12381238
12391239   switch (arg) {
r26072r26073
12651265{
12661266   diablo_drive_t *d = m_drive[unit];
12671267
1268   LOG((0,5, "   sector mark 1 (unit #%d sector %d)\n", unit, d->sector));
1268   LOG((LOG_DRIVE,5, "   sector mark 1 (unit #%d sector %d)\n", unit, d->sector));
12691269   /* set sector mark to 1 */
12701270   d->sector_mark_0 = 1;
12711271}
r26072r26073
12791279{
12801280   diablo_drive_t *d = m_drive[unit];
12811281
1282   LOG((0,5,"   sector mark 0 (unit #%d sector %d)\n", unit, d->sector));
1282   LOG((LOG_DRIVE,5,"   sector mark 0 (unit #%d sector %d)\n", unit, d->sector));
12831283
12841284   /* squeeze previous sector, if it was written to */
12851285   squeeze_sector(unit);
r26072r26073
13401340   if (!strcmp(p, ".z") || !strcmp(p, ".Z") ||
13411341      !strcmp(p, ".gz") || !strcmp(p, ".GZ")) {
13421342      /* compress (LZW) or gzip compressed image */
1343      LOG((0,0,"loading compressed disk image %s\n", arg));
1343      LOG((LOG_DRIVE,0,"loading compressed disk image %s\n", arg));
13441344      zcat = 1;
13451345   } else if (!strcmp(p, ".dsk") || !strcmp(p, ".DSK")) {
13461346      /* uncompressed .dsk extension */
1347      LOG((0,0,"loading uncompressed disk image %s\n", arg));
1347      LOG((LOG_DRIVE,0,"loading uncompressed disk image %s\n", arg));
13481348      zcat = 0;
13491349   } else {
13501350      return -1;
r26072r26073
13781378   for (done = 0; done < size * sizeof(diablo_sector_t); /* */) {
13791379      int got = fread(ip + done, 1, size * sizeof(diablo_sector_t) - done, fp);
13801380      if (got < 0) {
1381         LOG((0,0,"fread() returned error (%s)\n",
1381         LOG((LOG_DRIVE,0,"fread() returned error (%s)\n",
13821382            strerror(errno)));
13831383         break;
13841384      }
r26072r26073
13881388   }
13891389   fclose(fp);
13901390
1391   LOG((0,0, "got %d (%#x) bytes\n", done, done));
1391   LOG((LOG_DRIVE,0, "got %d (%#x) bytes\n", done, done));
13921392
13931393   cooked = (diablo_sector_t *)malloc(csize);
13941394   if (!cooked)
r26072r26073
14221422   ip = NULL;
14231423
14241424   if (csize != size * sizeof(diablo_sector_t)) {
1425      LOG((0,0,"disk image %s size mismatch (%d bytes)\n", arg, csize));
1425      LOG((LOG_DRIVE,0,"disk image %s size mismatch (%d bytes)\n", arg, csize));
14261426      free(cooked);
14271427      return -1;
14281428   }
r26072r26073
14381438      hdr = cooked->header[2] + 256 * cooked->header[3];
14391439      chs = (s << 12) | (c << 3) | (h << 2) | (unit << 1);
14401440      if (chs != hdr) {
1441         LOG((0,0,"WARNING: header mismatch C/H/S: %3d/%d/%2d chs:%06o hdr:%06o\n",
1441         LOG((LOG_DRIVE,0,"WARNING: header mismatch C/H/S: %3d/%d/%2d chs:%06o hdr:%06o\n",
14421442            c, h, s, chs, hdr));
14431443      }
14441444      if (++s == DRIVE_SPT) {
r26072r26073
14541454   /* set drive image */
14551455   d->image = (diablo_sector_t *)cp;
14561456
1457   LOG((0,0,"drive #%d successfully created image for %s\n", unit, arg));
1457   LOG((LOG_DRIVE,0,"drive #%d successfully created image for %s\n", unit, arg));
14581458
14591459   drive_select(unit, 0);
14601460
r26072r26073
14631463   /* drive address acknowledge is active now */
14641464   d->addx_acknowledge_0 = 0;
14651465
1466   LOG((0,0,"possible %s sector size is %#o (%d) words\n", d->description, SECTOR_WORDS, SECTOR_WORDS));
1466   LOG((LOG_DRIVE,0,"possible %s sector size is %#o (%d) words\n", d->description, SECTOR_WORDS, SECTOR_WORDS));
14671467
1468   LOG((0,0,"sector mark pulse length is %lldns\n", SECTOR_MARK_PULSE_PRE + SECTOR_MARK_PULSE_POST));
1468   LOG((LOG_DRIVE,0,"sector mark pulse length is %lldns\n", SECTOR_MARK_PULSE_PRE + SECTOR_MARK_PULSE_POST));
14691469
14701470   return 0;
14711471}
branches/alto2/src/emu/cpu/alto2/a2curt.c
r26072r26073
1515void alto2_cpu_device::f1_curt_block_0()
1616{
1717   m_task_wakeup &= ~(1 << m_task);
18   LOG((0,2,"   BLOCK %s\n", task_name(m_task)));
18   LOG((LOG_CURT,2,"   BLOCK %s\n", task_name(m_task)));
1919   m_dsp.curt_blocks = 1;
2020}
2121
r26072r26073
2525void alto2_cpu_device::f2_load_xpreg_1()
2626{
2727   m_dsp.xpreg = A2_GET32(m_bus,16,6,15);
28   LOG((0,2,"   XPREG<- BUS[6-15] (%#o)\n", m_dsp.xpreg));
28   LOG((LOG_CURT,2,"   XPREG<- BUS[6-15] (%#o)\n", m_dsp.xpreg));
2929}
3030
3131/**
r26072r26073
4848void alto2_cpu_device::f2_load_csr_1()
4949{
5050   m_dsp.csr = m_bus;
51   LOG((0,2,"   CSR<- BUS (%#o)\n", m_dsp.csr));
51   LOG((LOG_CURT,2,"   CSR<- BUS (%#o)\n", m_dsp.csr));
5252   int x = 1023 - m_dsp.xpreg; \
5353   m_dsp.curdata = m_dsp.csr << (16 - (x & 15)); \
5454   m_dsp.curword = x / 16; \
branches/alto2/src/emu/cpu/alto2/a2mem.c
r26072r26073
448448         PUT_MESR_BANK(m_mem.mesr, (dw_addr >> 15));
449449         /* latch memory address register */
450450         m_mem.mear = m_mem.mar & 0177777;
451         LOG((0,5,"   memory error at dword addr:%07o data:%011o check:%03o\n", dw_addr * 2, dw_data, hpb));
452         LOG((0,6,"   MEAR: %06o\n", m_mem.mear));
453         LOG((0,6,"   MESR: %06o\n", m_mem.mesr ^ 0177777));
454         LOG((0,6,"      Hamming code read    : %#o\n", GET_MESR_HAMMING(m_mem.mesr)));
455         LOG((0,6,"      Parity error         : %o\n", GET_MESR_PERR(m_mem.mesr)));
456         LOG((0,6,"      Memory parity bit    : %o\n", GET_MESR_PARITY(m_mem.mesr)));
457         LOG((0,6,"      Hamming syndrome     : %#o (bit #%d)\n", GET_MESR_SYNDROME(m_mem.mesr), hamming_lut[GET_MESR_SYNDROME(m_mem.mesr)]));
458         LOG((0,6,"      Memory bank          : %#o\n", GET_MESR_BANK(m_mem.mesr)));
459         LOG((0,6,"   MECR: %06o\n", m_mem.mecr ^ 0177777));
460         LOG((0,6,"      Test Hamming code    : %#o\n", GET_MECR_TEST_CODE(m_mem.mecr)));
461         LOG((0,6,"      Test mode            : %s\n", GET_MECR_TEST_MODE(m_mem.mecr) ? "on" : "off"));
462         LOG((0,6,"      INT on single-bit err: %s\n", GET_MECR_INT_SBERR(m_mem.mecr) ? "on" : "off"));
463         LOG((0,6,"      INT on double-bit err: %s\n", GET_MECR_INT_DBERR(m_mem.mecr) ? "on" : "off"));
464         LOG((0,6,"      Error correction     : %s\n", GET_MECR_ERRCORR(m_mem.mecr) ? "off" : "on"));
451         LOG((LOG_MEM,5,"   memory error at dword addr:%07o data:%011o check:%03o\n", dw_addr * 2, dw_data, hpb));
452         LOG((LOG_MEM,6,"   MEAR: %06o\n", m_mem.mear));
453         LOG((LOG_MEM,6,"   MESR: %06o\n", m_mem.mesr ^ 0177777));
454         LOG((LOG_MEM,6,"      Hamming code read    : %#o\n", GET_MESR_HAMMING(m_mem.mesr)));
455         LOG((LOG_MEM,6,"      Parity error         : %o\n", GET_MESR_PERR(m_mem.mesr)));
456         LOG((LOG_MEM,6,"      Memory parity bit    : %o\n", GET_MESR_PARITY(m_mem.mesr)));
457         LOG((LOG_MEM,6,"      Hamming syndrome     : %#o (bit #%d)\n", GET_MESR_SYNDROME(m_mem.mesr), hamming_lut[GET_MESR_SYNDROME(m_mem.mesr)]));
458         LOG((LOG_MEM,6,"      Memory bank          : %#o\n", GET_MESR_BANK(m_mem.mesr)));
459         LOG((LOG_MEM,6,"   MECR: %06o\n", m_mem.mecr ^ 0177777));
460         LOG((LOG_MEM,6,"      Test Hamming code    : %#o\n", GET_MECR_TEST_CODE(m_mem.mecr)));
461         LOG((LOG_MEM,6,"      Test mode            : %s\n", GET_MECR_TEST_MODE(m_mem.mecr) ? "on" : "off"));
462         LOG((LOG_MEM,6,"      INT on single-bit err: %s\n", GET_MECR_INT_SBERR(m_mem.mecr) ? "on" : "off"));
463         LOG((LOG_MEM,6,"      INT on double-bit err: %s\n", GET_MECR_INT_DBERR(m_mem.mecr) ? "on" : "off"));
464         LOG((LOG_MEM,6,"      Error correction     : %s\n", GET_MECR_ERRCORR(m_mem.mecr) ? "off" : "on"));
465465      }
466466      if (-1 == hamming_lut[syndrome]) {
467467         /* double-bit error: wake task_part, if we're told so */
r26072r26073
473473            m_task_wakeup |= 1 << task_part;
474474         /* should we correct the single bit error ? */
475475         if (0 == GET_MECR_ERRCORR(m_mem.mecr)) {
476            LOG((0,0,"   correct bit #%d addr:%07o data:%011o check:%03o\n", hamming_lut[syndrome], dw_addr * 2, dw_data, hpb));
476            LOG((LOG_MEM,0,"   correct bit #%d addr:%07o data:%011o check:%03o\n", hamming_lut[syndrome], dw_addr * 2, dw_data, hpb));
477477            dw_data ^= 1ul << hamming_lut[syndrome];
478478         }
479479      }
r26072r26073
490490 */
491491UINT16 alto2_cpu_device::bad_mmio_read_fn(UINT32 address)
492492{
493   LOG((0,1,"   stray I/O read of address %#o\n", address));
493   LOG((LOG_MEM,1,"   stray I/O read of address %#o\n", address));
494494   (void)address;
495495   return 0177777;
496496}
r26072r26073
503503 */
504504void alto2_cpu_device::bad_mmio_write_fn(UINT32 address, UINT16 data)
505505{
506   LOG((0,1,"   stray I/O write of address %06o, data %#o\n", address, data));
506   LOG((LOG_MEM,1,"   stray I/O write of address %06o, data %#o\n", address, data));
507507   (void)address;
508508   (void)data;
509509}
r26072r26073
520520UINT16 alto2_cpu_device::mear_r(UINT32 address)
521521{
522522   int data = m_mem.error ? m_mem.mear : m_mem.mar;
523   LOG((0,2,"   MEAR read %07o\n", data));
523   LOG((LOG_MEM,2,"   MEAR read %07o\n", data));
524524   return data;
525525}
526526
r26072r26073
544544{
545545   UINT16 data = m_mem.mesr ^ 0177777;
546546   (void)address;
547   LOG((0,2,"   MESR read %07o\n", data));
548   LOG((0,6,"      Hamming code read    : %#o\n", GET_MESR_HAMMING(data)));
549   LOG((0,6,"      Parity error         : %o\n", GET_MESR_PERR(data)));
550   LOG((0,6,"      Memory parity bit    : %o\n", GET_MESR_PARITY(data)));
547   LOG((LOG_MEM,2,"   MESR read %07o\n", data));
548   LOG((LOG_MEM,6,"      Hamming code read    : %#o\n", GET_MESR_HAMMING(data)));
549   LOG((LOG_MEM,6,"      Parity error         : %o\n", GET_MESR_PERR(data)));
550   LOG((LOG_MEM,6,"      Memory parity bit    : %o\n", GET_MESR_PARITY(data)));
551551#if   ALTO2_HAMMING_CHECK
552   LOG((0,6,"      Hamming syndrome     : %#o (bit #%d)\n", GET_MESR_SYNDROME(data), hamming_lut[GET_MESR_SYNDROME(data)]));
552   LOG((LOG_MEM,6,"      Hamming syndrome     : %#o (bit #%d)\n", GET_MESR_SYNDROME(data), hamming_lut[GET_MESR_SYNDROME(data)]));
553553#else
554   LOG((0,6,"      Hamming syndrome     : %#o\n", GET_MESR_SYNDROME(data)));
554   LOG((LOG_MEM,6,"      Hamming syndrome     : %#o\n", GET_MESR_SYNDROME(data)));
555555#endif
556   LOG((0,6,"      Memory bank          : %#o\n", GET_MESR_BANK(data)));
556   LOG((LOG_MEM,6,"      Memory bank          : %#o\n", GET_MESR_BANK(data)));
557557   return data;
558558}
559559
560560void alto2_cpu_device::mesr_w(UINT32 address, UINT16 data)
561561{
562   LOG((0,2,"   MESR write %07o (clear MESR; was %07o)\n", data, m_mem.mesr));
562   LOG((LOG_MEM,2,"   MESR write %07o (clear MESR; was %07o)\n", data, m_mem.mesr));
563563   m_mem.mesr = 0;      // set all bits to 0
564564   m_mem.error = 0;   // reset the error flag
565565   m_task_wakeup &= ~(1 << task_part);   // clear the task wakeup for the parity error task
r26072r26073
592592   (void)address;
593593   A2_PUT16(m_mem.mecr,16, 0, 3,0);
594594   A2_PUT16(m_mem.mecr,16,15,15,0);
595   LOG((0,2,"   MECR write %07o\n", data));
596   LOG((0,6,"      Test Hamming code    : %#o\n", GET_MECR_TEST_CODE(m_mem.mecr)));
597   LOG((0,6,"      Test mode            : %s\n", GET_MECR_TEST_MODE(m_mem.mecr) ? "on" : "off"));
598   LOG((0,6,"      INT on single-bit err: %s\n", GET_MECR_INT_SBERR(m_mem.mecr) ? "on" : "off"));
599   LOG((0,6,"      INT on double-bit err: %s\n", GET_MECR_INT_DBERR(m_mem.mecr) ? "on" : "off"));
600   LOG((0,6,"      Error correction     : %s\n", GET_MECR_ERRCORR(m_mem.mecr) ? "off" : "on"));
595   LOG((LOG_MEM,2,"   MECR write %07o\n", data));
596   LOG((LOG_MEM,6,"      Test Hamming code    : %#o\n", GET_MECR_TEST_CODE(m_mem.mecr)));
597   LOG((LOG_MEM,6,"      Test mode            : %s\n", GET_MECR_TEST_MODE(m_mem.mecr) ? "on" : "off"));
598   LOG((LOG_MEM,6,"      INT on single-bit err: %s\n", GET_MECR_INT_SBERR(m_mem.mecr) ? "on" : "off"));
599   LOG((LOG_MEM,6,"      INT on double-bit err: %s\n", GET_MECR_INT_DBERR(m_mem.mecr) ? "on" : "off"));
600   LOG((LOG_MEM,6,"      Error correction     : %s\n", GET_MECR_ERRCORR(m_mem.mecr) ? "off" : "on"));
601601}
602602
603603/**
r26072r26073
607607{
608608   UINT16 data = m_mem.mecr ^ 0177777;
609609   /* set all spare bits */
610   LOG((0,2,"   MECR read %07o\n", data));
611   LOG((0,6,"      Test Hamming code    : %#o\n", GET_MECR_TEST_CODE(data)));
612   LOG((0,6,"      Test mode            : %s\n", GET_MECR_TEST_MODE(data) ? "on" : "off"));
613   LOG((0,6,"      INT on single-bit err: %s\n", GET_MECR_INT_SBERR(data) ? "on" : "off"));
614   LOG((0,6,"      INT on double-bit err: %s\n", GET_MECR_INT_DBERR(data) ? "on" : "off"));
615   LOG((0,6,"      Error correction     : %s\n", GET_MECR_ERRCORR(data) ? "off" : "on"));
610   LOG((LOG_MEM,2,"   MECR read %07o\n", data));
611   LOG((LOG_MEM,6,"      Test Hamming code    : %#o\n", GET_MECR_TEST_CODE(data)));
612   LOG((LOG_MEM,6,"      Test mode            : %s\n", GET_MECR_TEST_MODE(data) ? "on" : "off"));
613   LOG((LOG_MEM,6,"      INT on single-bit err: %s\n", GET_MECR_INT_SBERR(data) ? "on" : "off"));
614   LOG((LOG_MEM,6,"      INT on double-bit err: %s\n", GET_MECR_INT_DBERR(data) ? "on" : "off"));
615   LOG((LOG_MEM,6,"      Error correction     : %s\n", GET_MECR_ERRCORR(data) ? "off" : "on"));
616616   return data;
617617}
618618
r26072r26073
629629       * starting a memory refresh cycle
630630       * currently we don't do anything special
631631       */
632      LOG((0,5, "   MAR<-; refresh cycle @ %#o\n", addr));
632      LOG((LOG_MEM,5, "   MAR<-; refresh cycle @ %#o\n", addr));
633633   } else if (addr < ALTO2_RAM_SIZE) {
634      LOG((0,2, "   MAR<-; mar = %#o\n", addr));
634      LOG((LOG_MEM,2, "   MAR<-; mar = %#o\n", addr));
635635      m_mem.access = ALTO2_MEM_RAM;
636636      m_mem.mar = addr;
637637      /* fetch memory double-word to read/write latches */
r26072r26073
654654   UINT32 base_addr;
655655
656656   if (ALTO2_MEM_NONE == m_mem.access) {
657      LOG((0,0,"   fatal: mem read with no preceding address\n"));
657      LOG((LOG_MEM,0,"   fatal: mem read with no preceding address\n"));
658658      return 0177777;
659659   }
660660
661661   if (cycle() > m_mem.cycle + 4) {
662      LOG((0,0,"   fatal: mem read (MAR %#o) too late (+%lld cyc)\n", m_mem.mar, cycle() - m_mem.cycle));
662      LOG((LOG_MEM,0,"   fatal: mem read (MAR %#o) too late (+%lld cyc)\n", m_mem.mar, cycle() - m_mem.cycle));
663663      m_mem.access = ALTO2_MEM_NONE;
664664      return 0177777;
665665   }
r26072r26073
667667   base_addr = m_mem.mar & 0177777;
668668   if (base_addr >= ALTO2_IO_PAGE_BASE) {
669669      m_mem.md = ((*this).*mmio_read_fn[base_addr - ALTO2_IO_PAGE_BASE])(base_addr);
670      LOG((0,6,"   MD = MMIO[%#o] (%#o)\n", base_addr, m_mem.md));
670      LOG((LOG_MEM,6,"   MD = MMIO[%#o] (%#o)\n", base_addr, m_mem.md));
671671      m_mem.access = ALTO2_MEM_NONE;
672672#if   ALTO2_DEBUG
673673      watch_read(m_mem.mar, m_mem.md);
r26072r26073
681681      m_mem.rmdd = hamming_code(0, m_mem.mar/2, m_mem.rmdd);
682682#endif
683683   m_mem.md = (m_mem.mar & ALTO2_MEM_ODD) ? GET_ODD(m_mem.rmdd) : GET_EVEN(m_mem.rmdd);
684   LOG((0,6,"   MD = RAM[%#o] (%#o)\n", m_mem.mar, m_mem.md));
684   LOG((LOG_MEM,6,"   MD = RAM[%#o] (%#o)\n", m_mem.mar, m_mem.md));
685685
686686#if   ALTO2_DEBUG
687687   watch_read(m_mem.mar, m_mem.md);
r26072r26073
708708
709709   m_mem.md = data & 0177777;
710710   if (ALTO2_MEM_NONE == m_mem.access) {
711      LOG((0,0,"   fatal: mem write with no preceding address\n"));
711      LOG((LOG_MEM,0,"   fatal: mem write with no preceding address\n"));
712712      return;
713713   }
714714
715715   if (cycle() > m_mem.cycle + 4) {
716      LOG((0,0,"   fatal: mem write (MAR %#o, data %#o) too late (+%lld cyc)\n", m_mem.mar, data, cycle() - m_mem.cycle));
716      LOG((LOG_MEM,0,"   fatal: mem write (MAR %#o, data %#o) too late (+%lld cyc)\n", m_mem.mar, data, cycle() - m_mem.cycle));
717717      m_mem.access = ALTO2_MEM_NONE;
718718      return;
719719   }
720720
721721   base_addr = m_mem.mar & 0177777;
722722   if (base_addr >= ALTO2_IO_PAGE_BASE) {
723      LOG((0,6, "   MMIO[%#o] = MD (%#o)\n", base_addr, m_mem.md));
723      LOG((LOG_MEM,6, "   MMIO[%#o] = MD (%#o)\n", base_addr, m_mem.md));
724724      ((*this).*mmio_write_fn[base_addr - ALTO2_IO_PAGE_BASE])(base_addr, m_mem.md);
725725      m_mem.access = ALTO2_MEM_NONE;
726726#if   ALTO2_DEBUG
r26072r26073
729729      return;
730730   }
731731
732   LOG((0,6, "   RAM[%#o] = MD (%#o)\n", m_mem.mar, m_mem.md));
732   LOG((LOG_MEM,6, "   RAM[%#o] = MD (%#o)\n", m_mem.mar, m_mem.md));
733733   if (m_mem.mar & ALTO2_MEM_ODD)
734734      PUT_ODD(m_mem.wmdd, m_mem.md);
735735   else
branches/alto2/src/emu/cpu/alto2/a2dht.c
r26072r26073
1717   m_dsp.dht_blocks = 1;
1818   /* clear the wakeup for the display horizontal task */
1919   m_task_wakeup &= ~(1 << m_task);
20   LOG((0,2,"   BLOCK %s\n", task_name(m_task)));
20   LOG((LOG_DHT,2,"   BLOCK %s\n", task_name(m_task)));
2121}
2222
2323/**
r26072r26073
3232{
3333   UINT16 r = A2_GET32(m_bus,16,0,0);
3434   m_dsp.setmode = m_bus;
35   LOG((0,2,"   SETMODE<- BUS (%#o), branch on BUS[0] (%#o | %#o)\n", m_bus, m_next2, r));
35   LOG((LOG_DHT,2,"   SETMODE<- BUS (%#o), branch on BUS[0] (%#o | %#o)\n", m_bus, m_next2, r));
3636   m_next2 |= r;
3737}
3838
branches/alto2/src/emu/cpu/alto2/a2ram.c
r26072r26073
2323   if (reg) {
2424      UINT8 bank = m_s_reg_bank[m_task];
2525      r = m_s[bank][reg];
26      LOG((0,2,"   <-S%02o; bus &= S[%o][%02o] (%#o)\n", reg, bank, reg, r));
26      LOG((LOG_RAM,2,"   <-S%02o; bus &= S[%o][%02o] (%#o)\n", reg, bank, reg, r));
2727   } else {
2828      r = m_m;
29      LOG((0,2,"   <-S%02o; bus &= M (%#o)\n", reg, r));
29      LOG((LOG_RAM,2,"   <-S%02o; bus &= M (%#o)\n", reg, r));
3030   }
3131   m_bus &= r;
3232}
r26072r26073
3737void alto2_cpu_device::bs_load_sreg_0()
3838{
3939   int r = 0;   /* ??? */
40   LOG((0,2,"   S%02o<- BUS &= garbage (%#o)\n", MIR_RSEL(m_mir), r));
40   LOG((LOG_RAM,2,"   S%02o<- BUS &= garbage (%#o)\n", MIR_RSEL(m_mir), r));
4141   m_bus &= r;
4242}
4343
r26072r26073
4949   UINT8 reg = MIR_RSEL(m_mir);
5050   UINT8 bank = m_s_reg_bank[m_task];
5151   m_s[bank][reg] = m_m;
52   LOG((0,2,"   S%02o<- S[%o][%02o] := %#o\n", reg, bank, reg, m_m));
52   LOG((LOG_RAM,2,"   S%02o<- S[%o][%02o] := %#o\n", reg, bank, reg, m_m));
5353}
5454
5555/**
r26072r26073
5959{
6060   (void)from;
6161   m_next2 = (m_next2 & ALTO2_UCODE_PAGE_MASK) + page * ALTO2_UCODE_PAGE_SIZE;
62   LOG((0,2,"   SWMODE: branch from %s to ROM%d (%#o)\n", from, page, m_next2));
62   LOG((LOG_RAM,2,"   SWMODE: branch from %s to ROM%d (%#o)\n", from, page, m_next2));
6363}
6464
6565/**
r26072r26073
6969{
7070   (void)from;
7171   m_next2 = (m_next2 & ALTO2_UCODE_PAGE_MASK) + ALTO2_UCODE_RAM_BASE + page * ALTO2_UCODE_PAGE_SIZE;
72   LOG((0,2,"   SWMODE: branch from %s to RAM%d\n", from, page, m_next2));
72   LOG((LOG_RAM,2,"   SWMODE: branch from %s to RAM%d\n", from, page, m_next2));
7373}
7474
7575/**
r26072r26073
235235void alto2_cpu_device::f1_wrtram_1()
236236{
237237   m_wrtram_flag = 1;
238   LOG((0,2,"   WRTRAM\n"));
238   LOG((LOG_RAM,2,"   WRTRAM\n"));
239239}
240240
241241/**
r26072r26073
244244void alto2_cpu_device::f1_rdram_1()
245245{
246246   m_rdram_flag = 1;
247   LOG((0,2,"   RDRAM\n"));
247   LOG((LOG_RAM,2,"   RDRAM\n"));
248248}
249249
250250#if   (ALTO2_UCODE_RAM_PAGES == 3)
r26072r26073
258258 */
259259void alto2_cpu_device::f1_load_rmr_1()
260260{
261   LOG((0,2,"   RMR<-; BUS (%#o)\n", m_bus));
261   LOG((LOG_RAM,2,"   RMR<-; BUS (%#o)\n", m_bus));
262262   m_reset_mode = m_bus;
263263}
264264#else   // ALTO2_UCODE_RAM_PAGES != 3
r26072r26073
268268void alto2_cpu_device::f1_load_srb_1()
269269{
270270   m_s_reg_bank[m_task] = A2_GET16(m_bus,16,12,14) % ALTO2_SREG_BANKS;
271   LOG((0,2,"   SRB<-; srb[%d] := %#o\n", m_task, m_s_reg_bank[m_task]));
271   LOG((LOG_RAM,2,"   SRB<-; srb[%d] := %#o\n", m_task, m_s_reg_bank[m_task]));
272272}
273273#endif
274274
branches/alto2/src/emu/cpu/alto2/a2kwd.c
r26072r26073
1212//! f1_kwd_block early: block the disk word task
1313void alto2_cpu_device::f1_kwd_block_0()
1414{
15   LOG((0,2,"   BLOCK %s\n", task_name(m_task)));
15   LOG((LOG_KWD,2,"   BLOCK %s\n", task_name(m_task)));
1616   disk_block(m_task);
1717}
1818
branches/alto2/src/emu/cpu/alto2/a2ksec.c
r26072r26073
1212/** @brief block the disk sector task */
1313void alto2_cpu_device::f1_ksec_block_0()
1414{
15   LOG((0,2,"   BLOCK %s\n", task_name(m_task)));
15   LOG((LOG_KSEC,2,"   BLOCK %s\n", task_name(m_task)));
1616   disk_block(m_task);
1717}
1818
branches/alto2/src/emu/cpu/alto2/a2emu.c
r26072r26073
268268   if (IR_X(m_emu.ir)) {
269269      r = ((signed char)r) & 0177777;
270270   }
271   LOG((0,2, "   <-DISP (%06o)\n", r));
271   LOG((LOG_EMU,2, "   <-DISP (%06o)\n", r));
272272   m_bus &= r;
273273}
274274
r26072r26073
281281{
282282#if   0
283283   CPU_CLR_TASK_WAKEUP(m_task);
284   LOG((0,2, "   BLOCK %02o:%s\n", m_task, task_name(m_task)));
284   LOG((LOG_EMU,2, "   BLOCK %02o:%s\n", m_task, task_name(m_task)));
285285#elif   0
286286   fatal(1, "Emulator task want's to BLOCK.\n" \
287287      "%s-%04o: r:%02o af:%02o bs:%02o f1:%02o f2:%02o" \
r26072r26073
302302 */
303303void alto2_cpu_device::f1_emu_load_rmr_1()
304304{
305   LOG((0,2,"   RMR<-; BUS (%#o)\n", m_bus));
305   LOG((LOG_EMU,2,"   RMR<-; BUS (%#o)\n", m_bus));
306306   m_reset_mode = m_bus;
307307}
308308
r26072r26073
311311 */
312312void alto2_cpu_device::f1_emu_load_esrb_1()
313313{
314   LOG((0,2,"   ESRB<-; BUS[12-14] (%#o)\n", m_bus));
314   LOG((LOG_EMU,2,"   ESRB<-; BUS[12-14] (%#o)\n", m_bus));
315315   m_s_reg_bank[m_task] = A2_GET32(m_bus,16,12,14);
316316}
317317
r26072r26073
324324void alto2_cpu_device::f1_rsnf_0()
325325{
326326   UINT16 r = 0177400 | m_ether_id;
327   LOG((0,2,"   <-RSNF; (%#o)\n", r));
327   LOG((LOG_EMU,2,"   <-RSNF; (%#o)\n", r));
328328   m_bus &= r;
329329}
330330
r26072r26073
357357 */
358358void alto2_cpu_device::f1_startf_0()
359359{
360   LOG((0,2,"   STARTF (BUS is %06o)\n", m_bus));
360   LOG((LOG_EMU,2,"   STARTF (BUS is %06o)\n", m_bus));
361361   /* TODO: what do we do here? reset the CPU on bit 0? */
362362   if (A2_BIT32(m_bus,16,0)) {
363      LOG((0,2,"****   Software boot feature\n"));
363      LOG((LOG_EMU,2,"****   Software boot feature\n"));
364364      soft_reset();
365365   } else {
366366      eth_startf();
r26072r26073
373373void alto2_cpu_device::f2_busodd_1()
374374{
375375   UINT16 r = m_bus & 1;
376   LOG((0,2,"   BUSODD; %sbranch (%#o|%#o)\n", r ? "" : "no ", m_next2, r));
376   LOG((LOG_EMU,2,"   BUSODD; %sbranch (%#o|%#o)\n", r ? "" : "no ", m_next2, r));
377377   m_next2 |= r;
378378}
379379
r26072r26073
389389      XC = (m_t >> 15) & 1;
390390      m_shifter = (m_l << 1) & 0177777;
391391      m_shifter |= XC;
392      LOG((0,2,"   <-L MLSH 1 (shifer:%06o XC:%o)", m_shifter, XC));
392      LOG((LOG_EMU,2,"   <-L MLSH 1 (shifer:%06o XC:%o)", m_shifter, XC));
393393      break;
394394   case f1_l_rsh_1:   // <-L MRSH 1
395395      XC = m_t & 1;
396396      m_shifter = m_l >> 1;
397397      m_shifter |= XC << 15;
398      LOG((0,2,"   <-L MRSH 1 (shifter:%06o XC:%o)", m_shifter, XC));
398      LOG((LOG_EMU,2,"   <-L MRSH 1 (shifter:%06o XC:%o)", m_shifter, XC));
399399      break;
400400   case f1_l_lcy_8:   // <-L LCY 8
401401   default:         // other
r26072r26073
415415#else
416416   A2_PUT8(m_rsel, 5, 3, 4, IR_DstAC(m_emu.ir) ^ 3);
417417#endif
418   LOG((0,2,"   DNS<-; rsel := DstAC (%#o %s)\n", m_rsel, r_name(m_rsel)));
418   LOG((LOG_EMU,2,"   DNS<-; rsel := DstAC (%#o %s)\n", m_rsel, r_name(m_rsel)));
419419}
420420
421421/**
r26072r26073
469469   case f1_l_rsh_1:   // <-L RSH 1
470470      NEWCARRY = m_l & 1;
471471      m_shifter = ((m_l >> 1) | (XC << 15)) & 0177777;
472      LOG((0,2,"   DNS; <-L RSH 1 (shifter:%06o XC:%o NEWCARRY:%o)", m_shifter, XC, NEWCARRY));
472      LOG((LOG_EMU,2,"   DNS; <-L RSH 1 (shifter:%06o XC:%o NEWCARRY:%o)", m_shifter, XC, NEWCARRY));
473473      break;
474474   case f1_l_lsh_1:   // <-L LSH 1
475475      NEWCARRY = (m_l >> 15) & 1;
476476      m_shifter = ((m_l << 1) | XC) & 0177777;
477      LOG((0,2,"   DNS; <-L LSH 1 (shifter:%06o XC:%o NEWCARRY:%o)", m_shifter, XC, NEWCARRY));
477      LOG((LOG_EMU,2,"   DNS; <-L LSH 1 (shifter:%06o XC:%o NEWCARRY:%o)", m_shifter, XC, NEWCARRY));
478478      break;
479479   case f1_l_lcy_8:   // <-L LCY 8
480480   default:      /* other */
481481      NEWCARRY = XC;
482      LOG((0,2,"   DNS; (shifter:%06o NEWCARRY:%o)", m_shifter, NEWCARRY));
482      LOG((LOG_EMU,2,"   DNS; (shifter:%06o NEWCARRY:%o)", m_shifter, NEWCARRY));
483483      break;
484484   }
485485   SHZERO = (m_shifter == 0);
r26072r26073
506506#else
507507   A2_PUT8(m_rsel, 5, 3, 4, IR_DstAC(m_emu.ir) ^ 3);
508508#endif
509   LOG((0,2,"   ACDEST<-; mux (rsel:%#o %s)\n", m_rsel, r_name(m_rsel)));
509   LOG((LOG_EMU,2,"   ACDEST<-; mux (rsel:%#o %s)\n", m_rsel, r_name(m_rsel)));
510510}
511511
512512#if   ALTO2_DEBUG
r26072r26073
517517   int bbt = m_r[rsel_ac2];
518518   int val = debug_read_mem(bbt);
519519
520   LOG((0,3,"   BITBLT AC1:%06o AC2:%06o\n", m_r[rsel_ac1], m_r[rsel_ac2]));
521   LOG((0,3,"      function  : %06o\n", val));
522   LOG((0,3,"         src extRAM: %o\n", A2_BIT16(val,16,10)));
523   LOG((0,3,"         dst extRAM: %o\n", A2_BIT16(val,16,11)));
524   LOG((0,3,"         src type  : %o (%s)\n", A2_GET16(val,16,12,13), type_name[A2_GET16(val,16,12,13)]));
525   LOG((0,3,"         operation : %o (%s)\n", A2_GET16(val,16,14,15), oper_name[A2_GET16(val,16,14,15)]));
520   LOG((LOG_EMU,3,"   BITBLT AC1:%06o AC2:%06o\n", m_r[rsel_ac1], m_r[rsel_ac2]));
521   LOG((LOG_EMU,3,"      function  : %06o\n", val));
522   LOG((LOG_EMU,3,"         src extRAM: %o\n", A2_BIT16(val,16,10)));
523   LOG((LOG_EMU,3,"         dst extRAM: %o\n", A2_BIT16(val,16,11)));
524   LOG((LOG_EMU,3,"         src type  : %o (%s)\n", A2_GET16(val,16,12,13), type_name[A2_GET16(val,16,12,13)]));
525   LOG((LOG_EMU,3,"         operation : %o (%s)\n", A2_GET16(val,16,14,15), oper_name[A2_GET16(val,16,14,15)]));
526526   val = debug_read_mem(bbt+1);
527   LOG((0,3,"      unused AC2: %06o (%d)\n", val, val));
527   LOG((LOG_EMU,3,"      unused AC2: %06o (%d)\n", val, val));
528528   val = debug_read_mem(bbt+2);
529   LOG((0,3,"      DBCA      : %06o (%d)\n", val, val));
529   LOG((LOG_EMU,3,"      DBCA      : %06o (%d)\n", val, val));
530530   val = debug_read_mem(bbt+3);
531   LOG((0,3,"      DBMR      : %06o (%d words)\n", val, val));
531   LOG((LOG_EMU,3,"      DBMR      : %06o (%d words)\n", val, val));
532532   val = debug_read_mem(bbt+4);
533   LOG((0,3,"      DLX       : %06o (%d bits)\n", val, val));
533   LOG((LOG_EMU,3,"      DLX       : %06o (%d bits)\n", val, val));
534534   val = debug_read_mem(bbt+5);
535   LOG((0,3,"      DTY       : %06o (%d scanlines)\n", val, val));
535   LOG((LOG_EMU,3,"      DTY       : %06o (%d scanlines)\n", val, val));
536536   val = debug_read_mem(bbt+6);
537   LOG((0,3,"      DW        : %06o (%d bits)\n", val, val));
537   LOG((LOG_EMU,3,"      DW        : %06o (%d bits)\n", val, val));
538538   val = debug_read_mem(bbt+7);
539   LOG((0,3,"      DH        : %06o (%d scanlines)\n", val, val));
539   LOG((LOG_EMU,3,"      DH        : %06o (%d scanlines)\n", val, val));
540540   val = debug_read_mem(bbt+8);
541   LOG((0,3,"      SBCA      : %06o (%d)\n", val, val));
541   LOG((LOG_EMU,3,"      SBCA      : %06o (%d)\n", val, val));
542542   val = debug_read_mem(bbt+9);
543   LOG((0,3,"      SBMR      : %06o (%d words)\n", val, val));
543   LOG((LOG_EMU,3,"      SBMR      : %06o (%d words)\n", val, val));
544544   val = debug_read_mem(bbt+10);
545   LOG((0,3,"      SLX       : %06o (%d bits)\n", val, val));
545   LOG((LOG_EMU,3,"      SLX       : %06o (%d bits)\n", val, val));
546546   val = debug_read_mem(bbt+11);
547   LOG((0,3,"      STY       : %06o (%d scanlines)\n", val, val));
548   LOG((0,3,"      GRAY0-3   : %06o %06o %06o %06o\n",
547   LOG((LOG_EMU,3,"      STY       : %06o (%d scanlines)\n", val, val));
548   LOG((LOG_EMU,3,"      GRAY0-3   : %06o %06o %06o %06o\n",
549549      debug_read_mem(bbt+12), debug_read_mem(bbt+13),
550550      debug_read_mem(bbt+14), debug_read_mem(bbt+15)));
551551}
r26072r26073
563563   /* special logging of some opcodes */
564564   switch (m_bus) {
565565   case op_CYCLE:
566      LOG((0,3,"   CYCLE AC0:#o\n", m_r[rsel_ac0]));
566      LOG((LOG_EMU,3,"   CYCLE AC0:#o\n", m_r[rsel_ac0]));
567567      break;
568568   case op_CYCLE + 1: case op_CYCLE + 2: case op_CYCLE + 3: case op_CYCLE + 4:
569569   case op_CYCLE + 5: case op_CYCLE + 6: case op_CYCLE + 7: case op_CYCLE + 8:
570570   case op_CYCLE + 9: case op_CYCLE +10: case op_CYCLE +11: case op_CYCLE +12:
571571   case op_CYCLE +13: case op_CYCLE +14: case op_CYCLE +15:
572      LOG((0,3,"   CYCLE %#o\n", m_bus - op_CYCLE));
572      LOG((LOG_EMU,3,"   CYCLE %#o\n", m_bus - op_CYCLE));
573573      break;
574574   case op_BLT:
575      LOG((0,3,"   BLT dst:%#o src:%#o size:%#o\n",
575      LOG((LOG_EMU,3,"   BLT dst:%#o src:%#o size:%#o\n",
576576         (m_r[rsel_ac1] + m_r[rsel_ac3] + 1) & 0177777,
577577         (m_r[rsel_ac0] + 1) & 017777, -m_r[rsel_ac3] & 0177777));
578578      break;
579579   case op_BLKS:
580      LOG((0,3,"   BLKS dst:%#o val:%#o size:%#o\n",
580      LOG((LOG_EMU,3,"   BLKS dst:%#o val:%#o size:%#o\n",
581581         (m_r[rsel_ac1] + m_r[rsel_ac3] + 1) & 0177777,
582582         m_r[rsel_ac0], -m_r[rsel_ac3] & 0177777));
583583      break;
584584   case op_DIAGNOSE1:
585      LOG((0,3,"   DIAGNOSE1 AC0:%06o AC1:%06o AC2:%06o AC3:%06o\n",
585      LOG((LOG_EMU,3,"   DIAGNOSE1 AC0:%06o AC1:%06o AC2:%06o AC3:%06o\n",
586586         m_r[rsel_ac0], m_r[rsel_ac1],
587587         m_r[rsel_ac2], m_r[rsel_ac3]));
588588      break;
589589   case op_DIAGNOSE2:
590      LOG((0,3,"   DIAGNOSE2 AC0:%06o AC1:%06o AC2:%06o AC3:%06o\n",
590      LOG((LOG_EMU,3,"   DIAGNOSE2 AC0:%06o AC1:%06o AC2:%06o AC3:%06o\n",
591591         m_r[rsel_ac0], m_r[rsel_ac1],
592592         m_r[rsel_ac2], m_r[rsel_ac3]));
593593      break;
r26072r26073
597597#endif
598598      break;
599599   case op_RDRAM:
600      LOG((0,3,"   RDRAM addr:%#o\n", m_r[rsel_ac1]));
600      LOG((LOG_EMU,3,"   RDRAM addr:%#o\n", m_r[rsel_ac1]));
601601      break;
602602   case op_WRTRAM:
603      LOG((0,3,"   WRTAM addr:%#o upper:%06o lower:%06o\n", m_r[rsel_ac1], m_r[rsel_ac0], m_r[rsel_ac3]));
603      LOG((LOG_EMU,3,"   WRTAM addr:%#o upper:%06o lower:%06o\n", m_r[rsel_ac1], m_r[rsel_ac0], m_r[rsel_ac3]));
604604      break;
605605   case op_JMPRAM:
606      LOG((0,3,"   JMPRAM addr:%#o\n", m_r[rsel_ac1]));
606      LOG((LOG_EMU,3,"   JMPRAM addr:%#o\n", m_r[rsel_ac1]));
607607      break;
608608   case op_XMLDA:
609      LOG((0,3,"   XMLDA AC0 = [bank:%o AC1:#o]\n", m_bank_reg[m_task] & 3, m_r[rsel_ac1]));
609      LOG((LOG_EMU,3,"   XMLDA AC0 = [bank:%o AC1:#o]\n", m_bank_reg[m_task] & 3, m_r[rsel_ac1]));
610610      break;
611611   case op_XMSTA:
612      LOG((0,3,"   XMSTA [bank:%o AC1:#o] = AC0 (%#o)\n", m_bank_reg[m_task] & 3, m_r[rsel_ac1], m_r[rsel_ac0]));
612      LOG((LOG_EMU,3,"   XMSTA [bank:%o AC1:#o] = AC0 (%#o)\n", m_bank_reg[m_task] & 3, m_r[rsel_ac1], m_r[rsel_ac0]));
613613      break;
614614   }
615615   m_emu.ir = m_bus;
r26072r26073
628628   if (IR_ARITH(m_emu.ir)) {
629629      /* 1xxxxxxxxxxxxxxx */
630630      r = IR_SH(m_emu.ir) ^ 3;         /* complement of SH */
631      LOG((0,2,"   IDISP<-; branch on SH^3 (%#o|%#o)\n", m_next2, r));
631      LOG((LOG_EMU,2,"   IDISP<-; branch on SH^3 (%#o|%#o)\n", m_next2, r));
632632   } else {
633633      int addr = CTL2K_U3(f2_emu_idisp) + A2_GET32(m_emu.ir,16,1,7);
634634      /* 0???????xxxxxxxx */
635635      r = m_ctl2k_u3[addr];
636      LOG((0,2,"   IDISP<-; IR (%#o) branch on PROM ctl2k_u3[%03o] (%#o|%#o)\n", m_emu.ir, addr, m_next2, r));
636      LOG((LOG_EMU,2,"   IDISP<-; IR (%#o) branch on PROM ctl2k_u3[%03o] (%#o|%#o)\n", m_emu.ir, addr, m_next2, r));
637637   }
638638   m_next2 |= r;
639639}
r26072r26073
649649#else
650650   A2_PUT8(m_rsel, 5, 3, 4, IR_SrcAC(m_emu.ir) ^ 3);
651651#endif
652   LOG((0,2,"   <-ACSOURCE; rsel := SrcAC (%#o %s)\n", m_rsel, r_name(m_rsel)));
652   LOG((LOG_EMU,2,"   <-ACSOURCE; rsel := SrcAC (%#o %s)\n", m_rsel, r_name(m_rsel)));
653653}
654654
655655/**
r26072r26073
662662   if (IR_ARITH(m_emu.ir)) {
663663      /* 1xxxxxxxxxxxxxxx */
664664      r = IR_SH(m_emu.ir) ^ 3;         /* complement of SH */
665      LOG((0,2,"   <-ACSOURCE; branch on SH^3 (%#o|%#o)\n", m_next2, r));
665      LOG((LOG_EMU,2,"   <-ACSOURCE; branch on SH^3 (%#o|%#o)\n", m_next2, r));
666666   } else {
667667      int addr = CTL2K_U3(f2_emu_acsource) + A2_GET32(m_emu.ir,16,1,7);
668668      /* 0???????xxxxxxxx */
669669      r = m_ctl2k_u3[addr];
670      LOG((0,2,"   <-ACSOURCE; branch on PROM ctl2k_u3[%03o] (%#o|%#o)\n", addr, m_next2, r));
670      LOG((LOG_EMU,2,"   <-ACSOURCE; branch on PROM ctl2k_u3[%03o] (%#o|%#o)\n", addr, m_next2, r));
671671   }
672672   m_next2 |= r;
673673}
branches/alto2/src/emu/cpu/alto2/a2disk.c
r26072r26073
176176            /* both J and K' are 0: set Q to 0, Q' to 1 */
177177            s1 = (s1 & ~JKFF_Q) | JKFF_Q0;
178178            if (s0 & JKFF_Q) {
179               LOG((0,5,"%s J:0 K':0 -> Q:0\n", jkff_name));
179               LOG((LOG_DISK,5,"%s J:0 K':0 -> Q:0\n", jkff_name));
180180            }
181181            break;
182182         case JKFF_J:
r26072r26073
185185               s1 = (s1 & ~JKFF_Q) | JKFF_Q0;
186186            else
187187               s1 = (s1 | JKFF_Q) & ~JKFF_Q0;
188            LOG((0,5,"%s J:0 K':1 flip-flop Q:%d\n",
188            LOG((LOG_DISK,5,"%s J:0 K':1 flip-flop Q:%d\n",
189189               jkff_name, (s1 & JKFF_Q) ? 1 : 0));
190190            break;
191191         case JKFF_K:
192192            if ((s0 ^ s1) & JKFF_Q) {
193               LOG((0,5,"%s J:0 K':1 keep Q:%d\n",
193               LOG((LOG_DISK,5,"%s J:0 K':1 keep Q:%d\n",
194194                  jkff_name, (s1 & JKFF_Q) ? 1 : 0));
195195            }
196196            /* J is 0, and K' is 1: keep Q as is */
r26072r26073
203203            /* both J and K' are 1: set Q to 1 */
204204            s1 = (s1 | JKFF_Q) & ~JKFF_Q0;
205205            if (!(s0 & JKFF_Q)) {
206               LOG((0,5,"%s J:1 K':1 -> Q:1\n",
206               LOG((LOG_DISK,5,"%s J:1 K':1 -> Q:1\n",
207207               jkff_name));
208208            }
209209            break;
r26072r26073
217217      /* S' is 1, C' is 0: set Q to 0, Q' to 1 */
218218      s1 = (s1 & ~JKFF_Q) | JKFF_Q0;
219219      if (s0 & JKFF_Q) {
220         LOG((0,5,"%s C':0 -> Q:0\n", jkff_name));
220         LOG((LOG_DISK,5,"%s C':0 -> Q:0\n", jkff_name));
221221      }
222222      break;
223223   case JKFF_C:
224224      /* S' is 0, C' is 1: set Q to 1, Q' to 0 */
225225      s1 = (s1 | JKFF_Q) & ~JKFF_Q0;
226226      if (!(s0 & JKFF_Q)) {
227         LOG((0,5,"%s S':0 -> Q:1\n", jkff_name));
227         LOG((LOG_DISK,5,"%s S':0 -> Q:1\n", jkff_name));
228228      }
229229      break;
230230   case 0:
231231   default:
232232      /* unstable state (what to do?) */
233233      s1 = s1 | JKFF_Q | JKFF_Q0;
234      LOG((0,5,"%s C':0 S':0 -> Q:1 and Q':1 <unstable>\n", jkff_name));
234      LOG((LOG_DISK,5,"%s C':0 S':0 -> Q:1 and Q':1 <unstable>\n", jkff_name));
235235      break;
236236   }
237237   return s1;
r26072r26073
10871087   int i;
10881088   UINT8 s0, s1;
10891089
1090   LOG((0,5,"   >>> KWD timing bitclk:%d datin:%d sect4:%d\n", bitclk, datin, drive_sector_mark_0(m_dsk.drive)));
1090   LOG((LOG_DISK,5,"   >>> KWD timing bitclk:%d datin:%d sect4:%d\n", bitclk, datin, drive_sector_mark_0(m_dsk.drive)));
10911091
10921092   if (0 == m_dsk.seclate) {
10931093      /* If SECLATE is 0, WDDONE' never goes low (counter's clear has precedence). */
1094      LOG((0,3,"   SECLATE:0 clears bitcount:0\n"));
1094      LOG((LOG_DISK,3,"   SECLATE:0 clears bitcount:0\n"));
10951095      m_dsk.bitcount = 0;
10961096      m_dsk.carry = 0;
10971097   } else if (m_dsk.bitclk && !bitclk) {
r26072r26073
11051105          * counter. It has been loaded with 15, so it counts to 16 on
11061106          * the next rising edge and makes WDDONE' go to 0.
11071107          */
1108         LOG((0,3,"   HIORDBIT:1 sets WFFO:1\n"));
1108         LOG((LOG_DISK,3,"   HIORDBIT:1 sets WFFO:1\n"));
11091109         PUT_KCOM_WFFO(m_dsk.kcom, 1);
11101110      }
11111111      /*
r26072r26073
11211121          */
11221122         m_dsk.bitcount = (m_dsk.bitcount + 1) % 16;
11231123         m_dsk.carry = m_dsk.bitcount == 15;
1124         LOG((0,3,"   WFFO:1 count bitcount:%2d\n", m_dsk.bitcount));
1124         LOG((LOG_DISK,3,"   WFFO:1 count bitcount:%2d\n", m_dsk.bitcount));
11251125      } else {
11261126         /*
11271127          * If BUS[4] (WFFO) was 0, both J and K' will be 0, and Q
r26072r26073
11291129          */
11301130         m_dsk.bitcount = 15;
11311131         m_dsk.carry = 1;
1132         LOG((0,3,"   WFFO:0 load bitcount:%2d\n", m_dsk.bitcount));
1132         LOG((LOG_DISK,3,"   WFFO:0 load bitcount:%2d\n", m_dsk.bitcount));
11331133      }
11341134   } else if (!m_dsk.bitclk && bitclk) {
11351135      /* clock the shift register on the rising edge of bitclk */
r26072r26073
11391139   }
11401140
11411141   if (wddone0 != wddone1) {
1142      LOG((0,2,"   WDDONE':%d->%d\n", wddone0, wddone1));
1142      LOG((LOG_DISK,2,"   WDDONE':%d->%d\n", wddone0, wddone1));
11431143   }
11441144
11451145   if (m_dsk.carry) {
r26072r26073
11561156         m_dsk.datain = m_dsk.shiftin & 0177777;
11571157         /* load the output shift register */
11581158         m_dsk.shiftout = m_dsk.dataout;
1159         LOG((0,6,"    LATCH in:%06o (0x%04x) out:%06o (0x%04x)\n", m_dsk.datain, m_dsk.datain, m_dsk.dataout, m_dsk.dataout));
1159         LOG((LOG_DISK,6,"    LATCH in:%06o (0x%04x) out:%06o (0x%04x)\n", m_dsk.datain, m_dsk.datain, m_dsk.dataout, m_dsk.dataout));
11601160      }
11611161   } else {
11621162      /* CARRY = 0 -> WDDONE' = 1 */
r26072r26073
11891189   for (i = 0; i < 4; i++) {
11901190
11911191      if (m_sysclka0[i] != m_sysclka1[i]) {
1192         LOG((0,7,"   SYSCLKA':%d->%d\n", m_sysclka0[i], m_sysclka1[i]));
1192         LOG((LOG_DISK,7,"   SYSCLKA':%d->%d\n", m_sysclka0[i], m_sysclka1[i]));
11931193      }
11941194      if (m_sysclkb0[i] != m_sysclkb1[i]) {
1195         LOG((0,7,"   SYSCLKB':%d->%d\n", m_sysclkb0[i], m_sysclkb1[i]));
1195         LOG((LOG_DISK,7,"   SYSCLKB':%d->%d\n", m_sysclkb0[i], m_sysclkb1[i]));
11961196      }
11971197
11981198      /**
r26072r26073
13791379      /* rising edge immediately */
13801380      if ((m_dsk.wdinit = WDINIT) == 1)
13811381         m_dsk.wdinit0 = 1;
1382      LOG((0,2,"   WDINIT:%d\n", m_dsk.wdinit));
1382      LOG((LOG_DISK,2,"   WDINIT:%d\n", m_dsk.wdinit));
13831383   }
13841384
13851385   /*
r26072r26073
13881388    */
13891389   if (m_dsk.ff_53a & m_dsk.ff_43a & JKFF_Q) {
13901390      if (m_dsk.wdtskena == 1) {
1391         LOG((0,2,"   WDTSKENA':0 and WAKEKWDT':0 wake KWD\n"));
1391         LOG((LOG_DISK,2,"   WDTSKENA':0 and WAKEKWDT':0 wake KWD\n"));
13921392         m_dsk.wdtskena = 0;
13931393         m_task_wakeup |= 1 << task_kwd;
13941394      }
r26072r26073
13971397       * If Q (43a) is 1, the WDTSKENA' signal is deasserted.
13981398       */
13991399      if (m_dsk.wdtskena == 0) {
1400         LOG((0,2,"   WDTSKENA':1\n"));
1400         LOG((LOG_DISK,2,"   WDTSKENA':1\n"));
14011401         m_dsk.wdtskena = 1;
14021402         m_task_wakeup &= ~(1 << task_kwd);
14031403      }
r26072r26073
14061406   if (m_dsk.kfer) {
14071407      /* no fatal error: ready and not seqerr and seekok */
14081408      if (!RDYLAT && !SEQERR && SEEKOK) {
1409         LOG((0,2,"   reset KFER\n"));
1409         LOG((LOG_DISK,2,"   reset KFER\n"));
14101410         m_dsk.kfer = 0;
14111411      }
14121412   } else {
14131413      /* fatal error: not ready or seqerr or not seekok */
14141414      if (RDYLAT) {
1415         LOG((0,2,"   RDYLAT sets KFER\n"));
1415         LOG((LOG_DISK,2,"   RDYLAT sets KFER\n"));
14161416         m_dsk.kfer = 1;
14171417      } else if (SEQERR) {
1418         LOG((0,2,"   SEQERR sets KFER\n"));
1418         LOG((LOG_DISK,2,"   SEQERR sets KFER\n"));
14191419         m_dsk.kfer = 1;
14201420      } else if (!SEEKOK) {
1421         LOG((0,2,"   not SEEKOK sets KFER\n"));
1421         LOG((LOG_DISK,2,"   not SEEKOK sets KFER\n"));
14221422         m_dsk.kfer = 1;
14231423      }
14241424   }
r26072r26073
14291429    */
14301430   if (m_dsk.ff_22b & JKFF_Q) {
14311431      if (!(m_task_wakeup & (1 << task_ksec))) {
1432         LOG((0,2,"   STSKENA:1; WAKEST':0 wake KSEC\n"));
1432         LOG((LOG_DISK,2,"   STSKENA:1; WAKEST':0 wake KSEC\n"));
14331433         m_task_wakeup |= 1 << task_kwd;
14341434      }
14351435   } else {
14361436      if (m_task_wakeup & (1 << task_ksec)) {
1437         LOG((0,2,"   STSKENA:0; WAKEST':1\n"));
1437         LOG((LOG_DISK,2,"   STSKENA:0; WAKEST':1\n"));
14381438         m_task_wakeup &= ~(1 << task_kwd);
14391439      }
14401440   }
r26072r26073
14721472      m_dsk.seclate_timer->adjust(attotime::from_nsec(TW_SECLATE), 1, attotime::never);
14731473      if (m_dsk.seclate) {
14741474         m_dsk.seclate = 0;
1475         LOG((0,4,"   SECLATE -> 0 pulse until %lldns\n", ntime() + TW_SECLATE));
1475         LOG((LOG_DISK,4,"   SECLATE -> 0 pulse until %lldns\n", ntime() + TW_SECLATE));
14761476      }
14771477   }
14781478
r26072r26073
15001500   m_dsk.ff_21a_old = m_dsk.ff_21a;
15011501   m_dsk.bitclk = bitclk;
15021502   m_dsk.datin = datin;
1503   LOG((0,5,"   <<< KWD timing\n"));
1503   LOG((LOG_DISK,5,"   <<< KWD timing\n"));
15041504}
15051505
15061506
r26072r26073
15081508void alto2_cpu_device::disk_seclate(void* ptr, INT32 arg)
15091509{
15101510   (void)ptr;
1511   LOG((0,2,"   SECLATE -> %d\n", arg));
1511   LOG((LOG_DISK,2,"   SECLATE -> %d\n", arg));
15121512   m_dsk.seclate = arg;
15131513   m_dsk.seclate_timer->enable(false);
15141514}
r26072r26073
15171517void alto2_cpu_device::disk_ok_to_run(void* ptr, INT32 arg)
15181518{
15191519   (void)ptr;
1520   LOG((0,2,"   OK TO RUN -> %d\n", arg));
1520   LOG((LOG_DISK,2,"   OK TO RUN -> %d\n", arg));
15211521   m_dsk.ok_to_run = arg;
15221522   m_dsk.ok_to_run_timer->enable(false);
15231523}
r26072r26073
15521552   int lai;
15531553   int strobe;
15541554
1555   LOG((0,2,"   STROBE #%d restore:%d cylinder:%d\n", unit, restore, cylinder));
1555   LOG((LOG_DISK,2,"   STROBE #%d restore:%d cylinder:%d\n", unit, restore, cylinder));
15561556
15571557   /* This is really monoflop 52a generating a very short 0 pulse */
15581558   for (strobe = 0; strobe < 2; strobe++) {
r26072r26073
15611561      drive_strobe(unit, cylinder, restore, strobe);
15621562
15631563      lai = drive_log_addx_interlock_0(unit);
1564      LOG((0,6,"      LAI':%d\n", lai));
1564      LOG((LOG_DISK,6,"      LAI':%d\n", lai));
15651565      /**
15661566       * JK flip-flop 44a (LAI' clocked)
15671567       * <PRE>
r26072r26073
15931593
15941594   } else {
15951595      /* clear the monoflop 52b, i.e. no timer restart */
1596      LOG((0,2,"      STROBON:%d\n", m_dsk.strobe));
1596      LOG((LOG_DISK,2,"      STROBON:%d\n", m_dsk.strobe));
15971597
15981598      /* update the seekok status: SKINC' && LAI' && Q' of FF 44a */
15991599      seekok = drive_seek_incomplete_0(unit);
16001600      if (seekok != m_dsk.seekok) {
16011601         m_dsk.seekok = seekok;
1602         LOG((0,2,"      SEEKOK:%d\n", m_dsk.seekok));
1602         LOG((LOG_DISK,2,"      SEEKOK:%d\n", m_dsk.seekok));
16031603      }
16041604   }
16051605
1606   LOG((0,2,"   current cylinder:%d\n", drive_cylinder(unit) ^ DIABLO_DRIVE_CYLINDER_MASK));
1606   LOG((LOG_DISK,2,"   current cylinder:%d\n", drive_cylinder(unit) ^ DIABLO_DRIVE_CYLINDER_MASK));
16071607
16081608   /* if the strobe is still set, restart the timer */
16091609   if (m_dsk.strobe) {
r26072r26073
16191619{
16201620   m_dsk.ready_mf31a = arg & drive_ready_0(m_dsk.drive);
16211621   /* log the not ready result with level 0, else 2 */
1622   LOG((0,m_dsk.ready_mf31a ? 0 : 2,"   ready mf31a:%d\n", m_dsk.ready_mf31a));
1622   LOG((LOG_DISK,m_dsk.ready_mf31a ? 0 : 2,"   ready mf31a:%d\n", m_dsk.ready_mf31a));
16231623}
16241624
16251625/**
r26072r26073
16711671
16721672   r = m_dsk.kstat;
16731673
1674   LOG((0,1,"   <-KSTAT; BUS &= %#o\n", r));
1675   LOG((0,2,"      sector:    %d\n", GET_KSTAT_SECTOR(m_dsk.kstat)));
1676   LOG((0,2,"      done:      %d\n", GET_KSTAT_DONE(m_dsk.kstat)));
1677   LOG((0,2,"      seekfail:  %d\n", GET_KSTAT_SEEKFAIL(m_dsk.kstat)));
1678   LOG((0,2,"      seek:      %d\n", GET_KSTAT_SEEK(m_dsk.kstat)));
1679   LOG((0,2,"      notrdy:    %d\n", GET_KSTAT_NOTRDY(m_dsk.kstat)));
1680   LOG((0,2,"      datalate:  %d\n", GET_KSTAT_DATALATE(m_dsk.kstat)));
1681   LOG((0,2,"      idle:      %d\n", GET_KSTAT_IDLE(m_dsk.kstat)));
1682   LOG((0,2,"      cksum:     %d\n", GET_KSTAT_CKSUM(m_dsk.kstat)));
1683   LOG((0,2,"      completion:%d\n", GET_KSTAT_COMPLETION(m_dsk.kstat)));
1674   LOG((LOG_DISK,1,"   <-KSTAT; BUS &= %#o\n", r));
1675   LOG((LOG_DISK,2,"      sector:    %d\n", GET_KSTAT_SECTOR(m_dsk.kstat)));
1676   LOG((LOG_DISK,2,"      done:      %d\n", GET_KSTAT_DONE(m_dsk.kstat)));
1677   LOG((LOG_DISK,2,"      seekfail:  %d\n", GET_KSTAT_SEEKFAIL(m_dsk.kstat)));
1678   LOG((LOG_DISK,2,"      seek:      %d\n", GET_KSTAT_SEEK(m_dsk.kstat)));
1679   LOG((LOG_DISK,2,"      notrdy:    %d\n", GET_KSTAT_NOTRDY(m_dsk.kstat)));
1680   LOG((LOG_DISK,2,"      datalate:  %d\n", GET_KSTAT_DATALATE(m_dsk.kstat)));
1681   LOG((LOG_DISK,2,"      idle:      %d\n", GET_KSTAT_IDLE(m_dsk.kstat)));
1682   LOG((LOG_DISK,2,"      cksum:     %d\n", GET_KSTAT_CKSUM(m_dsk.kstat)));
1683   LOG((LOG_DISK,2,"      completion:%d\n", GET_KSTAT_COMPLETION(m_dsk.kstat)));
16841684
16851685   m_bus &= r;
16861686}
r26072r26073
16981698   UINT16 r;
16991699   /* get the current word from the drive */
17001700   r = m_dsk.datain;
1701   LOG((0,1,"   <-KDATA (%#o)\n", r));
1701   LOG((LOG_DISK,1,"   <-KDATA (%#o)\n", r));
17021702   m_bus &= r;
17031703}
17041704
r26072r26073
17121712void alto2_cpu_device::f1_strobe_1()
17131713{
17141714   if (GET_KCOM_SENDADR(m_dsk.kcom)) {
1715      LOG((0,1,"   STROBE (SENDADR:1)\n"));
1715      LOG((LOG_DISK,1,"   STROBE (SENDADR:1)\n"));
17161716      /* Set the STROBON flag and start the STROBON monoflop */
17171717      m_dsk.strobe = 1;
17181718      disk_strobon(0,
r26072r26073
17201720         2 * GET_KADDR_RESTORE(m_dsk.kaddr) +
17211721         m_dsk.drive);
17221722   } else {
1723      LOG((0,1,"   STROBE (w/o SENDADR)\n"));
1723      LOG((LOG_DISK,1,"   STROBE (w/o SENDADR)\n"));
17241724      /* FIXME: what to do if SENDADR isn't set? */
17251725   }
17261726}
r26072r26073
17361736void alto2_cpu_device::f1_load_kstat_1()
17371737{
17381738   int i;
1739   LOG((0,1,"   KSTAT<-; BUS[12-15] %#o\n", m_bus));
1740   LOG((0,2,"      idle:      %d\n", GET_KSTAT_IDLE(m_bus)));
1741   LOG((0,2,"      cksum:     %d\n", GET_KSTAT_CKSUM(m_bus)));
1742   LOG((0,2,"      completion:%d\n", GET_KSTAT_COMPLETION(m_bus)));
1739   LOG((LOG_DISK,1,"   KSTAT<-; BUS[12-15] %#o\n", m_bus));
1740   LOG((LOG_DISK,2,"      idle:      %d\n", GET_KSTAT_IDLE(m_bus)));
1741   LOG((LOG_DISK,2,"      cksum:     %d\n", GET_KSTAT_CKSUM(m_bus)));
1742   LOG((LOG_DISK,2,"      completion:%d\n", GET_KSTAT_COMPLETION(m_bus)));
17431743
17441744   /* KSTAT[12] is just taken from BUS[12] */
17451745   PUT_KSTAT_IDLE(m_dsk.kstat, GET_KSTAT_IDLE(m_bus));
r26072r26073
17871787      PUT_KADDR_DRIVE(m_dsk.kaddr, GET_KADDR_DRIVE(m_bus));
17881788      m_dsk.drive = GET_KADDR_DRIVE(m_dsk.kaddr);
17891789
1790      LOG((0,1,"   KDATA<-; BUS (%#o) (drive:%d restore:%d %d/%d/%02d page:%d)\n",
1790      LOG((LOG_DISK,1,"   KDATA<-; BUS (%#o) (drive:%d restore:%d %d/%d/%02d page:%d)\n",
17911791         m_bus,
17921792         GET_KADDR_DRIVE(m_dsk.kaddr),
17931793         GET_KADDR_RESTORE(m_dsk.kaddr),
r26072r26073
18131813      }
18141814#endif
18151815   } else {
1816      LOG((0,1,"   KDATA<-; BUS %#o (%#x)\n", m_bus, m_bus));
1816      LOG((LOG_DISK,1,"   KDATA<-; BUS %#o (%#x)\n", m_bus, m_bus));
18171817   }
18181818}
18191819
r26072r26073
18551855   case RECNO_HEADER:
18561856      m_dsk.krecno = RECNO_LABEL;
18571857      m_dsk.krwc = GET_KADR_LABEL(m_dsk.kadr);
1858      LOG((0,2,"   INCRECNO; HEADER -> LABEL (%o, rwc:%o)\n",
1858      LOG((LOG_DISK,2,"   INCRECNO; HEADER -> LABEL (%o, rwc:%o)\n",
18591859         m_dsk.krecno, m_dsk.krwc));
18601860      break;
18611861   case RECNO_PAGENO:
18621862      m_dsk.krecno = RECNO_HEADER;
18631863      m_dsk.krwc = GET_KADR_HEADER(m_dsk.kadr);
1864      LOG((0,2,"   INCRECNO; PAGENO -> HEADER (%o, rwc:%o)\n",
1864      LOG((LOG_DISK,2,"   INCRECNO; PAGENO -> HEADER (%o, rwc:%o)\n",
18651865         m_dsk.krecno, m_dsk.krwc));
18661866      break;
18671867   case RECNO_LABEL:
18681868      m_dsk.krecno = RECNO_DATA;
18691869      m_dsk.krwc = GET_KADR_DATA(m_dsk.kadr);
1870      LOG((0,2,"   INCRECNO; LABEL -> DATA (%o, rwc:%o)\n",
1870      LOG((LOG_DISK,2,"   INCRECNO; LABEL -> DATA (%o, rwc:%o)\n",
18711871         m_dsk.krecno, m_dsk.krwc));
18721872      break;
18731873   case RECNO_DATA:
18741874      m_dsk.krecno = RECNO_PAGENO;
18751875      m_dsk.krwc = 0;   /* read (?) */
1876      LOG((0,2,"   INCRECNO; DATA -> PAGENO (%o, rwc:%o)\n",
1876      LOG((LOG_DISK,2,"   INCRECNO; DATA -> PAGENO (%o, rwc:%o)\n",
18771877         m_dsk.krecno, m_dsk.krwc));
18781878      break;
18791879   }
r26072r26073
18901890 */
18911891void alto2_cpu_device::f1_clrstat_1()
18921892{
1893   LOG((0,1,"   CLRSTAT\n"));
1893   LOG((LOG_DISK,1,"   CLRSTAT\n"));
18941894
18951895   /* clears the LAI clocked flip-flop 44a
18961896    * JK flip-flop 44a (LAI' clocked)
r26072r26073
19901990{
19911991   if (m_dsk.kcom != m_bus) {
19921992      m_dsk.kcom = m_bus;
1993      LOG((0,2,"   KCOM<-; BUS %06o\n", m_dsk.kcom));
1994      LOG((0,2,"      xferoff: %d\n", GET_KCOM_XFEROFF(m_dsk.kcom)));
1995      LOG((0,2,"      wdinhib: %d\n", GET_KCOM_WDINHIB(m_dsk.kcom)));
1996      LOG((0,2,"      bclksrc: %d\n", GET_KCOM_BCLKSRC(m_dsk.kcom)));
1997      LOG((0,2,"      wffo:    %d\n", GET_KCOM_WFFO(m_dsk.kcom)));
1998      LOG((0,2,"      sendadr: %d\n", GET_KCOM_SENDADR(m_dsk.kcom)));
1993      LOG((LOG_DISK,2,"   KCOM<-; BUS %06o\n", m_dsk.kcom));
1994      LOG((LOG_DISK,2,"      xferoff: %d\n", GET_KCOM_XFEROFF(m_dsk.kcom)));
1995      LOG((LOG_DISK,2,"      wdinhib: %d\n", GET_KCOM_WDINHIB(m_dsk.kcom)));
1996      LOG((LOG_DISK,2,"      bclksrc: %d\n", GET_KCOM_BCLKSRC(m_dsk.kcom)));
1997      LOG((LOG_DISK,2,"      wffo:    %d\n", GET_KCOM_WFFO(m_dsk.kcom)));
1998      LOG((LOG_DISK,2,"      sendadr: %d\n", GET_KCOM_SENDADR(m_dsk.kcom)));
19991999
20002000      // TODO: show disk indicator
20012001   }
r26072r26073
20362036   /* current read/write/check is that for the header */
20372037   m_dsk.krwc = GET_KADR_HEADER(m_dsk.kadr);
20382038
2039   LOG((0,1,"   KADR<-; BUS[8-14] #%o\n", m_dsk.kadr));
2040   LOG((0,2,"      seal:   %#o\n", GET_KADR_SEAL(m_dsk.kadr)));
2041   LOG((0,2,"      header: %s\n",  rwc_name[GET_KADR_HEADER(m_dsk.kadr)]));
2042   LOG((0,2,"      label:  %s\n",  rwc_name[GET_KADR_LABEL(m_dsk.kadr)]));
2043   LOG((0,2,"      data:   %s\n",  rwc_name[GET_KADR_DATA(m_dsk.kadr)]));
2044   LOG((0,2,"      noxfer: %d\n",  GET_KADR_NOXFER(m_dsk.kadr)));
2045   LOG((0,2,"      unused: %d (drive?)\n",  GET_KADR_UNUSED(m_dsk.kadr)));
2039   LOG((LOG_DISK,1,"   KADR<-; BUS[8-14] #%o\n", m_dsk.kadr));
2040   LOG((LOG_DISK,2,"      seal:   %#o\n", GET_KADR_SEAL(m_dsk.kadr)));
2041   LOG((LOG_DISK,2,"      header: %s\n",  rwc_name[GET_KADR_HEADER(m_dsk.kadr)]));
2042   LOG((LOG_DISK,2,"      label:  %s\n",  rwc_name[GET_KADR_LABEL(m_dsk.kadr)]));
2043   LOG((LOG_DISK,2,"      data:   %s\n",  rwc_name[GET_KADR_DATA(m_dsk.kadr)]));
2044   LOG((LOG_DISK,2,"      noxfer: %d\n",  GET_KADR_NOXFER(m_dsk.kadr)));
2045   LOG((LOG_DISK,2,"      unused: %d (drive?)\n",  GET_KADR_UNUSED(m_dsk.kadr)));
20462046
20472047   // TODO: show disk indicator
20482048}
r26072r26073
20552055void alto2_cpu_device::f2_init_1()
20562056{
20572057   UINT16 r = INIT ? 037 : 0;
2058   LOG((0,1,"   INIT; %sbranch (%#o | %#o)\n", r ? "" : "no ", m_next2, r));
2058   LOG((LOG_DISK,1,"   INIT; %sbranch (%#o | %#o)\n", r ? "" : "no ", m_next2, r));
20592059   m_next2 |= r;
20602060   m_dsk.wdinit0 = 0;
20612061}
r26072r26073
20912091
20922092   switch (m_dsk.krecno) {
20932093   case RECNO_HEADER:
2094      LOG((0,1,"   RWC; %sbranch header(%d):%s (%#o|%#o|%#o)\n",
2094      LOG((LOG_DISK,1,"   RWC; %sbranch header(%d):%s (%#o|%#o|%#o)\n",
20952095         (r | init) ? "" : "no ", m_dsk.krecno,
20962096         rwc_name[m_dsk.krwc], m_next2, r, init));
20972097      break;
20982098   case RECNO_PAGENO:
2099      LOG((0,1,"   RWC; %sbranch pageno(%d):%s (%#o|%#o|%#o)\n",
2099      LOG((LOG_DISK,1,"   RWC; %sbranch pageno(%d):%s (%#o|%#o|%#o)\n",
21002100         (r | init) ? "" : "no ", m_dsk.krecno,
21012101         rwc_name[m_dsk.krwc], m_next2, r, init));
21022102      break;
21032103   case RECNO_LABEL:
2104      LOG((0,1,"   RWC; %sbranch label(%d):%s (%#o|%#o|%#o)\n",
2104      LOG((LOG_DISK,1,"   RWC; %sbranch label(%d):%s (%#o|%#o|%#o)\n",
21052105         (r | init) ? "" : "no ", m_dsk.krecno,
21062106         rwc_name[m_dsk.krwc], m_next2, r, init));
21072107      break;
21082108   case RECNO_DATA:
2109      LOG((0,1,"   RWC; %sbranch data(%d):%s (%#o|%#o|%#o)\n",
2109      LOG((LOG_DISK,1,"   RWC; %sbranch data(%d):%s (%#o|%#o|%#o)\n",
21102110         (r | init) ? "" : "no ", m_dsk.krecno,
21112111         rwc_name[m_dsk.krwc], m_next2, r, init));
21122112      break;
r26072r26073
21302130{
21312131   UINT16 r = m_dsk.krecno;
21322132   UINT16 init = INIT ? 037 : 0;
2133   LOG((0,1,"   RECNO; %sbranch recno:%d (%#o|%#o|%#o)\n", (r | init) ? "" : "no ", m_dsk.krecno, m_next2, r, init));
2133   LOG((LOG_DISK,1,"   RECNO; %sbranch recno:%d (%#o|%#o|%#o)\n", (r | init) ? "" : "no ", m_dsk.krecno, m_next2, r, init));
21342134   m_next2 |= r | init;
21352135   m_dsk.wdinit0 = 0;
21362136}
r26072r26073
21442144{
21452145   UINT16 r = GET_KADR_NOXFER(m_dsk.kadr) ? 0 : 1;
21462146   UINT16 init = INIT ? 037 : 0;
2147   LOG((0,1,"   XFRDAT; %sbranch (%#o|%#o|%#o)\n", (r | init) ? "" : "no ", m_next2, r, init));
2147   LOG((LOG_DISK,1,"   XFRDAT; %sbranch (%#o|%#o|%#o)\n", (r | init) ? "" : "no ", m_next2, r, init));
21482148   m_next2 |= r | init;
21492149   m_dsk.wdinit0 = 0;
21502150}
r26072r26073
21592159   UINT16 r = drive_seek_read_write_0(m_dsk.drive);
21602160   UINT16 init = INIT ? 037 : 0;
21612161
2162   LOG((0,1,"   SWRNRDY; %sbranch (%#o|%#o|%#o)\n", (r | init) ? "" : "no ", m_next2, r, init));
2162   LOG((LOG_DISK,1,"   SWRNRDY; %sbranch (%#o|%#o|%#o)\n", (r | init) ? "" : "no ", m_next2, r, init));
21632163   m_next2 |= r | init;
21642164   m_dsk.wdinit0 = 0;
21652165}
r26072r26073
21742174   UINT16 r = m_dsk.kfer ? 0 : 1;
21752175   UINT16 init = INIT ? 037 : 0;
21762176
2177   LOG((0,1,"   NFER; %sbranch (%#o|%#o|%#o)\n", (r | init) ? "" : "no ", m_next2, r, init));
2177   LOG((LOG_DISK,1,"   NFER; %sbranch (%#o|%#o|%#o)\n", (r | init) ? "" : "no ", m_next2, r, init));
21782178   m_next2 |= r | init;
21792179   m_dsk.wdinit0 = 0;
21802180}
r26072r26073
22032203   UINT16 r = m_dsk.strobe;
22042204   UINT16 init = INIT ? 037 : 0;
22052205
2206   LOG((0,2,"   STROBON; %sbranch (%#o|%#o|%#o)\n", (r | init) ? "" : "no ", m_next2, r, init));
2206   LOG((LOG_DISK,2,"   STROBON; %sbranch (%#o|%#o|%#o)\n", (r | init) ? "" : "no ", m_next2, r, init));
22072207   m_next2 |= r | init;
22082208   m_dsk.wdinit0 = 0;
22092209}
r26072r26073
22382238      if (GET_KCOM_XFEROFF(m_dsk.kcom)) {
22392239         /* do anything, if the transfer is off? */
22402240      } else {
2241         LOG((0,7,"   BITCLK#%d bit:%d (write) @%lldns\n", arg, bit, ntime()));
2241         LOG((LOG_DISK,7,"   BITCLK#%d bit:%d (write) @%lldns\n", arg, bit, ntime()));
22422242         if (clk)
22432243            drive_wrdata(m_dsk.drive, arg, bit);
22442244         else
r26072r26073
22472247   } else if (GET_KCOM_BCLKSRC(m_dsk.kcom)) {
22482248      /* always select the crystal clock */
22492249      bit = drive_rddata(m_dsk.drive, arg);
2250      LOG((0,7,"   BITCLK#%d bit:%d (read, crystal) @%lldns\n", arg, bit, ntime()));
2250      LOG((LOG_DISK,7,"   BITCLK#%d bit:%d (read, crystal) @%lldns\n", arg, bit, ntime()));
22512251      kwd_timing(clk, bit, 0);
22522252   } else {
22532253      /* if XFEROFF is set, keep the bit at 1 (RDGATE' is high) */
r26072r26073
22562256      } else {
22572257         clk = drive_rdclk(m_dsk.drive, arg);
22582258         bit = drive_rddata(m_dsk.drive, arg);
2259         LOG((0,7,"   BITCLK#%d bit:%d (read, driveclk) @%lldns\n", arg, bit, ntime()));
2259         LOG((LOG_DISK,7,"   BITCLK#%d bit:%d (read, driveclk) @%lldns\n", arg, bit, ntime()));
22602260      }
22612261      kwd_timing(clk, bit, 0);
22622262   }
r26072r26073
22762276void alto2_cpu_device::disk_sector_start(int unit)
22772277{
22782278   if (m_dsk.bitclk_timer) {
2279      LOG((0,0,"   unit #%d stop bitclk\n", m_dsk.bitclk));
2279      LOG((LOG_DISK,0,"   unit #%d stop bitclk\n", m_dsk.bitclk));
22802280      m_dsk.bitclk_timer->enable(false);
22812281   }
22822282
r26072r26073
22872287   m_dsk.shiftin = 0;
22882288   m_dsk.shiftout = 0;
22892289
2290   LOG((0,1,"   unit #%d sector %d start\n", unit, GET_KSTAT_SECTOR(m_dsk.kstat)));
2290   LOG((LOG_DISK,1,"   unit #%d sector %d start\n", unit, GET_KSTAT_SECTOR(m_dsk.kstat)));
22912291
22922292   /* HACK: no command, no bit clock */
22932293   if (debug_read_mem(0521))
branches/alto2/src/emu/cpu/alto2/a2dvt.c
r26072r26073
1515void alto2_cpu_device::f1_dvt_block_0()
1616{
1717   m_task_wakeup &= ~(1 << m_task);
18   LOG((0,2,"   BLOCK %s\n", task_name(m_task)));
18   LOG((LOG_DVT,2,"   BLOCK %s\n", task_name(m_task)));
1919}
2020
2121
branches/alto2/src/emu/cpu/alto2/a2dwt.c
r26072r26073
1818
1919   /* clear the wakeup for the display word task */
2020   m_task_wakeup &= ~(1 << m_task);
21   LOG((0,2,"   BLOCK %s\n", task_name(m_task)));
21   LOG((LOG_DWT,2,"   BLOCK %s\n", task_name(m_task)));
2222
2323   /* wakeup the display horizontal task, if it didn't block itself */
2424   if (!m_dsp.dht_blocks)
r26072r26073
3030 */
3131void alto2_cpu_device::f2_dwt_load_ddr_1()
3232{
33   LOG((0,2,"   DDR<- BUS (%#o)\n", m_bus));
33   LOG((LOG_DWT,2,"   DDR<- BUS (%#o)\n", m_bus));
3434   m_dsp.fifo[m_dsp.fifo_wr] = m_bus;
3535   m_dsp.fifo_wr = (m_dsp.fifo_wr + 1) % ALTO2_DISPLAY_FIFO;
3636   if (FIFO_STOPWAKE_0() == 0)
3737      m_task_wakeup &= ~(1 << task_dwt);
38   LOG((0,2, "   DWT push %04x into FIFO[%02o]%s\n",
38   LOG((LOG_DWT,2, "   DWT push %04x into FIFO[%02o]%s\n",
3939      m_bus, (m_dsp.fifo_wr - 1) & (ALTO2_DISPLAY_FIFO - 1),
4040      FIFO_STOPWAKE_0() == 0 ? " STOPWAKE" : ""));
4141}
branches/alto2/src/emu/cpu/alto2/alto2.c
r26072r26073
2727
2828alto2_cpu_device::alto2_cpu_device(const machine_config& mconfig, const char* tag, device_t* owner, UINT32 clock) :
2929   cpu_device(mconfig, ALTO2, "Xerox Alto-II", tag, owner, clock, "alto2", __FILE__),
30#if   ALTO2_DEBUG
31   m_log_types(LOG_ALL),
32   m_log_level(9),
33#endif
3034   m_ucode_config("program", ENDIANNESS_BIG, 32, 14, -2),
3135   m_const_config("constants", ENDIANNESS_BIG, 16, 8, -1),
3236   m_ram_config("memory", ENDIANNESS_BIG, 16, 17, -1),
r26072r26073
716720// FIXME: use the level to suppress messages if logging is less verbose than level
717721void alto2_cpu_device::logprintf(int type, int level, const char* format, ...)
718722{
723   static const char* type_name[] = {
724      "[CPU]",
725      "[EMU]",
726      "[T01]",
727      "[T02]",
728      "[T03]",
729      "[KSEC]",
730      "[T05]",
731      "[T06]",
732      "[ETH]",
733      "[MRT]",
734      "[DWT]",
735      "[CURT]",
736      "[DHT]",
737      "[DVT]",
738      "[PART]",
739      "[KWD]",
740      "[T17]",
741      "[MEM]",
742      "[RAM]",
743      "[DRIVE]",
744      "[DISK]",
745      "[DISPL]",
746      "[MOUSE]"
747   };
748   if (!(m_log_types & type))
749      return;
750   if (level > m_log_level)
751      return;
752   for (int i = 0; i < sizeof(type_name)/sizeof(type_name[0]); i++)
753      if (type & (1 << i))
754         debug_console_printf(machine(), "%-7s ", type_name[i]);
719755   va_list ap;
720756   va_start(ap, format);
721   vprintf(format, ap);
757   debug_console_vprintf(machine(), format, ap);
722758   va_end(ap);
723759}
724760#endif
r26072r26073
886922
887923void alto2_cpu_device::watch_read(UINT32 addr, UINT32 data)
888924{
889   LOG((0,0,"mem: rd[%06o] = %06o\n", addr, data));
925   LOG((LOG_MEM,0,"mem: rd[%06o] = %06o\n", addr, data));
890926}
891927
892928void alto2_cpu_device::watch_write(UINT32 addr, UINT32 data)
893929{
894   LOG((0,0,"mem: wr[%06o] = %06o\n", addr, data));
930   LOG((LOG_MEM,0,"mem: wr[%06o] = %06o\n", addr, data));
895931}
896932
897933/** @brief fatal exit on unitialized dynamic phase BUS source */
r26072r26073
957993{
958994   int task = address & 017;
959995   m_bank_reg[task] = data & 017;
960   LOG((0,0,"   write bank[%02o]=%#o normal:%o extended:%o (%s)\n",
996   LOG((LOG_CPU,0,"   write bank[%02o]=%#o normal:%o extended:%o (%s)\n",
961997      task, data,
962998      GET_BANK_NORMAL(data),
963999      GET_BANK_EXTENDED(data),
r26072r26073
9701006void alto2_cpu_device::bs_read_r_0()
9711007{
9721008   UINT16 r = m_r[m_rsel];
973   LOG((0,2,"   <-R%02o; %s (%#o)\n", m_rsel, r_name(m_rsel), r));
1009   LOG((LOG_CPU,2,"   <-R%02o; %s (%#o)\n", m_rsel, r_name(m_rsel), r));
9741010   m_bus &= r;
9751011}
9761012
r26072r26073
9801016void alto2_cpu_device::bs_load_r_0()
9811017{
9821018   UINT16 r = 0;
983   LOG((0,2,"   R%02o<-; %s (BUS&=0)\n", m_rsel, r_name(m_rsel)));
1019   LOG((LOG_CPU,2,"   R%02o<-; %s (BUS&=0)\n", m_rsel, r_name(m_rsel)));
9841020   m_bus &= r;
9851021}
9861022
r26072r26073
9911027{
9921028   if (MIR_F2(m_mir) != f2_emu_load_dns) {
9931029      m_r[m_rsel] = m_shifter;
994      LOG((0,2,"   R%02o<-; %s = SHIFTER (%#o)\n", m_rsel, r_name(m_rsel), m_shifter));
1030      LOG((LOG_CPU,2,"   R%02o<-; %s = SHIFTER (%#o)\n", m_rsel, r_name(m_rsel), m_shifter));
9951031      /* HACK: programs writing r37 with xxx3 make the cursor
9961032       * display go nuts. Until I found the real reason for this
9971033       * obviously buggy display, I just clear the two
r26072r26073
10131049   UINT32 mar = m_mem.mar;
10141050#endif
10151051   UINT16 md = read_mem();
1016   LOG((0,2,"   <-MD; BUS&=MD (%#o=[%#o])\n", md, mar));
1052   LOG((LOG_CPU,2,"   <-MD; BUS&=MD (%#o=[%#o])\n", md, mar));
10171053   m_bus &= md;
10181054}
10191055
r26072r26073
10231059void alto2_cpu_device::bs_mouse_0()
10241060{
10251061   UINT16 r = mouse_read();
1026   LOG((0,2,"   <-MOUSE; BUS&=MOUSE (%#o)\n", r));
1062   LOG((LOG_CPU,2,"   <-MOUSE; BUS&=MOUSE (%#o)\n", r));
10271063   m_bus &= r;
10281064}
10291065
r26072r26073
10331069void alto2_cpu_device::bs_disp_0()
10341070{
10351071   UINT16 r = 0177777;
1036   LOG((0,0,"BS <-DISP not handled by task %s mpc:%04x\n", task_name(m_task), m_mpc));
1037   LOG((0,2,"   <-DISP; BUS&=DISP ?? (%#o)\n", r));
1072   LOG((LOG_CPU,0,"BS <-DISP not handled by task %s mpc:%04x\n", task_name(m_task), m_mpc));
1073   LOG((LOG_CPU,2,"   <-DISP; BUS&=DISP ?? (%#o)\n", r));
10381074   m_bus &= r;
10391075}
10401076
r26072r26073
10501086   UINT32 msb;
10511087   if (MIR_F2(m_mir) == f2_load_md) {
10521088      msb = GET_BANK_EXTENDED(bank) << 16;
1053      LOG((0,7, "   XMAR %#o\n", msb | m_alu));
1089      LOG((LOG_CPU,7, "   XMAR %#o\n", msb | m_alu));
10541090   } else {
10551091      msb = GET_BANK_NORMAL(bank) << 16;
10561092
r26072r26073
11261162
11271163   if (in & PRIO_IN_EI) {
11281164      out = PRIO_OUT_EO | PRIO_OUT_GS | PRIO_OUT_QZ;
1129      LOG((0,2,"   f9318 case (a) in:%#o out:%#o\n", in, out));
1165      LOG((LOG_CPU,2,"   f9318 case (a) in:%#o out:%#o\n", in, out));
11301166      return out;
11311167   }
11321168
11331169   if (0 == (in & PRIO_I7)) {
11341170      out = PRIO_OUT_EO;
1135      LOG((0,2,"   f9318 case (c) in:%#o out:%#o\n", in, out));
1171      LOG((LOG_CPU,2,"   f9318 case (c) in:%#o out:%#o\n", in, out));
11361172      return out;
11371173   }
11381174
11391175   if (PRIO_I7 == (in & PRIO_I6_I7)) {
11401176      out = PRIO_OUT_EO | PRIO_OUT_Q0;
1141      LOG((0,2,"   f9318 case (d) in:%#o out:%#o\n", in, out));
1177      LOG((LOG_CPU,2,"   f9318 case (d) in:%#o out:%#o\n", in, out));
11421178      return out;
11431179   }
11441180
11451181   if (PRIO_I6_I7 == (in & PRIO_I5_I7)) {
11461182      out = PRIO_OUT_EO | PRIO_OUT_Q1;
1147      LOG((0,2,"   f9318 case (e) in:%#o out:%#o\n", in, out));
1183      LOG((LOG_CPU,2,"   f9318 case (e) in:%#o out:%#o\n", in, out));
11481184      return out;
11491185   }
11501186
11511187   if (PRIO_I5_I7 == (in & PRIO_I4_I7)) {
11521188      out = PRIO_OUT_EO | PRIO_OUT_Q0 | PRIO_OUT_Q1;
1153      LOG((0,2,"   f9318 case (f) in:%#o out:%#o\n", in, out));
1189      LOG((LOG_CPU,2,"   f9318 case (f) in:%#o out:%#o\n", in, out));
11541190      return out;
11551191   }
11561192
11571193   if (PRIO_I4_I7 == (in & PRIO_I3_I7)) {
11581194      out = PRIO_OUT_EO | PRIO_OUT_Q2;
1159      LOG((0,2,"   f9318 case (g) in:%#o out:%#o\n", in, out));
1195      LOG((LOG_CPU,2,"   f9318 case (g) in:%#o out:%#o\n", in, out));
11601196      return out;
11611197   }
11621198
11631199   if (PRIO_I3_I7 == (in & PRIO_I2_I7)) {
11641200      out = PRIO_OUT_EO | PRIO_OUT_Q0 | PRIO_OUT_Q2;
1165      LOG((0,2,"   f9318 case (h) in:%#o out:%#o\n", in, out));
1201      LOG((LOG_CPU,2,"   f9318 case (h) in:%#o out:%#o\n", in, out));
11661202      return out;
11671203   }
11681204
11691205   if (PRIO_I2_I7 == (in & PRIO_I1_I7)) {
11701206      out = PRIO_OUT_EO | PRIO_OUT_Q1 | PRIO_OUT_Q2;
1171      LOG((0,2,"   f9318 case (i) in:%#o out:%#o\n", in, out));
1207      LOG((LOG_CPU,2,"   f9318 case (i) in:%#o out:%#o\n", in, out));
11721208      return out;
11731209   }
11741210
11751211   if (PRIO_I1_I7 == (in & PRIO_I0_I7)) {
11761212      out = PRIO_OUT_EO | PRIO_OUT_Q0 | PRIO_OUT_Q1 | PRIO_OUT_Q2;
1177      LOG((0,2,"   f9318 case (j) in:%#o out:%#o\n", in, out));
1213      LOG((LOG_CPU,2,"   f9318 case (j) in:%#o out:%#o\n", in, out));
11781214      return out;
11791215   }
11801216
11811217   out = PRIO_OUT_QZ | PRIO_OUT_GS;
1182   LOG((0,2,"   f9318 case (b) in:%#o out:%#o\n", in, out));
1218   LOG((LOG_CPU,2,"   f9318 case (b) in:%#o out:%#o\n", in, out));
11831219   return out;
11841220}
11851221#endif
r26072r26073
12671303   register int ct1, ct2, ct4, ct8;
12681304   register int wakeup, ct;
12691305
1270   LOG((0,2, "   TASK %02o:%s\n", m_task, task_name(m_task)));
1306   LOG((LOG_CPU,2, "   TASK %02o:%s\n", m_task, task_name(m_task)));
12711307
12721308   if (m_task > task_emu && (m_task_wakeup & (1 << m_task)))
12731309      addr = m_task;
1274   LOG((0,2,"   ctl2k_u38[%02o] = %04o\n", addr, ctl2k_u38[addr] & 017));
1310   LOG((LOG_CPU,2,"   ctl2k_u38[%02o] = %04o\n", addr, ctl2k_u38[addr] & 017));
12751311
12761312   rdct1 = (ctl2k_u38[addr] >> U38_RDCT1) & 1;
12771313   rdct2 = (ctl2k_u38[addr] >> U38_RDCT2) & 1;
r26072r26073
12991335
13001336   /* CT1 = (U1.Q0' & U2.Q0' & RDCT1')' */
13011337   ct1 = !((u1 & PRIO_OUT_Q0) && (u2 & PRIO_OUT_Q0) && rdct1);
1302   LOG((0,2,"     CT1:%o U1.Q0':%o U2.Q0':%o RDCT1':%o\n",
1338   LOG((LOG_CPU,2,"     CT1:%o U1.Q0':%o U2.Q0':%o RDCT1':%o\n",
13031339      ct1, (u1 & PRIO_OUT_Q0)?1:0, (u2 & PRIO_OUT_Q0)?1:0, rdct1));
13041340   /* CT2 = (U1.Q1' & U2.Q1' & RDCT2')' */
13051341   ct2 = !((u1 & PRIO_OUT_Q1) && (u2 & PRIO_OUT_Q1) && rdct2);
1306   LOG((0,2,"     CT2:%o U1.Q1':%o U2.Q1':%o RDCT2':%o\n",
1342   LOG((LOG_CPU,2,"     CT2:%o U1.Q1':%o U2.Q1':%o RDCT2':%o\n",
13071343      ct2, (u1 & PRIO_OUT_Q1)?1:0, (u2 & PRIO_OUT_Q1)?1:0, rdct2));
13081344   /* CT4 = (U1.Q2' & U2.Q2' & RDCT4')' */
13091345   ct4 = !((u1 & PRIO_OUT_Q2) && (u2 & PRIO_OUT_Q2) && rdct4);
1310   LOG((0,2,"     CT4:%o U1.Q2':%o U2.Q2':%o RDCT4':%o\n",
1346   LOG((LOG_CPU,2,"     CT4:%o U1.Q2':%o U2.Q2':%o RDCT4':%o\n",
13111347      ct4, (u1 & PRIO_OUT_Q2)?1:0, (u2 & PRIO_OUT_Q2)?1:0, rdct4));
13121348   /* CT8 */
13131349   ct8 = !((u1 & PRIO_OUT_GS) && rdct8);
1314   LOG((0,2,"     CT8:%o U1.GS':%o RDCT8':%o\n",
1350   LOG((LOG_CPU,2,"     CT8:%o U1.GS':%o RDCT8':%o\n",
13151351      ct8, (u1 & PRIO_OUT_GS)?1:0, rdct8));
13161352
13171353   ct = 8*ct8 + 4*ct4 + 2*ct2 + ct1;
13181354
13191355   if (ct != m_next_task) {
1320      LOG((0,2, "      switch to %02o\n", ct));
1356      LOG((LOG_CPU,2, "      switch to %02o\n", ct));
13211357      m_next2_task = ct;
13221358   } else {
1323      LOG((0,2, "      no switch\n"));
1359      LOG((LOG_CPU,2, "      no switch\n"));
13241360   }
13251361#else   /* USE_PRIO_F9318 */
13261362   int i;
13271363
1328   LOG((0,2, "   TASK %02o:%s", m_task, task_name(m_task)));
1364   LOG((LOG_CPU,2, "   TASK %02o:%s", m_task, task_name(m_task)));
13291365   for (i = 15; i >= 0; i--) {
13301366      if (m_task_wakeup & (1 << i)) {
13311367         m_next2_task = i;
13321368         if (m_next2_task != m_next_task) {
1333            LOG((0,2, " switch to %02o:%s\n", m_next2_task, task_name(m_next2_task)));
1369            LOG((LOG_CPU,2, " switch to %02o:%s\n", m_next2_task, task_name(m_next2_task)));
13341370         } else {
1335            LOG((0,2, " no switch\n"));
1371            LOG((LOG_CPU,2, " no switch\n"));
13361372         }
13371373         return;
13381374      }
r26072r26073
13501386void alto2_cpu_device::f1_block_0()
13511387{
13521388   CPU_CLR_TASK_WAKEUP(m_task);
1353   LOG((0,2, "   BLOCK %02o:%s\n", m_task, task_name(m_task)));
1389   LOG((LOG_CPU,2, "   BLOCK %02o:%s\n", m_task, task_name(m_task)));
13541390}
13551391#endif
13561392
r26072r26073
13601396void alto2_cpu_device::f2_bus_eq_zero_1()
13611397{
13621398   UINT16 r = m_bus == 0 ? 1 : 0;
1363   LOG((0,2, "   BUS=0; %sbranch (%#o|%#o)\n", r ? "" : "no ", m_next2, r));
1399   LOG((LOG_CPU,2, "   BUS=0; %sbranch (%#o|%#o)\n", r ? "" : "no ", m_next2, r));
13641400   m_next2 |= r;
13651401}
13661402
r26072r26073
13701406void alto2_cpu_device::f2_shifter_lt_zero_1()
13711407{
13721408   UINT16 r = (m_shifter & 0100000) ? 1 : 0;
1373   LOG((0,2, "   SH<0; %sbranch (%#o|%#o)\n", r ? "" : "no ", m_next2, r));
1409   LOG((LOG_CPU,2, "   SH<0; %sbranch (%#o|%#o)\n", r ? "" : "no ", m_next2, r));
13741410   m_next2 |= r;
13751411}
13761412
r26072r26073
13801416void alto2_cpu_device::f2_shifter_eq_zero_1()
13811417{
13821418   UINT16 r = m_shifter == 0 ? 1 : 0;
1383   LOG((0,2, "   SH=0; %sbranch (%#o|%#o)\n", r ? "" : "no ", m_next2, r));
1419   LOG((LOG_CPU,2, "   SH=0; %sbranch (%#o|%#o)\n", r ? "" : "no ", m_next2, r));
13841420   m_next2 |= r;
13851421}
13861422
r26072r26073
13901426void alto2_cpu_device::f2_bus_1()
13911427{
13921428   UINT16 r = A2_GET32(m_bus,16,6,15);
1393   LOG((0,2, "   BUS; %sbranch (%#o|%#o)\n", r ? "" : "no ", m_next2, r));
1429   LOG((LOG_CPU,2, "   BUS; %sbranch (%#o|%#o)\n", r ? "" : "no ", m_next2, r));
13941430   m_next2 |= r;
13951431}
13961432
r26072r26073
14001436void alto2_cpu_device::f2_alucy_1()
14011437{
14021438   UINT16 r = m_laluc0;
1403   LOG((0,2, "   ALUCY; %sbranch (%#o|%#o)\n", r ? "" : "no ", m_next2, r));
1439   LOG((LOG_CPU,2, "   ALUCY; %sbranch (%#o|%#o)\n", r ? "" : "no ", m_next2, r));
14041440   m_next2 |= r;
14051441}
14061442
r26072r26073
14161452#endif
14171453   if (MIR_F1(m_mir) == f1_load_mar) {
14181454      /* part of an XMAR */
1419      LOG((0,2, "   XMAR %#o (%#o)\n", mar, m_bus));
1455      LOG((LOG_CPU,2, "   XMAR %#o (%#o)\n", mar, m_bus));
14201456   } else {
14211457      write_mem(m_bus);
1422      LOG((0,2, "   MD<- BUS ([%#o]=%#o)\n", mar, m_bus));
1458      LOG((LOG_CPU,2, "   MD<- BUS ([%#o]=%#o)\n", mar, m_bus));
14231459   }
14241460}
14251461
r26072r26073
14871523   if (GET_CRAM_RAMROM(m_cram_addr)) {
14881524      /* read ROM 0 at current mpc */
14891525      addr = m_mpc & 01777;
1490      LOG((0,0,"   rdram: ROM [%05o] ", addr));
1526      LOG((LOG_CPU,0,"   rdram: ROM [%05o] ", addr));
14911527   } else {
14921528      /* read RAM 0,1,2 */
14931529      addr = ALTO2_UCODE_RAM_BASE + bank * ALTO2_UCODE_PAGE_SIZE + wordaddr;
1494      LOG((0,0,"   rdram: RAM%d [%04o] ", bank, wordaddr));
1530      LOG((LOG_CPU,0,"   rdram: RAM%d [%04o] ", bank, wordaddr));
14951531   }
14961532
14971533   if (addr >= ALTO2_UCODE_SIZE) {
14981534      val = 0177777;   /* ??? */
1499      LOG((0,0,"invalid address (%06o)\n", val));
1535      LOG((LOG_CPU,0,"invalid address (%06o)\n", val));
15001536      return;
15011537   }
15021538   val = m_ucode->read_dword(addr) ^ ALTO2_UCODE_INVERTED;
15031539   if (GET_CRAM_HALFSEL(m_cram_addr)) {
15041540      val = val >> 16;
1505      LOG((0,0,"upper:%06o\n", val));
1541      LOG((LOG_CPU,0,"upper:%06o\n", val));
15061542   } else {
15071543      val = val & 0177777;
1508      LOG((0,0,"lower:%06o\n", val));
1544      LOG((LOG_CPU,0,"lower:%06o\n", val));
15091545   }
15101546   m_bus &= val;
15111547}
r26072r26073
15301566
15311567   /* write RAM 0,1,2 */
15321568   addr = ALTO2_UCODE_RAM_BASE + bank * ALTO2_UCODE_PAGE_SIZE + wordaddr;
1533   LOG((0,0,"   wrtram: RAM%d [%04o] upper:%06o lower:%06o", bank, wordaddr, m_m, m_alu));
1569   LOG((LOG_CPU,0,"   wrtram: RAM%d [%04o] upper:%06o lower:%06o", bank, wordaddr, m_m, m_alu));
15341570   if (addr >= ALTO2_UCODE_SIZE) {
1535      LOG((0,0," invalid address\n"));
1571      LOG((LOG_CPU,0," invalid address\n"));
15361572      return;
15371573   }
1538   LOG((0,0,"\n"));
1574   LOG((LOG_CPU,0,"\n"));
15391575   m_ucode->write_dword(addr, ((m_m << 16) | m_alu) ^ ALTO2_UCODE_INVERTED);
15401576}
15411577
r26072r26073
19561992      bs = MIR_BS(m_mir);
19571993      f1 = MIR_F1(m_mir);
19581994      f2 = MIR_F2(m_mir);
1959      LOG((0,2,"\n%s-%04o: r:%02o af:%02o bs:%02o f1:%02o f2:%02o t:%o l:%o next:%05o next2:%05o cycle:%lld\n",
1995      LOG((LOG_CPU,2,"\n%s-%04o: r:%02o af:%02o bs:%02o f1:%02o f2:%02o t:%o l:%o next:%05o next2:%05o cycle:%lld\n",
19601996         task_name(m_task), m_mpc, m_rsel, aluf, bs, f1, f2, MIR_T(m_mir), MIR_L(m_mir), m_next, m_next2, cycle()));
19611997
19621998      /*
r26072r26073
19682004
19692005      if (f1 == f1_load_mar) {
19702006         if (check_mem_load_mar_stall(m_rsel)) {
1971            LOG((0,3, "   MAR<- stall\n"));
2007            LOG((LOG_CPU,3, "   MAR<- stall\n"));
19722008            m_next2 = m_next;
19732009            m_next = m_mpc;
19742010            continue;
19752011         }
19762012      } else if (f2 == f2_load_md) {
19772013         if (check_mem_write_stall()) {
1978            LOG((0,3, "   MD<- stall\n"));
2014            LOG((LOG_CPU,3, "   MD<- stall\n"));
19792015            m_next2 = m_next;
19802016            m_next = m_mpc;
19812017            continue;
r26072r26073
19832019      }
19842020      if (do_bs && bs == bs_read_md) {
19852021         if (check_mem_read_stall()) {
1986            LOG((0,3, "   <-MD stall\n"));
2022            LOG((LOG_CPU,3, "   <-MD stall\n"));
19872023            m_next2 = m_next;
19882024            m_next = m_mpc;
19892025            continue;
r26072r26073
20012037      if (!do_bs || bs >= 4) {
20022038         int addr = 8 * m_rsel + bs;
20032039         UINT16 data = m_const->read_word(addr);
2004         LOG((0,2,"   %#o; BUS &= CONST[%03o]\n", data, addr));
2040         LOG((LOG_CPU,2,"   %#o; BUS &= CONST[%03o]\n", data, addr));
20052041         m_bus &= data;
20062042      }
20072043
r26072r26073
20412077         m_aluc0 = 1;
20422078#endif
20432079         flags = TSELECT;
2044         LOG((0,2,"   ALU<- BUS (%#o := %#o)\n", alu, m_bus));
2080         LOG((LOG_CPU,2,"   ALU<- BUS (%#o := %#o)\n", alu, m_bus));
20452081         break;
20462082
20472083      /**
r26072r26073
20582094         m_aluc0 = 1;
20592095#endif
20602096         flags = 0;
2061         LOG((0,2,"   ALU<- T (%#o := %#o)\n", alu, m_t));
2097         LOG((LOG_CPU,2,"   ALU<- T (%#o := %#o)\n", alu, m_t));
20622098         break;
20632099
20642100      /**
r26072r26073
20752111         m_aluc0 = 1;
20762112#endif
20772113         flags = TSELECT;
2078         LOG((0,2,"   ALU<- BUS OR T (%#o := %#o | %#o)\n", alu, m_bus, m_t));
2114         LOG((LOG_CPU,2,"   ALU<- BUS OR T (%#o := %#o | %#o)\n", alu, m_bus, m_t));
20792115         break;
20802116
20812117      /**
r26072r26073
20922128         m_aluc0 = 1;
20932129#endif
20942130         flags = 0;
2095         LOG((0,2,"   ALU<- BUS AND T (%#o := %#o & %#o)\n", alu, m_bus, m_t));
2131         LOG((LOG_CPU,2,"   ALU<- BUS AND T (%#o := %#o & %#o)\n", alu, m_bus, m_t));
20962132         break;
20972133
20982134      /**
r26072r26073
21092145         m_aluc0 = 1;
21102146#endif
21112147         flags = 0;
2112         LOG((0,2,"   ALU<- BUS XOR T (%#o := %#o ^ %#o)\n", alu, m_bus, m_t));
2148         LOG((LOG_CPU,2,"   ALU<- BUS XOR T (%#o := %#o ^ %#o)\n", alu, m_bus, m_t));
21132149         break;
21142150
21152151      /**
r26072r26073
21262162         m_aluc0 = (alu >> 16) & 1;
21272163#endif
21282164         flags = ALUM2 | TSELECT;
2129         LOG((0,2,"   ALU<- BUS + 1 (%#o := %#o + 1)\n", alu, m_bus));
2165         LOG((LOG_CPU,2,"   ALU<- BUS + 1 (%#o := %#o + 1)\n", alu, m_bus));
21302166         break;
21312167
21322168      /**
r26072r26073
21432179         m_aluc0 = (~m_alu >> 16) & 1;
21442180#endif
21452181         flags = ALUM2 | TSELECT;
2146         LOG((0,2,"   ALU<- BUS - 1 (%#o := %#o - 1)\n", alu, m_bus));
2182         LOG((LOG_CPU,2,"   ALU<- BUS - 1 (%#o := %#o - 1)\n", alu, m_bus));
21472183         break;
21482184
21492185      /**
r26072r26073
21602196         m_aluc0 = (m_alu >> 16) & 1;
21612197#endif
21622198         flags = ALUM2;
2163         LOG((0,2,"   ALU<- BUS + T (%#o := %#o + %#o)\n", alu, m_bus, m_t));
2199         LOG((LOG_CPU,2,"   ALU<- BUS + T (%#o := %#o + %#o)\n", alu, m_bus, m_t));
21642200         break;
21652201
21662202      /**
r26072r26073
21772213         m_aluc0 = (~m_alu >> 16) & 1;
21782214#endif
21792215         flags = ALUM2;
2180         LOG((0,2,"   ALU<- BUS - T (%#o := %#o - %#o)\n", alu, m_bus, m_t));
2216         LOG((LOG_CPU,2,"   ALU<- BUS - T (%#o := %#o - %#o)\n", alu, m_bus, m_t));
21812217         break;
21822218
21832219      /**
r26072r26073
21942230         m_aluc0 = (~m_alu >> 16) & 1;
21952231#endif
21962232         flags = ALUM2;
2197         LOG((0,2,"   ALU<- BUS - T - 1 (%#o := %#o - %#o - 1)\n", alu, m_bus, m_t));
2233         LOG((LOG_CPU,2,"   ALU<- BUS - T - 1 (%#o := %#o - %#o - 1)\n", alu, m_bus, m_t));
21982234         break;
21992235
22002236      /**
r26072r26073
22112247         m_aluc0 = (m_alu >> 16) & 1;
22122248#endif
22132249         flags = ALUM2 | TSELECT;
2214         LOG((0,2,"   ALU<- BUS + T + 1 (%#o := %#o + %#o + 1)\n", alu, m_bus, m_t));
2250         LOG((LOG_CPU,2,"   ALU<- BUS + T + 1 (%#o := %#o + %#o + 1)\n", alu, m_bus, m_t));
22152251         break;
22162252
22172253      /**
r26072r26073
22282264         m_aluc0 = (m_alu >> 16) & 1;
22292265#endif
22302266         flags = ALUM2 | TSELECT;
2231         LOG((0,2,"   ALU<- BUS + SKIP (%#o := %#o + %#o)\n", alu, m_bus, m_emu.skip));
2267         LOG((LOG_CPU,2,"   ALU<- BUS + SKIP (%#o := %#o + %#o)\n", alu, m_bus, m_emu.skip));
22322268         break;
22332269
22342270      /**
r26072r26073
22452281         m_aluc0 = 1;
22462282#endif
22472283         flags = TSELECT;
2248         LOG((0,2,"   ALU<- BUS,T (%#o := %#o & %#o)\n", alu, m_bus, m_t));
2284         LOG((LOG_CPU,2,"   ALU<- BUS,T (%#o := %#o & %#o)\n", alu, m_bus, m_t));
22492285         break;
22502286
22512287      /**
r26072r26073
22622298         m_aluc0 = 1;
22632299#endif
22642300         flags = 0;
2265         LOG((0,2,"   ALU<- BUS AND NOT T (%#o := %#o & ~%#o)\n", alu, m_bus, m_t));
2301         LOG((LOG_CPU,2,"   ALU<- BUS AND NOT T (%#o := %#o & ~%#o)\n", alu, m_bus, m_t));
22662302         break;
22672303
22682304      /**
r26072r26073
22792315         m_aluc0 = 1;
22802316#endif
22812317         flags = ALUM2;
2282         LOG((0,0,"   ALU<- 0 (illegal aluf in task %s, mpc:%05o aluf:%02o)\n", task_name(m_task), m_mpc, aluf));
2318         LOG((LOG_CPU,0,"   ALU<- 0 (illegal aluf in task %s, mpc:%05o aluf:%02o)\n", task_name(m_task), m_mpc, aluf));
22832319         break;
22842320
22852321      /**
r26072r26073
22972333         m_aluc0 = 1;
22982334#endif
22992335         flags = ALUM2;
2300         LOG((0,0,"   ALU<- 0 (illegal aluf in task %s, mpc:%05o aluf:%02o)\n", task_name(m_task), m_mpc, aluf));
2336         LOG((LOG_CPU,0,"   ALU<- 0 (illegal aluf in task %s, mpc:%05o aluf:%02o)\n", task_name(m_task), m_mpc, aluf));
23012337      }
23022338      m_alu = static_cast<UINT16>(alu);
23032339
r26072r26073
23102346         if (m_task == task_emu) {
23112347            if (f2 == f2_emu_magic) {
23122348               m_shifter = ((m_l << 1) | (m_t >> 15)) & 0177777;
2313               LOG((0,2,"   SHIFTER <-L MLSH 1 (%#o := %#o<<1|%#o)\n", m_shifter, m_l, m_t >> 15));
2349               LOG((LOG_CPU,2,"   SHIFTER <-L MLSH 1 (%#o := %#o<<1|%#o)\n", m_shifter, m_l, m_t >> 15));
23142350               break;
23152351            }
23162352            if (f2 == f2_emu_load_dns) {
r26072r26073
23192355            }
23202356         }
23212357         m_shifter = (m_l << 1) & 0177777;
2322         LOG((0,2,"   SHIFTER <-L LSH 1 (%#o := %#o<<1)\n", m_shifter, m_l));
2358         LOG((LOG_CPU,2,"   SHIFTER <-L LSH 1 (%#o := %#o<<1)\n", m_shifter, m_l));
23232359         break;
23242360
23252361      case f1_l_rsh_1:
23262362         if (m_task == task_emu) {
23272363            if (f2 == f2_emu_magic) {
23282364               m_shifter = ((m_l >> 1) | (m_t << 15)) & 0177777;
2329               LOG((0,2,"   SHIFTER <-L MRSH 1 (%#o := %#o>>1|%#o)\n", m_shifter, m_l, (m_t << 15) & 0100000));
2365               LOG((LOG_CPU,2,"   SHIFTER <-L MRSH 1 (%#o := %#o>>1|%#o)\n", m_shifter, m_l, (m_t << 15) & 0100000));
23302366               break;
23312367            }
23322368            if (f2 == f2_emu_load_dns) {
r26072r26073
23352371            }
23362372         }
23372373         m_shifter = m_l >> 1;
2338         LOG((0,2,"   SHIFTER <-L RSH 1 (%#o := %#o>>1)\n", m_shifter, m_l));
2374         LOG((LOG_CPU,2,"   SHIFTER <-L RSH 1 (%#o := %#o>>1)\n", m_shifter, m_l));
23392375         break;
23402376
23412377      case f1_l_lcy_8:
23422378         m_shifter = ((m_l >> 8) | (m_l << 8)) & 0177777;
2343         LOG((0,2,"   SHIFTER <-L LCY 8 (%#o := bswap %#o)\n", m_shifter, m_l));
2379         LOG((LOG_CPU,2,"   SHIFTER <-L LCY 8 (%#o := bswap %#o)\n", m_shifter, m_l));
23442380         break;
23452381
23462382      default:
r26072r26073
23702406         m_l = m_alu;
23712407         if (flags & ALUM2) {
23722408            m_laluc0 = m_aluc0;
2373            LOG((0,2, "   L<- ALU (%#o); LALUC0<- ALUC0 (%o)\n", m_alu, m_laluc0));
2409            LOG((LOG_CPU,2, "   L<- ALU (%#o); LALUC0<- ALUC0 (%o)\n", m_alu, m_laluc0));
23742410         } else {
23752411            m_laluc0 = 0;
2376            LOG((0,2, "   L<- ALU (%#o); LALUC0<- %o\n", m_alu, m_laluc0));
2412            LOG((LOG_CPU,2, "   L<- ALU (%#o); LALUC0<- %o\n", m_alu, m_laluc0));
23772413         }
23782414         if (m_ram_related[m_task]) {
23792415            /* load M from ALU, if 'GOODTASK' */
23802416            m_m = m_alu;
23812417            /* also writes to S[bank][0], which can't be read */
23822418            m_s[m_s_reg_bank[m_task]][0] = m_alu;
2383            LOG((0,2, "   M<- ALU (%#o)\n", m_alu));
2419            LOG((LOG_CPU,2, "   M<- ALU (%#o)\n", m_alu));
23842420         }
23852421      }
23862422
r26072r26073
23882424      if (MIR_T(m_mir)) {
23892425         m_cram_addr = m_alu;
23902426         if (flags & TSELECT) {
2391            LOG((0,2, "   T<- ALU (%#o)\n", m_alu));
2427            LOG((LOG_CPU,2, "   T<- ALU (%#o)\n", m_alu));
23922428            m_t = m_alu;
23932429         } else {
2394            LOG((0,2, "   T<- BUS (%#o)\n", m_bus));
2430            LOG((LOG_CPU,2, "   T<- BUS (%#o)\n", m_bus));
23952431            m_t = m_bus;
23962432         }
23972433      }
r26072r26073
24062442            m_task_mpc[m_task] = m_next;
24072443            m_task_next2[m_task] = m_next2;
24082444            m_task = m_next_task;
2409            LOG((0,1, "task switch to %02o:%s (cycle %lld)\n", m_task, task_name(m_task), cycle()));
2445            LOG((LOG_CPU,1, "task switch to %02o:%s (cycle %lld)\n", m_task, task_name(m_task), cycle()));
24102446            /* get new task's mpc */
24112447            m_next = m_task_mpc[m_task];
24122448            /* get address modifier after task switch (?) */
branches/alto2/src/emu/cpu/alto2/a2disp.c
r26072r26073
199199
200200   word = m_dsp.inverse;
201201   if (FIFO_MBEMPTY_0() == 0) {
202      LOG((0,1, "   DSP FIFO underrun y:%d x:%d\n", y, x));
202      LOG((LOG_DISPL,1, "   DSP FIFO underrun y:%d x:%d\n", y, x));
203203   } else {
204204      word ^= m_dsp.fifo[m_dsp.fifo_rd];
205205      m_dsp.fifo_rd = (m_dsp.fifo_rd + 1) % ALTO2_DISPLAY_FIFO;
206      LOG((0,3, "   DSP pull %04x from FIFO[%02o] y:%d x:%d\n",
206      LOG((LOG_DISPL,3, "   DSP pull %04x from FIFO[%02o] y:%d x:%d\n",
207207         word, (m_dsp.fifo_rd - 1) & (ALTO2_DISPLAY_FIFO - 1), y, x));
208208   }
209209
r26072r26073
269269{
270270   int next, a63, a66;
271271
272   LOG((0,5,"DSP%03o:", arg));
272   LOG((LOG_DISPL,5,"DSP%03o:", arg));
273273   if (020 == arg) {
274      LOG((0,2," HLC=%d", m_dsp.hlc));
274      LOG((LOG_DISPL,2," HLC=%d", m_dsp.hlc));
275275   }
276276
277277   a63 = m_disp_a63[arg];
r26072r26073
304304      /* VBLANK: remember hlc */
305305      m_dsp.vblank = m_dsp.hlc | 1;
306306
307      LOG((0,1, " VBLANK"));
307      LOG((LOG_DISPL,1, " VBLANK"));
308308
309309      /* VSYNC is always within VBLANK */
310310      if (A2_VSYNC_HI(a66)) {
311311         if (A2_VSYNC_LO(m_dsp.a66)) {
312            LOG((0,1, " VSYNC/ (wake DVT)"));
312            LOG((LOG_DISPL,1, " VSYNC/ (wake DVT)"));
313313            /*
314314             * The display vertical task DVT is awakened once per field,
315315             * at the beginning of vertical retrace.
r26072r26073
317317            m_task_wakeup |= 1 << task_dvt;
318318            // sdl_update(HLC1024()); // FIXME: upade odd or even field
319319         } else {
320            LOG((0,1, " VSYNC"));
320            LOG((LOG_DISPL,1, " VSYNC"));
321321         }
322322      }
323323   } else {
r26072r26073
331331          * the word task can be awakened until the start of the
332332          * next field.
333333          */
334         LOG((0,1, " VBLANKPULSE (wake DHT)"));
334         LOG((LOG_DISPL,1, " VBLANKPULSE (wake DHT)"));
335335         m_dsp.dht_blocks = 0;
336336         m_dsp.dwt_blocks = 0;
337337         m_task_wakeup |= 1 << task_dht;
r26072r26073
343343      }
344344      if (A2_HBLANK_LO(a63) && A2_HBLANK_HI(m_dsp.a63)) {
345345         /* falling edge of a63 HBLANK starts unload */
346         LOG((0,1, " HBLANK\\ UNLOAD"));
346         LOG((LOG_DISPL,1, " HBLANK\\ UNLOAD"));
347347         m_unload_time = ALTO2_DISPLAY_BITTIME(m_dsp.halfclock ? 32 : 16);
348348         m_unload_word = 0;
349349#if   DEBUG_DISPLAY_TIMING
r26072r26073
363363   if (!m_dsp.dwt_blocks && !m_dsp.dht_blocks && FIFO_STOPWAKE_0() != 0) {
364364      if (!(m_task_wakeup & (1 << task_dwt))) {
365365         m_task_wakeup |= 1 << task_dwt;
366         LOG((0,1, " (wake DWT)"));
366         LOG((LOG_DISPL,1, " (wake DWT)"));
367367      }
368368   }
369369
370370   if (A2_SCANEND_HI(a63)) {
371      LOG((0,1, " SCANEND"));
371      LOG((LOG_DISPL,1, " SCANEND"));
372372      m_task_wakeup &= ~(1 << task_dwt);
373373   }
374374
375   LOG((0,1, "%s", (a63 & A63_HBLANK) ? " HBLANK": ""));
375   LOG((LOG_DISPL,1, "%s", (a63 & A63_HBLANK) ? " HBLANK": ""));
376376
377377   if (A2_HSYNC_HI(a63)) {
378378      if (A2_HSYNC_LO(m_dsp.a63)) {
379         LOG((0,1, " HSYNC/ (CLRBUF)"));
379         LOG((LOG_DISPL,1, " HSYNC/ (CLRBUF)"));
380380         /*
381381          * The hardware sets the buffer empty and clears the DWT block
382382          * flip-flop at the beginning of horizontal retrace for
r26072r26073
391391         /* stop the CPU from calling unload_word() */
392392         m_unload_time = -1;
393393      } else {
394         LOG((0,1, " HSYNC"));
394         LOG((LOG_DISPL,1, " HSYNC"));
395395      }
396396   } else if (A2_HSYNC_HI(m_dsp.a63)) {
397397      /*
r26072r26073
408408   }
409409
410410
411   LOG((0,1, " NEXT:%03o\n", next));
411   LOG((LOG_DISPL,1, " NEXT:%03o\n", next));
412412
413413   m_dsp.a63 = a63;
414414   m_dsp.a66 = a66;
r26072r26073
424424void alto2_cpu_device::f2_evenfield_1()
425425{
426426   UINT16 r = HLC1024() ^ 1;
427   LOG((0,2,"   evenfield branch on HLC1024 (%#o | %#o)\n", m_next2, r));
427   LOG((LOG_DISPL,2,"   evenfield branch on HLC1024 (%#o | %#o)\n", m_next2, r));
428428   m_next2 |= r;
429429}
430430
branches/alto2/src/emu/cpu/alto2/a2mrt.c
r26072r26073
1414{
1515   /* clear the wakeup for the memory refresh task */
1616   m_task_wakeup &= ~(1 << m_task);
17   LOG((0,2,"   BLOCK %s\n", task_name(m_task)));
17   LOG((LOG_MRT,2,"   BLOCK %s\n", task_name(m_task)));
1818}
1919
2020//! called by the CPU when MRT becomes active
branches/alto2/src/emu/cpu/alto2/alto2.h
r26072r26073
2020#ifndef   ALTO2_DEBUG
2121#define   ALTO2_DEBUG         1
2222#endif
23#if   ALTO2_DEBUG
24#include "debug/debugcon.h"
25#endif
2326
2427#define   USE_PRIO_F9318   0         //!< define to 1 to use the F9318 priority encoder code
2528#define   USE_ALU_74181   1         //!< define to 1 to use the SN74181 ALU code
r26072r26073
188191 * </PRE>
189192 */
190193typedef enum {
191   JKFF_0      = 0000,      //!< no inputs or outputs
192   JKFF_CLK   = 0001,      //!< clock signal
193   JKFF_J      = 0002,      //!< J input
194   JKFF_K      = 0004,      //!< K' input
195   JKFF_S      = 0010,      //!< S' input
196   JKFF_C      = 0020,      //!< C' input
197   JKFF_Q      = 0040,      //!< Q  output
198   JKFF_Q0      = 0100      //!< Q' output
194   JKFF_0,               //!< no inputs or outputs
195   JKFF_CLK   = (1 << 0),   //!< clock signal
196   JKFF_J      = (1 << 1),   //!< J input
197   JKFF_K      = (1 << 2),   //!< K' input
198   JKFF_S      = (1 << 3),   //!< S' input
199   JKFF_C      = (1 << 4),   //!< C' input
200   JKFF_Q      = (1 << 5),   //!< Q  output
201   JKFF_Q0      = (1 << 6)   //!< Q' output
199202}   jkff_t;
200203
201204class alto2_cpu_device :  public cpu_device
r26072r26073
242245
243246private:
244247#if   ALTO2_DEBUG
248   enum {
249      LOG_0,
250      LOG_CPU      = (1 <<  0),
251      LOG_EMU      = (1 <<  1),
252      LOG_T01      = (1 <<  2),
253      LOG_T02      = (1 <<  3),
254      LOG_T03      = (1 <<  4),
255      LOG_KSEC   = (1 <<  5),
256      LOG_T05      = (1 <<  6),
257      LOG_T06      = (1 <<  7),
258      LOG_ETH      = (1 <<  8),
259      LOG_MRT      = (1 <<  9),
260      LOG_DWT      = (1 << 10),
261      LOG_CURT   = (1 << 11),
262      LOG_DHT      = (1 << 12),
263      LOG_DVT      = (1 << 13),
264      LOG_PART   = (1 << 14),
265      LOG_KWD      = (1 << 15),
266      LOG_T17      = (1 << 16),
267      LOG_MEM      = (1 << 17),
268      LOG_RAM      = (1 << 18),
269      LOG_DRIVE   = (1 << 19),
270      LOG_DISK   = (1 << 20),
271      LOG_DISPL   = (1 << 21),
272      LOG_MOUSE   = (1 << 22),
273      LOG_ALL      = ((1 << 23) - 1)
274   };
275   int m_log_types;
276   int m_log_level;
245277   void logprintf(int type, int level, const char* format, ...);
246278#   define   LOG(x) logprintf x
247279#else
branches/alto2/src/mess/includes/alto2.h
r26072r26073
99
1010#include "emu.h"
1111#include "cpu/alto2/alto2.h"
12#include "machine/ram.h"
12//#include "machine/ram.h"
1313
1414class alto2_state : public driver_device
1515{

Previous 199869 Revisions Next


© 1997-2024 The MAME Team