Previous 199869 Revisions Next

r33919 Tuesday 16th December, 2014 at 01:08:59 UTC by Tarnyko
Do not check gl_lib() without OpenGL support

The gl_lib() function is not defined if we do not #USE_OPENGL,
as can be seen in osdsdl.h. Building with NO_OPENGL=1 then
breaks, unless we add this conditional #ifdef.

Signed-off-by: Tarnyko <tarnyko@tarnyko.net>
[src/emu/cpu/pps4]pps4.c pps4.h
[src/mess/drivers]tandy12.c
[src/mess/layout]tandy12.lay
[src/osd/sdl]draw13.c

trunk/src/emu/cpu/pps4/pps4.c
r242430r242431
116116inline UINT8 pps4_device::ROP()
117117{
118118    const UINT8 op = m_direct->read_decrypted_byte(m_P & 0xFFF);
119    m_Ip = m_I1;         // save previous opcode
119    m_Ip = m_I;         // save previous opcode
120120    m_P = (m_P + 1) & 0xFFF;
121121    m_icount -= 1;
122122    return op;
r242430r242431
158158
159159/**
160160 * @brief pps4_device::iAD Add
161 * HEX   BINARY    CYCLES  MNEMONIC
162 * ----------------------------------
163 * 0x0b  0000 1011      1  AD
161 * OPCODE     cycles  mnemonic
162 * -----------------------------
163 * 0000 1011  1 cyc   AD
164164 *
165165 * Symbolic equation
166 * ----------------------------------
166 * -----------------------------
167167 * C, A <- A + M
168168 *
169169 * The result of the binary addition of contents of accumulator
r242430r242431
180180
181181/**
182182 * @brief pps4_device::iADC Add with carry-in
183 * HEX   BINARY    CYCLES  MNEMONIC
184 * ----------------------------------
185 * 0x0a  0000 1010      1  ADC
183 * OPCODE     cycles  mnemonic
184 * -----------------------------
185 * 0000 1010  1 cyc   ADC
186186 *
187187 * Symbolic equation
188 * ----------------------------------
188 * -----------------------------
189189 * C, A <- A + M + C
190190 *
191191 * Same as AD except the C flip-flop serves as a carry-in
r242430r242431
200200
201201/**
202202 * @brief pps4_device::iADSK Add and skip if carry-out
203 * HEX   BINARY    CYCLES  MNEMONIC
204 * ----------------------------------
205 * 0x09  0000 1001      1  ADSK
203 * OPCODE     cycles  mnemonic
204 * -----------------------------
205 * 0000 1001  1 cyc   ADSK
206206 *
207207 * Symbolic equation
208 * ----------------------------------
208 * -----------------------------
209209 * C, A <- A + M
210210 * Skip if C = 1
211211 *
r242430r242431
222222
223223/**
224224 * @brief pps4_device::iADCSK Add with carry-in and skip if carry-out
225 * HEX   BINARY    CYCLES  MNEMONIC
226 * ----------------------------------
227 * 0x08  0000 1000      1  ADCSK
225 * OPCODE     cycles  mnemonic
226 * -----------------------------
227 * 0000 1000  1 cyc   ADCSK
228228 *
229229 * Symbolic equation
230 * ----------------------------------
230 * -----------------------------
231231 * C, A <- A + M + C
232232 * Skip if C = 1
233233 *
r242430r242431
244244
245245/**
246246 * @brief pps4_device::iADI Add immediate
247 * HEX   BINARY    CYCLES  MNEMONIC
248 * ----------------------------------
249 * 0x6*  0110 xxxx      1  ADI x
247 * OPCODE     cycles  mnemonic
248 * -----------------------------
249 * 0110 xxxx  1 cyc   ADI x
250250 *
251251 * Symbolic equation
252 * ----------------------------------
252 * -----------------------------
253253 * A <- A + [I(4:1)]
254254 *
255255 * The result of the binary addition of contents of
r242430r242431
265265 */
266266void pps4_device::iADI()
267267{
268    const UINT8 imm = ~m_I1 & 15;
268    const UINT8 imm = ~m_I & 15;
269269    m_A = m_A + imm;
270270    m_Skip = (m_A >> 4) & 1;
271271    m_A = m_A & 15;
r242430r242431
273273
274274/**
275275 * @brief pps4_device::iDC Decimal correction
276 * HEX   BINARY    CYCLES  MNEMONIC
277 * ----------------------------------
278 * 0x65  0110 0101      1  DC
276 * OPCODE     cycles  mnemonic
277 * -----------------------------
278 * 0110 0101  1 cyc   DC
279279 *
280280 * Symbolic equation
281 * ----------------------------------
281 * -----------------------------
282282 * A <- A + 1010
283283 *
284284 * Decimal correction of accumulator.
r242430r242431
293293
294294/**
295295 * @brief pps4_device::iAND Logical AND
296 * HEX   BINARY    CYCLES  MNEMONIC
297 * ----------------------------------
298 * 0x0d  0000 1101      1  AND
296 * OPCODE     cycles  mnemonic
297 * -----------------------------
298 * 0000 1101  1 cyc   AND
299299 *
300300 * Symbolic equation
301 * ----------------------------------
301 * -----------------------------
302302 * A <- A & M
303303 *
304304 * The result of logical AND of accumulator and
r242430r242431
312312
313313/**
314314 * @brief pps4_device::iOR Logical OR
315 * HEX   BINARY    CYCLES  MNEMONIC
316 * ----------------------------------
317 * 0x0f  0000 1111      1  OR
315 * OPCODE     cycles  mnemonic
316 * -----------------------------
317 * 0000 1111  1 cyc   OR
318318 *
319319 * Symbolic equation
320 * ----------------------------------
320 * -----------------------------
321321 * A <- A | M
322322 *
323323 * The result of logical OR of accumulator and
r242430r242431
331331
332332/**
333333 * @brief pps4_device::iEOR Logical exclusive-OR
334 * HEX   BINARY    CYCLES  MNEMONIC
335 * ----------------------------------
336 * 0x0c  0000 1100      1  EOR
334 * OPCODE     cycles  mnemonic
335 * -----------------------------
336 * 0000 1100  1 cyc   EOR
337337 *
338338 * Symbolic equation
339 * ----------------------------------
339 * -----------------------------
340340 * A <- A ^ M
341341 *
342342 * The result of logical exclusive-OR of
r242430r242431
351351
352352/**
353353 * @brief pps4_device::iCOMP Complement
354 * HEX   BINARY    CYCLES  MNEMONIC
355 * ----------------------------------
356 * 0x0e  0000 1110      1  COMP
354 * OPCODE     cycles  mnemonic
355 * -----------------------------
356 * 0000 1110  1 cyc   COMP
357357 *
358358 * Symbolic equation
359 * ----------------------------------
359 * -----------------------------
360360 * A <- ~A
361361 *
362362 * Each bit of the accumulator is logically
r242430r242431
369369
370370/**
371371 * @brief pps4_device::iSC Set carry flip-flop
372 * HEX   BINARY    CYCLES  MNEMONIC
373 * ----------------------------------
374 * 0x20  0010 0000      1  SC
372 * OPCODE     cycles  mnemonic
373 * -----------------------------
374 * 0010 0000  1 cyc   SC
375375 *
376376 * Symbolic equation
377 * ----------------------------------
377 * -----------------------------
378378 * C <- 1
379379 *
380380 * The C flip-flop is set to 1.
r242430r242431
386386
387387/**
388388 * @brief pps4_device::iRC Reset carry flip-flop
389 * HEX   BINARY    CYCLES  MNEMONIC
390 * ----------------------------------
391 * 0x28  0010 0100      1  RC
389 * OPCODE     cycles  mnemonic
390 * -----------------------------
391 * 0010 0100  1 cyc   RC
392392 *
393393 * Symbolic equation
394 * ----------------------------------
394 * -----------------------------
395395 * C <- 0
396396 *
397397 * The C flip-flop is set to 0.
r242430r242431
403403
404404/**
405405 * @brief pps4_device::iSF1 Set flip-flop FF1
406 * HEX   BINARY    CYCLES  MNEMONIC
407 * ----------------------------------
408 * 0x22  0010 0010      1  SF1
406 * OPCODE     cycles  mnemonic
407 * -----------------------------
408 * 0010 0010  1 cyc   SF1
409409 *
410410 * Symbolic equation
411 * ----------------------------------
411 * -----------------------------
412412 * FF1 <- 1
413413 *
414414 * The Flip-flop FF1 is set to 1.
r242430r242431
420420
421421/**
422422 * @brief pps4_device::iRF1 Reset flip-flop FF1
423 * HEX   BINARY    CYCLES  MNEMONIC
424 * ----------------------------------
425 * 0x26  0010 0110      1  RF1
423 * OPCODE     cycles  mnemonic
424 * -----------------------------
425 * 0010 0110  1 cyc   RF1
426426 *
427427 * Symbolic equation
428 * ----------------------------------
428 * -----------------------------
429429 * FF1 <- 0
430430 *
431431 * The Flip-flop FF1 is set to 0.
r242430r242431
437437
438438/**
439439 * @brief pps4_device::iSF2 Set flip-flop FF2
440 * HEX   BINARY    CYCLES  MNEMONIC
441 * ----------------------------------
442 * 0x21  0010 0001      1  SF2
440 * OPCODE     cycles  mnemonic
441 * -----------------------------
442 * 0010 0001  1 cyc   SF2
443443 *
444444 * Symbolic equation
445 * ----------------------------------
445 * -----------------------------
446446 * FF2 <- 1
447447 *
448448 * The Flip-flop FF2 is set to 1.
r242430r242431
454454
455455/**
456456 * @brief pps4_device::iRF2 Reset flip-flop FF2
457 * HEX   BINARY    CYCLES  MNEMONIC
458 * ----------------------------------
459 * 0x25  0010 0101      1  RF2
457 * OPCODE     cycles  mnemonic
458 * -----------------------------
459 * 0010 0101  1 cyc   RF2
460460 *
461461 * Symbolic equation
462 * ----------------------------------
462 * -----------------------------
463463 * FF2 <- 0
464464 *
465465 * The flip-flop FF2 is set to 0.
r242430r242431
471471
472472/**
473473 * @brief pps4_device::iLD Load accumulator from memory
474 * HEX   BINARY    CYCLES  MNEMONIC
475 * ----------------------------------
476 * 0x30+ 0011 0xxx      1  LD x
474 * OPCODE     cycles  mnemonic
475 * -----------------------------
476 * 0011 0xxx  1 cyc   LD x
477477 *
478478 * Symbolic equation
479 * ----------------------------------
479 * -----------------------------
480480 * A <- M
481481 * B(7:5) <- B(7:5) ^ [I(3:1)]
482482 *
r242430r242431
490490 */
491491void pps4_device::iLD()
492492{
493    const UINT16 i3c = ~m_I1 & 7;
493    const UINT16 i3c = ~m_I & 7;
494494    m_A = M();
495495    m_B = m_B ^ (i3c << 4);
496496}
497497
498498/**
499499 * @brief pps4_device::iEX Exchange accumulator and memory
500 * HEX   BINARY    CYCLES  MNEMONIC
501 * ----------------------------------
502 * 0x38+ 0011 1xxx      1  EX x
500 * OPCODE     cycles  mnemonic
501 * -----------------------------
502 * 0011 1xxx  1 cyc   EX x
503503 *
504504 * Symbolic equation
505 * ----------------------------------
505 * -----------------------------
506506 * A <-> M
507507 * B(7:5) <- B(7:5) ^ [I(3:1)]
508508 *
r242430r242431
513513 */
514514void pps4_device::iEX()
515515{
516    const UINT16 i3c = ~m_I1 & 7;
516    const UINT16 i3c = ~m_I & 7;
517517    const UINT8 mem = M();
518518    W(m_A);
519519    m_A = mem;
r242430r242431
522522
523523/**
524524 * @brief pps4_device::iEXD Exchange accumulator and memory and decrement BL
525 * HEX   BINARY    CYCLES  MNEMONIC
526 * ----------------------------------
527 * 0x28+ 0010 1xxx      1  EXD x
525 * OPCODE     cycles  mnemonic
526 * -----------------------------
527 * 0010 1xxx  1 cyc   EXD x
528528 *
529529 * Symbolic equation
530 * ----------------------------------
530 * -----------------------------
531531 * A <-> M
532532 * B(7:5) <- B(7:5) ^ [I(3:1)]
533533 * BL <- BL - 1
r242430r242431
542542 */
543543void pps4_device::iEXD()
544544{
545    const UINT8 i3c = ~m_I1 & 7;
545    const UINT8 i3c = ~m_I & 7;
546546    const UINT8 mem = M();
547547    UINT8 bl = m_B & 15;
548548    W(m_A);
r242430r242431
560560
561561/**
562562 * @brief pps4_device::iLDI Load accumualtor immediate
563 * HEX   BINARY    CYCLES  MNEMONIC
564 * ----------------------------------
565 * 0x7*  0111 xxxx      1  LDI x
563 * OPCODE     cycles  mnemonic
564 * -----------------------------
565 * 0111 xxxx  1 cyc   LDI x
566566 *
567567 * Symbolic equation
568 * ----------------------------------
568 * -----------------------------
569569 * A <- [I(4:1)]
570570 *
571571 * The 4-bit contents, immediate field I(4:1),
r242430r242431
581581{
582582    // previous LDI instruction?
583583    if (0x70 == (m_Ip & 0xf0)) {
584        LOG(("%s: skip prev:%02x op:%02x\n", __FUNCTION__, m_Ip, m_I1));
584        LOG(("%s: skip prev:%02x op:%02x\n", __FUNCTION__, m_Ip, m_I));
585585        return;
586586    }
587    m_A = ~m_I1 & 15;
587    m_A = ~m_I & 15;
588588}
589589
590590/**
591591 * @brief pps4_device::iLAX
592 * HEX   BINARY    CYCLES  MNEMONIC
593 * ----------------------------------
594 * 0x12  0001 0010      1  LAX
592 * OPCODE     cycles  mnemonic
593 * -----------------------------
594 * 0001 0010  1 cyc   LAX
595595 *
596596 * Symbolic equation
597 * ----------------------------------
597 * -----------------------------
598598 * A <- X
599599 *
600600 * The 4-bit contents of the X register are
r242430r242431
607607
608608/**
609609 * @brief pps4_device::iLXA
610 * HEX   BINARY    CYCLES  MNEMONIC
611 * ----------------------------------
612 * 0x1b  0001 1011      1  LXA
610 * OPCODE     cycles  mnemonic
611 * -----------------------------
612 * 0001 1011  1 cyc   LXA
613613 *
614614 * Symbolic equation
615 * ----------------------------------
615 * -----------------------------
616616 * X <- A
617617 *
618618 * The contents of the accumulator are
r242430r242431
625625
626626/**
627627 * @brief pps4_device::iLABL
628 * HEX   BINARY    CYCLES  MNEMONIC
629 * ----------------------------------
630 * 0x11  0001 0001      1  LABL
628 * OPCODE     cycles  mnemonic
629 * -----------------------------
630 * 0001 0001  1 cyc   LABL
631631 *
632632 * Symbolic equation
633 * ----------------------------------
633 * -----------------------------
634634 * A <- BL
635635 *
636636 * The contents of BL register are
r242430r242431
643643
644644/**
645645 * @brief pps4_device::iLBMX
646 * HEX   BINARY    CYCLES  MNEMONIC
647 * ----------------------------------
648 * 0x10  0001 0000      1  LBMX
646 * OPCODE     cycles  mnemonic
647 * -----------------------------
648 * 0001 0000  1 cyc   LBMX
649649 *
650650 * Symbolic equation
651 * ----------------------------------
651 * -----------------------------
652652 * BM <- X
653653 *
654654 * The contents of X register are
r242430r242431
661661
662662/**
663663 * @brief pps4_device::iLBUA
664 * HEX   BINARY    CYCLES  MNEMONIC
665 * ----------------------------------
666 * 0x08  0000 0100      1  LBUA
664 * OPCODE     cycles  mnemonic
665 * -----------------------------
666 * 0000 0100  1 cyc   LBUA
667667 *
668668 * Symbolic equation
669 * ----------------------------------
669 * -----------------------------
670670 * BU <- A
671671 * A <- M
672672 *
r242430r242431
682682
683683/**
684684 * @brief pps4_device::iXABL
685 * HEX   BINARY    CYCLES  MNEMONIC
686 * ----------------------------------
687 * 0x19  0001 1001      1  XABL
685 * OPCODE     cycles  mnemonic
686 * -----------------------------
687 * 0001 1001  1 cyc   XABL
688688 *
689689 * Symbolic equation
690 * ----------------------------------
690 * -----------------------------
691691 * A <-> BL
692692 *
693693 * The contents of accumulator and BL register
r242430r242431
703703
704704/**
705705 * @brief pps4_device::iXMBX
706 * HEX   BINARY    CYCLES  MNEMONIC
707 * ----------------------------------
708 * 0x18  0001 1000      1  XMBX
706 * OPCODE     cycles  mnemonic
707 * -----------------------------
708 * 0001 1000  1 cyc   XMBX
709709 *
710710 * Symbolic equation
711 * ----------------------------------
711 * -----------------------------
712712 * X <-> BM
713713 *
714714 * The contents of accumulator and BL register
r242430r242431
724724
725725/**
726726 * @brief pps4_device::iXAX
727 * HEX   BINARY    CYCLES  MNEMONIC
728 * ----------------------------------
729 * 0x1a  0001 1010      1  XAX
727 * OPCODE     cycles  mnemonic
728 * -----------------------------
729 * 0001 1010  1 cyc   XAX
730730 *
731731 * Symbolic equation
732 * ----------------------------------
732 * -----------------------------
733733 * A <-> X
734734 *
735735 * The contents of accumulator and X register
r242430r242431
745745
746746/**
747747 * @brief pps4_device::iXS
748 * HEX   BINARY    CYCLES  MNEMONIC
749 * ----------------------------------
750 * 0x06  0000 0110      1  XS
748 * OPCODE     cycles  mnemonic
749 * -----------------------------
750 * 0000 0110  1 cyc   XS
751751 *
752752 * Symbolic equation
753 * ----------------------------------
753 * -----------------------------
754754 * SA <-> SB
755755 *
756756 * The 12-bit contents of SA and SB register
r242430r242431
766766
767767/**
768768 * @brief pps4_device::iCYS
769 * HEX   BINARY    CYCLES  MNEMONIC
770 * ----------------------------------
771 * 0x6f  0110 1111      1   CYS
769 * OPCODE     cycles  mnemonic
770 * -----------------------------
771 * 0110 1111  1 cyc    CYS
772772 *
773773 * Symbolic equation
774 * ----------------------------------
774 * -----------------------------
775775 * A <- SA(4:1)
776776 * SA(4:1) <- SA(8:5)
777777 * SA(8:5) <- SA(12:9)
r242430r242431
793793
794794/**
795795 * @brief pps4_device::iLB Load B indirect
796 * HEX   BINARY    CYCLES  MNEMONIC
797 * ----------------------------------
798 * 0xc*  1100 xxxx      2   LB x
796 * OPCODE     cycles  mnemonic
797 * -----------------------------
798 * 1100 xxxx  2 cyc    LB x
799799 *
800800 * Symbolic equation
801 * ----------------------------------
801 * -----------------------------
802802 * SB <- SA, SA <- P
803803 * P(12:5) <- 0000 1100
804804 * P(4:1) <- I(4:1)
r242430r242431
828828{
829829    // previous LB or LBL instruction?
830830    if (0xc0 == (m_Ip & 0xf0) || 0x00 == m_Ip) {
831        LOG(("%s: skip prev:%02x op:%02x\n", __FUNCTION__, m_Ip, m_I1));
831        LOG(("%s: skip prev:%02x op:%02x\n", __FUNCTION__, m_Ip, m_I));
832832        return;
833833    }
834834    m_SB = m_SA;
835835    m_SA = (m_P + 1) & 0xFFF;
836    m_P = (3 << 6) | (m_I1 & 15);
836    m_P = (3 << 6) | (m_I & 15);
837837    m_B = ~ARG() & 255;
838838    m_P = m_SA;
839839    // swap SA and SB
r242430r242431
844844
845845/**
846846 * @brief pps4_device::iLBL Load B long
847 * HEX   BINARY    CYCLES  MNEMONIC
848 * ----------------------------------
849 * 0x00  0000 0000      2   LBL
847 * OPCODE     cycles  mnemonic
848 * -----------------------------
849 * 0000 0000  2 cyc    LBL
850850 *
851851 * Symbolic equation
852 * ----------------------------------
852 * -----------------------------
853853 * BU <- 0000
854854 * B(8:1) <- [I2(8:1)]
855855 *
r242430r242431
870870    m_I2 = ARG();
871871    // previous LB or LBL instruction?
872872    if (0xc0 == (m_Ip & 0xf0) || 0x00 == m_Ip) {
873        LOG(("%s: skip prev:%02x op:%02x\n", __FUNCTION__, m_Ip, m_I1));
873        LOG(("%s: skip prev:%02x op:%02x\n", __FUNCTION__, m_Ip, m_I));
874874        return;
875875    }
876876    m_B = ~m_I2 & 255;  // Note: immediate is 1's complement
r242430r242431
878878
879879/**
880880 * @brief pps4_device::INCB Increment B lower, skip if 0000
881 * HEX   BINARY    CYCLES  MNEMONIC
882 * ----------------------------------
883 * 0x17  0001 0111      1   INCB
881 * OPCODE     cycles  mnemonic
882 * -----------------------------
883 * 0001 0111  1 cyc    INCB
884884 *
885885 * Symbolic equation
886 * ----------------------------------
886 * -----------------------------
887887 * BL <- BL + 1
888888 * Skip on BL = 0000
889889 *
r242430r242431
904904
905905/**
906906 * @brief pps4_device::iDECB Decrement B lower, skip if 1111
907 * HEX   BINARY    CYCLES  MNEMONIC
908 * ----------------------------------
909 * 0x1f  0001 1111      1   DECB
907 * OPCODE     cycles  mnemonic
908 * -----------------------------
909 * 0001 1111  1 cyc    DECB
910910 *
911911 * Symbolic equation
912 * ----------------------------------
912 * -----------------------------
913913 * BL <- BL - 1
914914 * Skip on BL = 1111
915915 *
r242430r242431
930930
931931/**
932932 * @brief pps4_device::iT Transfer
933 * HEX   BINARY    CYCLES  MNEMONIC
934 * ----------------------------------
935 * 0x80+ 10xx xxxx      1   T *xx
933 * OPCODE     cycles  mnemonic
934 * -----------------------------
935 * 10xx xxxx  1 cyc    T *xx
936936 *
937937 * Symbolic equation
938 * ----------------------------------
938 * -----------------------------
939939 * P(6:1) <- I(6:1)
940940 *
941941 * An unconditional transfer to a ROM word on the current
r242430r242431
945945 */
946946void pps4_device::iT()
947947{
948    const UINT16 p = (m_P & ~63) | (m_I1 & 63);
949    LOG(("%s: P=%03x I=%02x -> P=%03x\n", __FUNCTION__, m_P, m_I1, p));
948    const UINT16 p = (m_P & ~63) | (m_I & 63);
949    LOG(("%s: P=%03x I=%02x -> P=%03x\n", __FUNCTION__, m_P, m_I, p));
950950    m_P = p;
951951}
952952
953953/**
954954 * @brief pps4_device::iTM Transfer and mark indirect
955 * HEX   BINARY    CYCLES  MNEMONIC
956 * ----------------------------------
957 * 0xc0+ 11xx xxxx      2   TM x
958 *       yyyy yyyy  from page 3
955 * OPCODE     cycles  mnemonic
956 * -----------------------------
957 * 11xx xxxx  2 cyc    TM x
958 * yyyy yyyy  from page 3
959959 *
960960 * Symbolic equation
961 * ----------------------------------
961 * -----------------------------
962962 * SB <- SA, SA <- P
963963 * P(12:7) <- 000011
964964 * P(6:1) <- I1(6:1)
r242430r242431
979979{
980980    m_SB = m_SA;
981981    m_SA = m_P;
982    m_P = (3 << 6) | (m_I1 & 63);
982    m_P = (3 << 6) | (m_I & 63);
983983    m_I2 = ARG();
984984    m_P = (1 << 8) | m_I2;
985985}
986986
987987/**
988988 * @brief pps4_device::iTL Transfer long
989 * HEX   BINARY    CYCLES  MNEMONIC
990 * ----------------------------------
991 * 0x5x  0101 xxxx      2   TL xyy
992 *       yyyy yyyy
989 * OPCODE     cycles  mnemonic
990 * -----------------------------
991 * 0101 xxxx  2 cyc    TL xyy
992 * yyyy yyyy
993993 *
994994 * Symbolic equation
995 * ----------------------------------
995 * -----------------------------
996996 * P(12:9) <- I1(4:1)
997997 * P(8:1) <- I2(8:1)
998998 *
r242430r242431
10041004void pps4_device::iTL()
10051005{
10061006    m_I2 = ARG();
1007    m_P = ((m_I1 & 15) << 8) | m_I2;
1007    m_P = ((m_I & 15) << 8) | m_I2;
10081008}
10091009
10101010/**
10111011 * @brief pps4_device::iTML Transfer and mark long
1012 * HEX   BINARY    CYCLES  MNEMONIC
1013 * ----------------------------------
1014 * 0x0*  0000 xxxx      2   TML xyy
1015 *       yyyy yyyy
1012 * OPCODE     cycles  mnemonic
1013 * -----------------------------
1014 * 0101 xxxx  2 cyc    TML xyy
1015 * yyyy yyyy
10161016 *
10171017 * Symbolic equation
1018 * ----------------------------------
1018 * -----------------------------
10191019 * SB <- SA, SA <- P
10201020 * P(12:9) <- I1(4:1)
10211021 * P(8:1) <- I2(8:1)
r242430r242431
10311031    m_I2 = ARG();
10321032    m_SB = m_SA;
10331033    m_SA = m_P;
1034    m_P = ((m_I1 & 15) << 8) | m_I2;
1034    m_P = ((m_I & 15) << 8) | m_I2;
10351035}
10361036
10371037/**
10381038 * @brief pps4_device::iSKC Skip on carry flip-flop
1039 * HEX   BINARY    CYCLES  MNEMONIC
1040 * ----------------------------------
1041 * 0x15  0001 0101      1   SKC
1039 * OPCODE     cycles  mnemonic
1040 * -----------------------------
1041 * 0001 0101  1 cyc    SKC
10421042 *
10431043 * Symbolic equation
1044 * ----------------------------------
1044 * -----------------------------
10451045 * Skip if C = 1
10461046 *
10471047 * The next ROM word will be ignored if C flip-flop is 1.
r242430r242431
10531053
10541054/**
10551055 * @brief pps4_device::iSKC Skip on carry flip-flop
1056 * HEX   BINARY    CYCLES  MNEMONIC
1057 * ----------------------------------
1058 * 0x1e  0001 1110      1   SKZ
1056 * OPCODE     cycles  mnemonic
1057 * -----------------------------
1058 * 0001 1110  1 cyc    SKZ
10591059 *
10601060 * Symbolic equation
1061 * ----------------------------------
1061 * -----------------------------
10621062 * Skip if A = 0
10631063 *
10641064 * The next ROM word will be ignored if C flip-flop is 1.
r242430r242431
10701070
10711071/**
10721072 * @brief pps4_device::iSKBI Skip if BL equal to immediate
1073 * HEX   BINARY    CYCLES  MNEMONIC
1074 * ----------------------------------
1075 * 0x4*  0100 xxxx      1   SKBI x
1073 * OPCODE     cycles  mnemonic
1074 * -----------------------------
1075 * 0100 xxxx  1 cyc    SKBI x
10761076 *
10771077 * Symbolic equation
1078 * ----------------------------------
1078 * -----------------------------
10791079 * Skip if BL = I(4:1)
10801080 *
10811081 * The next ROM word will be ignored if the least significant
r242430r242431
10841084 */
10851085void pps4_device::iSKBI()
10861086{
1087    const UINT8 i4 = m_I1 & 15;
1087    const UINT8 i4 = m_I & 15;
10881088    const UINT8 bl = m_B & 15;
10891089    m_Skip = bl == i4 ? 1 : 0;
10901090}
10911091
10921092/**
10931093 * @brief pps4_device::iSKF1 Skip if FF1 equals 1
1094 * HEX   BINARY    CYCLES  MNEMONIC
1095 * ----------------------------------
1096 * 0x16  0001 0110      1   SKF1
1094 * OPCODE     cycles  mnemonic
1095 * -----------------------------
1096 * 0001 0110  1 cyc    SKF1
10971097 *
10981098 * Symbolic equation
1099 * ----------------------------------
1099 * -----------------------------
11001100 * Skip if FF1 = 1
11011101 */
11021102void pps4_device::iSKF1()
r242430r242431
11061106
11071107/**
11081108 * @brief pps4_device::iSKF2 Skip if FF2 equals 1
1109 * HEX   BINARY    CYCLES  MNEMONIC
1110 * ----------------------------------
1111 * 0x14  0001 0100      1   SKF2
1109 * OPCODE     cycles  mnemonic
1110 * -----------------------------
1111 * 0001 0100  1 cyc    SKF2
11121112 *
11131113 * Symbolic equation
1114 * ----------------------------------
1114 * -----------------------------
11151115 * Skip if FF2 = 1
11161116 */
11171117void pps4_device::iSKF2()
r242430r242431
11211121
11221122/**
11231123 * @brief pps4_device::iRTN Return
1124 * HEX   BINARY    CYCLES  MNEMONIC
1125 * ----------------------------------
1126 * 0x05  0000 0101      1   RTN
1124 * OPCODE     cycles  mnemonic
1125 * -----------------------------
1126 * 0000 0101  1 cyc    RTN
11271127 *
11281128 * Symbolic equation
1129 * ----------------------------------
1129 * -----------------------------
11301130 * P <- SA, SA <-> SB
11311131 *
11321132 * This instruction executes a return from subroutine
r242430r242431
11431143}
11441144
11451145/**
1146 * @brief pps4_device::iRTNSK Return and skip
1147 * HEX   BINARY    CYCLES  MNEMONIC
1148 * ----------------------------------
1149 * 0x07  0000 0111      1   RTNSK
1146 * @brief pps4_device::iRTN Return
1147 * OPCODE     cycles  mnemonic
1148 * -----------------------------
1149 * 0000 0111  1 cyc    RTNSK
11501150 *
11511151 * Symbolic equation
1152 * ----------------------------------
1152 * -----------------------------
11531153 * P <- SA, SA <-> SB
11541154 * P <- P + 1
11551155 *
r242430r242431
11671167}
11681168
11691169/**
1170 * @brief pps4_device::IOL Input / Output Long
1171 * HEX   BINARY    CYCLES  MNEMONIC
1172 * ----------------------------------
1173 * 0x1c  0001 1100      2   IOL yy
1174 *       yyyy yyyy
1170 * @brief pps4_device::IOL
1171 * OPCODE     cycles  mnemonic
1172 * -----------------------------
1173 * 0001 1100  2 cyc    IOL yy
1174 * yyyy yyyy
11751175 *
11761176 * Symbolic equation
1177 * ----------------------------------
1177 * -----------------------------
11781178 * ~A -> Data Bus
11791179 * A <- ~Data Bus
11801180 * I2 -> I/O device
r242430r242431
11891189 * device is transferred to the accumulator inverted.
11901190 *
11911191 * FIXME: Is BL on the I/D:8-5 lines during the I/O cycle?
1192 * The ROM, RAM, I/O chips A17xx suggest this, because they
1193 * expect the value of BL to address one of the sixteen
1194 * input/output lines.
11951192 */
11961193void pps4_device::iIOL()
11971194{
r242430r242431
12061203
12071204/**
12081205 * @brief pps4_device::iDIA Discrete input group A
1209 * HEX   BINARY    CYCLES  MNEMONIC
1210 * ----------------------------------
1211 * 0x27  0010 0111      1   DIA
1206 * OPCODE     cycles  mnemonic
1207 * -----------------------------
1208 * 0010 0111  1 cyc    DIA
12121209 *
12131210 * Symbolic equation
1214 * ----------------------------------
1211 * -----------------------------
12151212 * A <- DIA
12161213 *
12171214 * Data at the inputs to discrete group A is
r242430r242431
12241221
12251222/**
12261223 * @brief pps4_device::iDIB Discrete input group B
1227 * HEX   BINARY    CYCLES  MNEMONIC
1228 * ----------------------------------
1229 * 0x23  0010 0011      1   DIB
1224 * OPCODE     cycles  mnemonic
1225 * -----------------------------
1226 * 0010 0011  1 cyc    DIB
12301227 *
12311228 * Symbolic equation
1232 * ----------------------------------
1229 * -----------------------------
12331230 * A <- DIB
12341231 *
12351232 * Data at the inputs to discrete group B is
r242430r242431
12421239
12431240/**
12441241 * @brief pps4_device::iDOA Discrete output
1245 * HEX   BINARY    CYCLES  MNEMONIC
1246 * ----------------------------------
1247 * 0x1d  0001 1101      1   DOA
1242 * OPCODE     cycles  mnemonic
1243 * -----------------------------
1244 * 0001 1101  1 cyc    DOA
12481245 *
12491246 * Symbolic equation
1250 * ----------------------------------
1247 * -----------------------------
12511248 * DOA <- A
12521249 *
12531250 * The contents of the accumulator are transferred
r242430r242431
12601257
12611258/**
12621259 * @brief pps4_device::iSAG Special address generation
1263 * HEX   BINARY    CYCLES  MNEMONIC
1264 * ----------------------------------
1265 * 0x2d  0001 0011      1   SAG
1260 * OPCODE     cycles  mnemonic
1261 * -----------------------------
1262 * 0010 1101  1 cyc    SAG
12661263 *
12671264 * Symbolic equation
1268 * ----------------------------------
1265 * -----------------------------
12691266 * A/B Bus (12:5) <- 0000 0000
12701267 * A/B Bus (4:1) <- BL(4:1)
12711268 * Contents of B remains unchanged
r242430r242431
12861283***************************************************************************/
12871284void pps4_device::execute_one()
12881285{
1289    m_I1 = ROP();
1286    m_I = ROP();
12901287    if (m_Skip) {
12911288        m_Skip = 0;
1292        LOG(("%s: skip op:%02x\n", __FUNCTION__, m_I1));
1289        LOG(("%s: skip op:%02x\n", __FUNCTION__, m_I));
12931290        return;
12941291    }
1295    switch (m_I1) {
1292    switch (m_I) {
12961293    case 0x00:
12971294        iLBL();
12981295        break;
r242430r242431
15311528    save_item(NAME(m_C));
15321529    save_item(NAME(m_FF1));
15331530    save_item(NAME(m_FF2));
1534    save_item(NAME(m_I1));
1531    save_item(NAME(m_I));
15351532    save_item(NAME(m_I2));
15361533    save_item(NAME(m_Ip));
15371534
15381535    state_add( PPS4_PC, "PC", m_P ).mask(0xFFF).formatstr("%03X");
1539    state_add( PPS4_A, "A",  m_A ).formatstr("%01X");
1540    state_add( PPS4_X, "X",  m_X ).formatstr("%01X");
1536    state_add( PPS4_A,  "A",  m_A ).formatstr("%01X");
1537    state_add( PPS4_X,  "X",  m_X ).formatstr("%01X");
15411538    state_add( PPS4_SA, "SA", m_SA ).formatstr("%03X");
15421539    state_add( PPS4_SB, "SB", m_SB ).formatstr("%03X");
1543    state_add( PPS4_Skip, "Skip",  m_Skip ).formatstr("%01X");
1544    state_add( PPS4_SAG, "SAG",  m_SAG ).formatstr("%03X");
1545    state_add( PPS4_B, "B",  m_B ).formatstr("%03X");
1546    state_add( PPS4_I1, "I1",  m_I1 ).formatstr("%02X").noshow();
1547    state_add( PPS4_I2, "I2",  m_I2 ).formatstr("%02X").noshow();
1548    state_add( PPS4_Ip, "Ip",  m_Ip ).formatstr("%02X").noshow();
1549    state_add( STATE_GENPC,    "GENPC", m_P ).noshow();
1540    state_add( PPS4_Skip,  "Skip",  m_Skip ).formatstr("%01X");
1541    state_add( PPS4_SAG,  "SAG",  m_SAG ).formatstr("%03X");
1542    state_add( PPS4_B,  "B",  m_B ).formatstr("%03X");
1543    state_add( PPS4_I2,  "I",  m_I ).formatstr("%02X").noshow();
1544    state_add( PPS4_I2,  "I2",  m_I2 ).formatstr("%02X").noshow();
1545    state_add( PPS4_Ip,  "Ip",  m_Ip ).formatstr("%02X").noshow();
1546    state_add( STATE_GENPC, "GENPC", m_P ).noshow();
15501547    state_add( STATE_GENFLAGS, "GENFLAGS", m_C).formatstr("%3s").noshow();
15511548
15521549    m_icountptr = &m_icount;
r242430r242431
15811578    m_C = 0;        // Carry flip-flop
15821579    m_FF1 = 0;      // Flip-flop 1
15831580    m_FF2 = 0;      // Flip-flop 2
1584    m_I1 = 0;        // Most recent instruction I(8:1)
1581    m_I = 0;        // Most recent instruction I(8:1)
15851582    m_I2 = 0;       // Most recent parameter I2(8:1)
15861583    m_Ip = 0;       // Previous instruction I(8:1)
15871584}
trunk/src/emu/cpu/pps4/pps4.h
r242430r242431
1717    PPS4_B,
1818    PPS4_Skip,
1919    PPS4_SAG,
20    PPS4_I1,
2120    PPS4_I2,
2221    PPS4_Ip,
2322    PPS4_GENPC = STATE_GENPC,
r242430r242431
9190    UINT8   m_C;        //!< Carry flip-flop
9291    UINT8   m_FF1;      //!< Flip-flop 1
9392    UINT8   m_FF2;      //!< Flip-flop 2
94    UINT8   m_I1;        //!< Most recent instruction I(8:1)
93    UINT8   m_I;        //!< Most recent instruction I(8:1)
9594    UINT8   m_I2;       //!< Most recent parameter I2(8:1)
9695    UINT8   m_Ip;       //!< Previous instruction I(8:1)
9796
trunk/src/mess/drivers/tandy12.c
r242430r242431
8383{
8484   // O0-O7: button lamps 1-8
8585   for (int i = 0; i < 8; i++)
86      output_set_lamp_value(i+1, data >> i & 1);
86      output_set_lamp_value(i, data >> i & 1);
8787}
8888
8989WRITE16_MEMBER(tandy12_state::write_r)
9090{
9191   // R0-R3: button lamps 9-12
9292   for (int i = 0; i < 4; i++)
93      output_set_lamp_value(i+1 + 8, data >> i & 1);
93      output_set_lamp_value(i + 8, data >> i & 1);
9494
9595   // R10: speaker out
9696   m_speaker->level_w(data >> 10 & 1);
r242430r242431
226226ROM_END
227227
228228
229CONS( 1981, tandy12, 0, 0, tandy12, tandy12, driver_device, 0, "Tandy Radio Shack", "Tandy-12: Computerized Arcade", GAME_SUPPORTS_SAVE )
229CONS( 1981, tandy12, 0, 0, tandy12, tandy12, driver_device, 0, "Tandy Radio Shack", "Tandy-12 - Computerized Arcade", GAME_SUPPORTS_SAVE )
trunk/src/mess/layout/tandy12.lay
r242430r242431
11<?xml version="1.0"?>
22<mamelayout version="2">
33
4<!-- define elements -->
54
6   <element name="static_orange"><rect><color red="0.9" green="0.65" blue="0.3" /></rect></element>
7   <element name="static_offblack"><rect><color red="0.3" green="0.3" blue="0.29" /></rect></element>
8   <element name="static_offwhite"><rect><color red="0.86" green="0.84" blue="0.7" /></rect></element>
5<!-- ugly layout is temp, will be improved soon -->
96
10   <element name="text_repeat">
11      <rect><color red="0.86" green="0.84" blue="0.7" /></rect>
12      <text string="REPEAT-2"><color red="1.0" green="0.99" blue="0.85" /></text>
13   </element>
14   <element name="text_space">
15      <rect><color red="0.86" green="0.84" blue="0.7" /></rect>
16      <text string="SPACE-2"><color red="1.0" green="0.99" blue="0.85" /></text>
17   </element>
187
19   <element name="text_start">
20      <rect><color red="0.86" green="0.84" blue="0.7" /></rect>
21      <text string="START"><color red="1.0" green="0.99" blue="0.85" /></text>
22   </element>
23   <element name="text_select">
24      <rect><color red="0.86" green="0.84" blue="0.7" /></rect>
25      <text string="SELECT"><color red="1.0" green="0.99" blue="0.85" /></text>
26   </element>
27   <element name="text_play">
28      <rect><color red="0.86" green="0.84" blue="0.7" /></rect>
29      <text string="PLAY-2/HIT-7"><color red="1.0" green="0.99" blue="0.85" /></text>
30   </element>
318
329
33   <element name="maskd" defstate="0">
34      <disk state="1"><color red="1" green="1" blue="1" /></disk>
35   </element>
10<!-- define elements -->
3611
37   <element name="mask1" defstate="0">
38      <rect state="0"><color red="0" green="0" blue="0" /></rect>
39      <rect state="1"><color red="1.0" green="1.0" blue="1.0" /></rect>
12   <element name="lamp_dot" defstate="0">
13      <disk state="1"><color red="1.0" green="0.3" blue="0.2" /></disk>
14      <disk state="0"><color red="0.125490" green="0.035294" blue="0.0235294" /></disk>
4015   </element>
4116
42   <element name="mask2" defstate="0">
43      <rect state="0">
44         <color red="0" green="0" blue="0" />
45         <bounds x="0.94" y="0.0" width="0.06" height="1.0" />
46      </rect>
47      <rect state="0">
48         <color red="0" green="0" blue="0" />
49         <bounds x="0.0" y="0.94" width="1.0" height="0.06" />
50      </rect>
51   </element>
5217
53   <element name="mask3" defstate="0">
54      <rect state="0">
55         <color red="0" green="0" blue="0" />
56         <bounds x="0.94" y="0.0" width="0.06" height="0.06" />
57      </rect>
58      <rect state="0">
59         <color red="0" green="0" blue="0" />
60         <bounds x="0.0" y="0.94" width="0.06" height="0.06" />
61      </rect>
62   </element>
6318
64   <element name="mask4" defstate="0">
65      <rect state="1">
66         <color red="0" green="0" blue="0" />
67         <bounds x="0.0" y="0.0" width="0.06" height="1.0" />
68      </rect>
69      <rect state="1">
70         <color red="0" green="0" blue="0" />
71         <bounds x="0.0" y="0.0" width="1.0" height="0.06" />
72      </rect>
73   </element>
74
75
76   <element name="button1"><rect state="0"><color red="0.5" green="0.1" blue="1.0" /></rect></element>
77   <element name="button2"><rect state="0"><color red="1.0" green="0.75" blue="0.2" /></rect></element>
78   <element name="button3"><rect state="0"><color red="1.0" green="0.2" blue="0.8" /></rect></element>
79   <element name="button4"><rect state="0"><color red="0.1" green="0.7" blue="0.1" /></rect></element>
80   <element name="button5"><rect state="0"><color red="0.25" green="0.25" blue="1.0" /></rect></element>
81   <element name="button6"><rect state="0"><color red="0.2" green="0.9" blue="1.0" /></rect></element>
82   <element name="button7"><rect state="0"><color red="0.9" green="0.9" blue="0.2" /></rect></element>
83   <element name="button8"><rect state="0"><color red="1.0" green="0.42" blue="0.2" /></rect></element>
84   <element name="button9"><rect state="0"><color red="0.53" green="1.0" blue="0.5" /></rect></element>
85   <element name="button10"><rect state="0"><color red="1.0" green="0.23" blue="0.25" /></rect></element>
86   <element name="button11"><rect state="0"><color red="0.7" green="0.5" blue="1.0" /></rect></element>
87   <element name="button12"><rect state="0"><color red="0.66" green="0.25" blue="0.1" /></rect></element>
88
89   <element name="text_g1"><text string="ORGAN" align="1"><color red="0.9" green="0.9" blue="0.9" /></text></element>
90   <element name="text_g2"><text string="SONG WRITER" align="1"><color red="0.9" green="0.9" blue="0.9" /></text></element>
91   <element name="text_g3"><text string="REPEAT" align="1"><color red="0.9" green="0.9" blue="0.9" /></text></element>
92   <element name="text_g4"><text string="TORPEDO" align="1"><color red="0.9" green="0.9" blue="0.9" /></text></element>
93   <element name="text_g5"><text string="TAG-IT" align="1"><color red="0.9" green="0.9" blue="0.9" /></text></element>
94   <element name="text_g6"><text string="ROULETTE" align="1"><color red="0.9" green="0.9" blue="0.9" /></text></element>
95   <element name="text_g7"><text string="BASEBALL" align="1"><color red="0.9" green="0.9" blue="0.9" /></text></element>
96   <element name="text_g8"><text string="REPEAT PLUS" align="1"><color red="0.9" green="0.9" blue="0.9" /></text></element>
97   <element name="text_g9"><text string="TREASURE HUNT" align="1"><color red="0.9" green="0.9" blue="0.9" /></text></element>
98   <element name="text_g10"><text string="COMPETE" align="1"><color red="0.9" green="0.9" blue="0.9" /></text></element>
99   <element name="text_g11"><text string="FIRE AWAY" align="1"><color red="0.9" green="0.9" blue="0.9" /></text></element>
100   <element name="text_g12"><text string="HIDE 'N SEEK" align="1"><color red="0.9" green="0.9" blue="0.9" /></text></element>
101
102   <element name="text_b1"><text string="1"><color red="0.94" green="0.94" blue="0.94" /></text></element>
103   <element name="text_b2"><text string="2"><color red="0.94" green="0.94" blue="0.94" /></text></element>
104   <element name="text_b3"><text string="3"><color red="0.94" green="0.94" blue="0.94" /></text></element>
105   <element name="text_b4"><text string="4"><color red="0.94" green="0.94" blue="0.94" /></text></element>
106   <element name="text_b5"><text string="5"><color red="0.94" green="0.94" blue="0.94" /></text></element>
107   <element name="text_b6"><text string="6"><color red="0.94" green="0.94" blue="0.94" /></text></element>
108   <element name="text_b7"><text string="7"><color red="0.94" green="0.94" blue="0.94" /></text></element>
109   <element name="text_b8"><text string="8"><color red="0.94" green="0.94" blue="0.94" /></text></element>
110   <element name="text_b9"><text string="9"><color red="0.94" green="0.94" blue="0.94" /></text></element>
111   <element name="text_b10"><text string="10"><color red="0.94" green="0.94" blue="0.94" /></text></element>
112   <element name="text_b11"><text string="11"><color red="0.94" green="0.94" blue="0.94" /></text></element>
113   <element name="text_b12"><text string="12"><color red="0.94" green="0.94" blue="0.94" /></text></element>
114
115
116
11719<!-- build screen -->
11820
11921   <view name="Internal Layout">
120      <bounds left="0" right="42" top="0" bottom="75" />
22      <bounds left="0" right="100" top="0" bottom="100" />
12123
122      <bezel element="static_offwhite"><bounds x="0" y="0" width="42" height="6" /></bezel>
123      <bezel element="static_offwhite"><bounds x="0" y="69" width="42" height="6" /></bezel>
24      <bezel name="lamp0" element="lamp_dot"><bounds x="10" y="10" width="5" height="5" /></bezel>
25      <bezel name="lamp4" element="lamp_dot"><bounds x="20" y="10" width="5" height="5" /></bezel>
26      <bezel name="lamp8" element="lamp_dot"><bounds x="30" y="10" width="5" height="5" /></bezel>
12427
125   <!-- misc buttons -->
28      <bezel name="lamp1" element="lamp_dot"><bounds x="10" y="20" width="5" height="5" /></bezel>
29      <bezel name="lamp5" element="lamp_dot"><bounds x="20" y="20" width="5" height="5" /></bezel>
30      <bezel name="lamp9" element="lamp_dot"><bounds x="30" y="20" width="5" height="5" /></bezel>
12631
127      <bezel element="static_orange"><bounds x="12" y="2" width="2" height="2" /></bezel>
128      <bezel element="static_orange"><bounds x="28" y="2" width="2" height="2" /></bezel>
32      <bezel name="lamp2" element="lamp_dot"><bounds x="10" y="30" width="5" height="5" /></bezel>
33      <bezel name="lamp6" element="lamp_dot"><bounds x="20" y="30" width="5" height="5" /></bezel>
34      <bezel name="lamp10" element="lamp_dot"><bounds x="30" y="30" width="5" height="5" /></bezel>
12935
130      <bezel element="maskd" inputtag="IN.2" inputmask="0x01">
131         <bounds x="12.05" y="2.05" width="1.9" height="1.9" />
132         <color alpha="0.2" />
133      </bezel>
134      <bezel element="maskd" inputtag="IN.1" inputmask="0x01">
135         <bounds x="28.05" y="2.05" width="1.9" height="1.9" />
136         <color alpha="0.2" />
137      </bezel>
36      <bezel name="lamp3" element="lamp_dot"><bounds x="10" y="40" width="5" height="5" /></bezel>
37      <bezel name="lamp7" element="lamp_dot"><bounds x="20" y="40" width="5" height="5" /></bezel>
38      <bezel name="lamp11" element="lamp_dot"><bounds x="30" y="40" width="5" height="5" /></bezel>
13839
139      <bezel element="text_repeat"><bounds x="8" y="0.2" width="10" height="1.4" /></bezel>
140      <bezel element="text_space"><bounds x="24" y="0.2" width="10" height="1.4" /></bezel>
14140
142
143      <bezel element="static_offblack"><bounds x="12" y="71" width="2" height="2" /></bezel>
144      <bezel element="static_offblack"><bounds x="20" y="71" width="2" height="2" /></bezel>
145      <bezel element="static_offblack"><bounds x="28" y="71" width="2" height="2" /></bezel>
146
147      <bezel element="maskd" inputtag="IN.1" inputmask="0x08">
148         <bounds x="12.05" y="71.05" width="1.9" height="1.9" />
149         <color alpha="0.2" />
150      </bezel>
151      <bezel element="maskd" inputtag="IN.1" inputmask="0x04">
152         <bounds x="20.05" y="71.05" width="1.9" height="1.9" />
153         <color alpha="0.2" />
154      </bezel>
155      <bezel element="maskd" inputtag="IN.1" inputmask="0x02">
156         <bounds x="28.05" y="71.05" width="1.9" height="1.9" />
157         <color alpha="0.2" />
158      </bezel>
159
160      <bezel element="text_start"><bounds x="8" y="73.2" width="10" height="1.4" /></bezel>
161      <bezel element="text_select"><bounds x="16" y="73.2" width="10" height="1.4" /></bezel>
162      <bezel element="text_play"><bounds x="24" y="73.2" width="10" height="1.4" /></bezel>
163
164
165   <!-- coloured lighted buttons -->
166   <!-- row 1 5 9 -->
167
168      <bezel element="button1">
169         <bounds x="3" y="9" width="10" height="12" />
170      </bezel>
171      <bezel name="lamp1" element="mask1">
172         <bounds x="3" y="9" width="10" height="12" />
173         <color alpha="0.4" />
174      </bezel>
175      <bezel element="mask2" inputtag="IN.3" inputmask="0x08">
176         <bounds x="3" y="9" width="10" height="12" />
177         <color alpha="0.4" />
178      </bezel>
179      <bezel element="mask3" inputtag="IN.3" inputmask="0x08">
180         <bounds x="3" y="9" width="10" height="12" />
181      </bezel>
182      <bezel element="mask4" inputtag="IN.3" inputmask="0x08">
183         <bounds x="3" y="9" width="10" height="12" />
184      </bezel>
185
186      <bezel element="button5">
187         <bounds x="16" y="9" width="10" height="12" />
188      </bezel>
189      <bezel name="lamp5" element="mask1">
190         <bounds x="16" y="9" width="10" height="12" />
191         <color alpha="0.4" />
192      </bezel>
193      <bezel element="mask2" inputtag="IN.4" inputmask="0x08">
194         <bounds x="16" y="9" width="10" height="12" />
195         <color alpha="0.4" />
196      </bezel>
197      <bezel element="mask3" inputtag="IN.4" inputmask="0x08">
198         <bounds x="16" y="9" width="10" height="12" />
199      </bezel>
200      <bezel element="mask4" inputtag="IN.4" inputmask="0x08">
201         <bounds x="16" y="9" width="10" height="12" />
202      </bezel>
203
204      <bezel element="button9">
205         <bounds x="29" y="9" width="10" height="12" />
206      </bezel>
207      <bezel name="lamp9" element="mask1">
208         <bounds x="29" y="9" width="10" height="12" />
209         <color alpha="0.4" />
210      </bezel>
211      <bezel element="mask2" inputtag="IN.0" inputmask="0x08">
212         <bounds x="29" y="9" width="10" height="12" />
213         <color alpha="0.4" />
214      </bezel>
215      <bezel element="mask3" inputtag="IN.0" inputmask="0x08">
216         <bounds x="29" y="9" width="10" height="12" />
217      </bezel>
218      <bezel element="mask4" inputtag="IN.0" inputmask="0x08">
219         <bounds x="29" y="9" width="10" height="12" />
220      </bezel>
221
222   <!-- row 2 6 10 -->
223
224      <bezel element="button2">
225         <bounds x="3" y="24" width="10" height="12" />
226      </bezel>
227      <bezel name="lamp2" element="mask1">
228         <bounds x="3" y="24" width="10" height="12" />
229         <color alpha="0.4" />
230      </bezel>
231      <bezel element="mask2" inputtag="IN.3" inputmask="0x04">
232         <bounds x="3" y="24" width="10" height="12" />
233         <color alpha="0.4" />
234      </bezel>
235      <bezel element="mask3" inputtag="IN.3" inputmask="0x04">
236         <bounds x="3" y="24" width="10" height="12" />
237      </bezel>
238      <bezel element="mask4" inputtag="IN.3" inputmask="0x04">
239         <bounds x="3" y="24" width="10" height="12" />
240      </bezel>
241
242      <bezel element="button6">
243         <bounds x="16" y="24" width="10" height="12" />
244      </bezel>
245      <bezel name="lamp6" element="mask1">
246         <bounds x="16" y="24" width="10" height="12" />
247         <color alpha="0.4" />
248      </bezel>
249      <bezel element="mask2" inputtag="IN.4" inputmask="0x04">
250         <bounds x="16" y="24" width="10" height="12" />
251         <color alpha="0.4" />
252      </bezel>
253      <bezel element="mask3" inputtag="IN.4" inputmask="0x04">
254         <bounds x="16" y="24" width="10" height="12" />
255      </bezel>
256      <bezel element="mask4" inputtag="IN.4" inputmask="0x04">
257         <bounds x="16" y="24" width="10" height="12" />
258      </bezel>
259
260      <bezel element="button10">
261         <bounds x="29" y="24" width="10" height="12" />
262      </bezel>
263      <bezel name="lamp10" element="mask1">
264         <bounds x="29" y="24" width="10" height="12" />
265         <color alpha="0.4" />
266      </bezel>
267      <bezel element="mask2" inputtag="IN.0" inputmask="0x04">
268         <bounds x="29" y="24" width="10" height="12" />
269         <color alpha="0.4" />
270      </bezel>
271      <bezel element="mask3" inputtag="IN.0" inputmask="0x04">
272         <bounds x="29" y="24" width="10" height="12" />
273      </bezel>
274      <bezel element="mask4" inputtag="IN.0" inputmask="0x04">
275         <bounds x="29" y="24" width="10" height="12" />
276      </bezel>
277
278   <!-- row 3 7 11 -->
279
280      <bezel element="button3">
281         <bounds x="3" y="39" width="10" height="12" />
282      </bezel>
283      <bezel name="lamp3" element="mask1">
284         <bounds x="3" y="39" width="10" height="12" />
285         <color alpha="0.4" />
286      </bezel>
287      <bezel element="mask2" inputtag="IN.3" inputmask="0x02">
288         <bounds x="3" y="39" width="10" height="12" />
289         <color alpha="0.4" />
290      </bezel>
291      <bezel element="mask3" inputtag="IN.3" inputmask="0x02">
292         <bounds x="3" y="39" width="10" height="12" />
293      </bezel>
294      <bezel element="mask4" inputtag="IN.3" inputmask="0x02">
295         <bounds x="3" y="39" width="10" height="12" />
296      </bezel>
297
298      <bezel element="button7">
299         <bounds x="16" y="39" width="10" height="12" />
300      </bezel>
301      <bezel name="lamp7" element="mask1">
302         <bounds x="16" y="39" width="10" height="12" />
303         <color alpha="0.4" />
304      </bezel>
305      <bezel element="mask2" inputtag="IN.4" inputmask="0x02">
306         <bounds x="16" y="39" width="10" height="12" />
307         <color alpha="0.4" />
308      </bezel>
309      <bezel element="mask3" inputtag="IN.4" inputmask="0x02">
310         <bounds x="16" y="39" width="10" height="12" />
311      </bezel>
312      <bezel element="mask4" inputtag="IN.4" inputmask="0x02">
313         <bounds x="16" y="39" width="10" height="12" />
314      </bezel>
315
316      <bezel element="button11">
317         <bounds x="29" y="39" width="10" height="12" />
318      </bezel>
319      <bezel name="lamp11" element="mask1">
320         <bounds x="29" y="39" width="10" height="12" />
321         <color alpha="0.4" />
322      </bezel>
323      <bezel element="mask2" inputtag="IN.0" inputmask="0x02">
324         <bounds x="29" y="39" width="10" height="12" />
325         <color alpha="0.4" />
326      </bezel>
327      <bezel element="mask3" inputtag="IN.0" inputmask="0x02">
328         <bounds x="29" y="39" width="10" height="12" />
329      </bezel>
330      <bezel element="mask4" inputtag="IN.0" inputmask="0x02">
331         <bounds x="29" y="39" width="10" height="12" />
332      </bezel>
333
334   <!-- row 4 8 12 -->
335
336      <bezel element="button4">
337         <bounds x="3" y="54" width="10" height="12" />
338      </bezel>
339      <bezel name="lamp4" element="mask1">
340         <bounds x="3" y="54" width="10" height="12" />
341         <color alpha="0.4" />
342      </bezel>
343      <bezel element="mask2" inputtag="IN.3" inputmask="0x01">
344         <bounds x="3" y="54" width="10" height="12" />
345         <color alpha="0.4" />
346      </bezel>
347      <bezel element="mask3" inputtag="IN.3" inputmask="0x01">
348         <bounds x="3" y="54" width="10" height="12" />
349      </bezel>
350      <bezel element="mask4" inputtag="IN.3" inputmask="0x01">
351         <bounds x="3" y="54" width="10" height="12" />
352      </bezel>
353
354      <bezel element="button8">
355         <bounds x="16" y="54" width="10" height="12" />
356      </bezel>
357      <bezel name="lamp8" element="mask1">
358         <bounds x="16" y="54" width="10" height="12" />
359         <color alpha="0.4" />
360      </bezel>
361      <bezel element="mask2" inputtag="IN.4" inputmask="0x01">
362         <bounds x="16" y="54" width="10" height="12" />
363         <color alpha="0.4" />
364      </bezel>
365      <bezel element="mask3" inputtag="IN.4" inputmask="0x01">
366         <bounds x="16" y="54" width="10" height="12" />
367      </bezel>
368      <bezel element="mask4" inputtag="IN.4" inputmask="0x01">
369         <bounds x="16" y="54" width="10" height="12" />
370      </bezel>
371
372      <bezel element="button12">
373         <bounds x="29" y="54" width="10" height="12" />
374      </bezel>
375      <bezel name="lamp12" element="mask1">
376         <bounds x="29" y="54" width="10" height="12" />
377         <color alpha="0.4" />
378      </bezel>
379      <bezel element="mask2" inputtag="IN.0" inputmask="0x01">
380         <bounds x="29" y="54" width="10" height="12" />
381         <color alpha="0.4" />
382      </bezel>
383      <bezel element="mask3" inputtag="IN.0" inputmask="0x01">
384         <bounds x="29" y="54" width="10" height="12" />
385      </bezel>
386      <bezel element="mask4" inputtag="IN.0" inputmask="0x01">
387         <bounds x="29" y="54" width="10" height="12" />
388      </bezel>
389
390
391   <!-- gamename labels -->
392
393      <bezel element="text_g1"><bounds x="4" y="21.8" width="12" height="1.4" /></bezel>
394      <bezel element="text_g5"><bounds x="17" y="21.8" width="12" height="1.4" /></bezel>
395      <bezel element="text_g9"><bounds x="30" y="21.8" width="12" height="1.4" /></bezel>
396
397      <bezel element="text_g2"><bounds x="4" y="36.8" width="12" height="1.4" /></bezel>
398      <bezel element="text_g6"><bounds x="17" y="36.8" width="12" height="1.4" /></bezel>
399      <bezel element="text_g10"><bounds x="30" y="36.8" width="12" height="1.4" /></bezel>
400
401      <bezel element="text_g3"><bounds x="4" y="51.8" width="12" height="1.4" /></bezel>
402      <bezel element="text_g7"><bounds x="17" y="51.8" width="12" height="1.4" /></bezel>
403      <bezel element="text_g11"><bounds x="30" y="51.8" width="12" height="1.4" /></bezel>
404
405      <bezel element="text_g4"><bounds x="4" y="66.8" width="12" height="1.4" /></bezel>
406      <bezel element="text_g8"><bounds x="17" y="66.8" width="12" height="1.4" /></bezel>
407      <bezel element="text_g12"><bounds x="30" y="66.8" width="12" height="1.4" /></bezel>
408
409
410   <!-- number labels -->
411
412      <bezel element="text_b1"><bounds x="12.8" y="20.8" width="2" height="2" /></bezel>
413      <bezel element="text_b5"><bounds x="25.8" y="20.8" width="2" height="2" /></bezel>
414      <bezel element="text_b9"><bounds x="38.8" y="20.8" width="2" height="2" /></bezel>
415
416      <bezel element="text_b2"><bounds x="12.8" y="35.8" width="2" height="2" /></bezel>
417      <bezel element="text_b6"><bounds x="25.8" y="35.8" width="2" height="2" /></bezel>
418      <bezel element="text_b10"><bounds x="38.8" y="35.8" width="2" height="2" /></bezel>
419
420      <bezel element="text_b3"><bounds x="12.8" y="50.8" width="2" height="2" /></bezel>
421      <bezel element="text_b7"><bounds x="25.8" y="50.8" width="2" height="2" /></bezel>
422      <bezel element="text_b11"><bounds x="38.8" y="50.8" width="2" height="2" /></bezel>
423
424      <bezel element="text_b4"><bounds x="12.8" y="65.8" width="2" height="2" /></bezel>
425      <bezel element="text_b8"><bounds x="25.8" y="65.8" width="2" height="2" /></bezel>
426      <bezel element="text_b12"><bounds x="38.8" y="65.8" width="2" height="2" /></bezel>
427
428
42941   </view>
43042</mamelayout>
trunk/src/osd/sdl/draw13.c
r242430r242431
479479
480480   expand_copy_info(blit_info_default);
481481
482#if USE_OPENGL
482483   // Load the GL library now - else MT will fail
483484   stemp = downcast<sdl_options &>(machine.options()).gl_lib();
485#else
486   stemp = NULL;
487#endif
484488   if (stemp != NULL && strcmp(stemp, SDLOPTVAL_AUTO) == 0)
485489      stemp = NULL;
486490


Previous 199869 Revisions Next


© 1997-2024 The MAME Team