Annotation of generator/src/out/cpu68k-6.c, revision 1.1.1.1

1.1       root        1: /*****************************************************************************/
                      2: /*     Generator - Sega Genesis emulation - (c) James Ponder 1997-1998       */
                      3: /*****************************************************************************/
                      4: /*                                                                           */
                      5: /* cpu68k-6.c                                                                */
                      6: /*                                                                           */
                      7: /*****************************************************************************/
                      8: 
                      9: #include "generator.h"
                     10: #include "cpu68k.h"
                     11: #include "mem68k.h"
                     12: #include "reg68k.h"
                     13: 
                     14: #include "cpu68k-inline.h"
                     15: 
                     16: #include <stdio.h>
                     17: 
                     18: void cpu_op_1031a(t_ipc *ipc) /* Bcc */ {
                     19:   /* mask ffff, bits 6000, mnemonic 62, priv 0, endblk -1, imm_notzero 0, used -1     set 0, size 2, stype 12, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                     20:   uint32 srcdata = ipc->src;
                     21:   uint8 cc = 1;
                     22: 
                     23:   if (cc)
                     24:     PC = srcdata;
                     25:   else
                     26:     PC+= 4;
                     27: }
                     28: 
                     29: void cpu_op_1032a(t_ipc *ipc) /* Bcc */ {
                     30:   /* mask ffff, bits 6200, mnemonic 62, priv 0, endblk -1, imm_notzero 0, used -1     set 0, size 2, stype 12, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                     31:   uint32 srcdata = ipc->src;
                     32:   uint8 cc = !(CFLAG || ZFLAG);
                     33: 
                     34:   if (cc)
                     35:     PC = srcdata;
                     36:   else
                     37:     PC+= 4;
                     38: }
                     39: 
                     40: void cpu_op_1033a(t_ipc *ipc) /* Bcc */ {
                     41:   /* mask ffff, bits 6300, mnemonic 62, priv 0, endblk -1, imm_notzero 0, used -1     set 0, size 2, stype 12, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                     42:   uint32 srcdata = ipc->src;
                     43:   uint8 cc = CFLAG || ZFLAG;
                     44: 
                     45:   if (cc)
                     46:     PC = srcdata;
                     47:   else
                     48:     PC+= 4;
                     49: }
                     50: 
                     51: void cpu_op_1034a(t_ipc *ipc) /* Bcc */ {
                     52:   /* mask ffff, bits 6400, mnemonic 62, priv 0, endblk -1, imm_notzero 0, used -1     set 0, size 2, stype 12, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                     53:   uint32 srcdata = ipc->src;
                     54:   uint8 cc = !CFLAG;
                     55: 
                     56:   if (cc)
                     57:     PC = srcdata;
                     58:   else
                     59:     PC+= 4;
                     60: }
                     61: 
                     62: void cpu_op_1035a(t_ipc *ipc) /* Bcc */ {
                     63:   /* mask ffff, bits 6500, mnemonic 62, priv 0, endblk -1, imm_notzero 0, used -1     set 0, size 2, stype 12, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                     64:   uint32 srcdata = ipc->src;
                     65:   uint8 cc = CFLAG;
                     66: 
                     67:   if (cc)
                     68:     PC = srcdata;
                     69:   else
                     70:     PC+= 4;
                     71: }
                     72: 
                     73: void cpu_op_1036a(t_ipc *ipc) /* Bcc */ {
                     74:   /* mask ffff, bits 6600, mnemonic 62, priv 0, endblk -1, imm_notzero 0, used -1     set 0, size 2, stype 12, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                     75:   uint32 srcdata = ipc->src;
                     76:   uint8 cc = !ZFLAG;
                     77: 
                     78:   if (cc)
                     79:     PC = srcdata;
                     80:   else
                     81:     PC+= 4;
                     82: }
                     83: 
                     84: void cpu_op_1037a(t_ipc *ipc) /* Bcc */ {
                     85:   /* mask ffff, bits 6700, mnemonic 62, priv 0, endblk -1, imm_notzero 0, used -1     set 0, size 2, stype 12, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                     86:   uint32 srcdata = ipc->src;
                     87:   uint8 cc = ZFLAG;
                     88: 
                     89:   if (cc)
                     90:     PC = srcdata;
                     91:   else
                     92:     PC+= 4;
                     93: }
                     94: 
                     95: void cpu_op_1038a(t_ipc *ipc) /* Bcc */ {
                     96:   /* mask ffff, bits 6800, mnemonic 62, priv 0, endblk -1, imm_notzero 0, used -1     set 0, size 2, stype 12, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                     97:   uint32 srcdata = ipc->src;
                     98:   uint8 cc = !VFLAG;
                     99: 
                    100:   if (cc)
                    101:     PC = srcdata;
                    102:   else
                    103:     PC+= 4;
                    104: }
                    105: 
                    106: void cpu_op_1039a(t_ipc *ipc) /* Bcc */ {
                    107:   /* mask ffff, bits 6900, mnemonic 62, priv 0, endblk -1, imm_notzero 0, used -1     set 0, size 2, stype 12, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    108:   uint32 srcdata = ipc->src;
                    109:   uint8 cc = VFLAG;
                    110: 
                    111:   if (cc)
                    112:     PC = srcdata;
                    113:   else
                    114:     PC+= 4;
                    115: }
                    116: 
                    117: void cpu_op_1040a(t_ipc *ipc) /* Bcc */ {
                    118:   /* mask ffff, bits 6a00, mnemonic 62, priv 0, endblk -1, imm_notzero 0, used -1     set 0, size 2, stype 12, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    119:   uint32 srcdata = ipc->src;
                    120:   uint8 cc = !NFLAG;
                    121: 
                    122:   if (cc)
                    123:     PC = srcdata;
                    124:   else
                    125:     PC+= 4;
                    126: }
                    127: 
                    128: void cpu_op_1041a(t_ipc *ipc) /* Bcc */ {
                    129:   /* mask ffff, bits 6b00, mnemonic 62, priv 0, endblk -1, imm_notzero 0, used -1     set 0, size 2, stype 12, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    130:   uint32 srcdata = ipc->src;
                    131:   uint8 cc = NFLAG;
                    132: 
                    133:   if (cc)
                    134:     PC = srcdata;
                    135:   else
                    136:     PC+= 4;
                    137: }
                    138: 
                    139: void cpu_op_1042a(t_ipc *ipc) /* Bcc */ {
                    140:   /* mask ffff, bits 6c00, mnemonic 62, priv 0, endblk -1, imm_notzero 0, used -1     set 0, size 2, stype 12, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    141:   uint32 srcdata = ipc->src;
                    142:   uint8 cc = (NFLAG == VFLAG);
                    143: 
                    144:   if (cc)
                    145:     PC = srcdata;
                    146:   else
                    147:     PC+= 4;
                    148: }
                    149: 
                    150: void cpu_op_1043a(t_ipc *ipc) /* Bcc */ {
                    151:   /* mask ffff, bits 6d00, mnemonic 62, priv 0, endblk -1, imm_notzero 0, used -1     set 0, size 2, stype 12, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    152:   uint32 srcdata = ipc->src;
                    153:   uint8 cc = (NFLAG != VFLAG);
                    154: 
                    155:   if (cc)
                    156:     PC = srcdata;
                    157:   else
                    158:     PC+= 4;
                    159: }
                    160: 
                    161: void cpu_op_1044a(t_ipc *ipc) /* Bcc */ {
                    162:   /* mask ffff, bits 6e00, mnemonic 62, priv 0, endblk -1, imm_notzero 0, used -1     set 0, size 2, stype 12, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    163:   uint32 srcdata = ipc->src;
                    164:   uint8 cc = !ZFLAG && (NFLAG == VFLAG);
                    165: 
                    166:   if (cc)
                    167:     PC = srcdata;
                    168:   else
                    169:     PC+= 4;
                    170: }
                    171: 
                    172: void cpu_op_1045a(t_ipc *ipc) /* Bcc */ {
                    173:   /* mask ffff, bits 6f00, mnemonic 62, priv 0, endblk -1, imm_notzero 0, used -1     set 0, size 2, stype 12, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    174:   uint32 srcdata = ipc->src;
                    175:   uint8 cc = ZFLAG || (NFLAG != VFLAG);
                    176: 
                    177:   if (cc)
                    178:     PC = srcdata;
                    179:   else
                    180:     PC+= 4;
                    181: }
                    182: 
                    183: void cpu_op_1046a(t_ipc *ipc) /* BSR */ {
                    184:   /* mask ffff, bits 6100, mnemonic 63, priv 0, endblk -1, imm_notzero 0, used -1     set 0, size 2, stype 12, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    185:   uint32 srcdata = ipc->src;
                    186: 
                    187:   ADDRREG(7)-= 4;
                    188:   storelong(ADDRREG(7), PC+4);
                    189:   PC = srcdata;
                    190: }
                    191: 
                    192: void cpu_op_1047a(t_ipc *ipc) /* Bcc */ {
                    193:   /* mask ff00, bits 6000, mnemonic 62, priv 0, endblk -1, imm_notzero -1, used -1     set 0, size 1, stype 17, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    194:   uint32 srcdata = ipc->src;
                    195:   uint8 cc = 1;
                    196: 
                    197:   if (cc)
                    198:     PC = srcdata;
                    199:   else
                    200:     PC+= 2;
                    201: }
                    202: 
                    203: void cpu_op_1048a(t_ipc *ipc) /* Bcc */ {
                    204:   /* mask ff00, bits 6200, mnemonic 62, priv 0, endblk -1, imm_notzero -1, used -1     set 0, size 1, stype 17, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    205:   uint32 srcdata = ipc->src;
                    206:   uint8 cc = !(CFLAG || ZFLAG);
                    207: 
                    208:   if (cc)
                    209:     PC = srcdata;
                    210:   else
                    211:     PC+= 2;
                    212: }
                    213: 
                    214: void cpu_op_1049a(t_ipc *ipc) /* Bcc */ {
                    215:   /* mask ff00, bits 6300, mnemonic 62, priv 0, endblk -1, imm_notzero -1, used -1     set 0, size 1, stype 17, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    216:   uint32 srcdata = ipc->src;
                    217:   uint8 cc = CFLAG || ZFLAG;
                    218: 
                    219:   if (cc)
                    220:     PC = srcdata;
                    221:   else
                    222:     PC+= 2;
                    223: }
                    224: 
                    225: void cpu_op_1050a(t_ipc *ipc) /* Bcc */ {
                    226:   /* mask ff00, bits 6400, mnemonic 62, priv 0, endblk -1, imm_notzero -1, used -1     set 0, size 1, stype 17, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    227:   uint32 srcdata = ipc->src;
                    228:   uint8 cc = !CFLAG;
                    229: 
                    230:   if (cc)
                    231:     PC = srcdata;
                    232:   else
                    233:     PC+= 2;
                    234: }
                    235: 
                    236: void cpu_op_1051a(t_ipc *ipc) /* Bcc */ {
                    237:   /* mask ff00, bits 6500, mnemonic 62, priv 0, endblk -1, imm_notzero -1, used -1     set 0, size 1, stype 17, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    238:   uint32 srcdata = ipc->src;
                    239:   uint8 cc = CFLAG;
                    240: 
                    241:   if (cc)
                    242:     PC = srcdata;
                    243:   else
                    244:     PC+= 2;
                    245: }
                    246: 
                    247: void cpu_op_1052a(t_ipc *ipc) /* Bcc */ {
                    248:   /* mask ff00, bits 6600, mnemonic 62, priv 0, endblk -1, imm_notzero -1, used -1     set 0, size 1, stype 17, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    249:   uint32 srcdata = ipc->src;
                    250:   uint8 cc = !ZFLAG;
                    251: 
                    252:   if (cc)
                    253:     PC = srcdata;
                    254:   else
                    255:     PC+= 2;
                    256: }
                    257: 
                    258: void cpu_op_1053a(t_ipc *ipc) /* Bcc */ {
                    259:   /* mask ff00, bits 6700, mnemonic 62, priv 0, endblk -1, imm_notzero -1, used -1     set 0, size 1, stype 17, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    260:   uint32 srcdata = ipc->src;
                    261:   uint8 cc = ZFLAG;
                    262: 
                    263:   if (cc)
                    264:     PC = srcdata;
                    265:   else
                    266:     PC+= 2;
                    267: }
                    268: 
                    269: void cpu_op_1054a(t_ipc *ipc) /* Bcc */ {
                    270:   /* mask ff00, bits 6800, mnemonic 62, priv 0, endblk -1, imm_notzero -1, used -1     set 0, size 1, stype 17, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    271:   uint32 srcdata = ipc->src;
                    272:   uint8 cc = !VFLAG;
                    273: 
                    274:   if (cc)
                    275:     PC = srcdata;
                    276:   else
                    277:     PC+= 2;
                    278: }
                    279: 
                    280: void cpu_op_1055a(t_ipc *ipc) /* Bcc */ {
                    281:   /* mask ff00, bits 6900, mnemonic 62, priv 0, endblk -1, imm_notzero -1, used -1     set 0, size 1, stype 17, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    282:   uint32 srcdata = ipc->src;
                    283:   uint8 cc = VFLAG;
                    284: 
                    285:   if (cc)
                    286:     PC = srcdata;
                    287:   else
                    288:     PC+= 2;
                    289: }
                    290: 
                    291: void cpu_op_1056a(t_ipc *ipc) /* Bcc */ {
                    292:   /* mask ff00, bits 6a00, mnemonic 62, priv 0, endblk -1, imm_notzero -1, used -1     set 0, size 1, stype 17, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    293:   uint32 srcdata = ipc->src;
                    294:   uint8 cc = !NFLAG;
                    295: 
                    296:   if (cc)
                    297:     PC = srcdata;
                    298:   else
                    299:     PC+= 2;
                    300: }
                    301: 
                    302: void cpu_op_1057a(t_ipc *ipc) /* Bcc */ {
                    303:   /* mask ff00, bits 6b00, mnemonic 62, priv 0, endblk -1, imm_notzero -1, used -1     set 0, size 1, stype 17, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    304:   uint32 srcdata = ipc->src;
                    305:   uint8 cc = NFLAG;
                    306: 
                    307:   if (cc)
                    308:     PC = srcdata;
                    309:   else
                    310:     PC+= 2;
                    311: }
                    312: 
                    313: void cpu_op_1058a(t_ipc *ipc) /* Bcc */ {
                    314:   /* mask ff00, bits 6c00, mnemonic 62, priv 0, endblk -1, imm_notzero -1, used -1     set 0, size 1, stype 17, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    315:   uint32 srcdata = ipc->src;
                    316:   uint8 cc = (NFLAG == VFLAG);
                    317: 
                    318:   if (cc)
                    319:     PC = srcdata;
                    320:   else
                    321:     PC+= 2;
                    322: }
                    323: 
                    324: void cpu_op_1059a(t_ipc *ipc) /* Bcc */ {
                    325:   /* mask ff00, bits 6d00, mnemonic 62, priv 0, endblk -1, imm_notzero -1, used -1     set 0, size 1, stype 17, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    326:   uint32 srcdata = ipc->src;
                    327:   uint8 cc = (NFLAG != VFLAG);
                    328: 
                    329:   if (cc)
                    330:     PC = srcdata;
                    331:   else
                    332:     PC+= 2;
                    333: }
                    334: 
                    335: void cpu_op_1060a(t_ipc *ipc) /* Bcc */ {
                    336:   /* mask ff00, bits 6e00, mnemonic 62, priv 0, endblk -1, imm_notzero -1, used -1     set 0, size 1, stype 17, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    337:   uint32 srcdata = ipc->src;
                    338:   uint8 cc = !ZFLAG && (NFLAG == VFLAG);
                    339: 
                    340:   if (cc)
                    341:     PC = srcdata;
                    342:   else
                    343:     PC+= 2;
                    344: }
                    345: 
                    346: void cpu_op_1061a(t_ipc *ipc) /* Bcc */ {
                    347:   /* mask ff00, bits 6f00, mnemonic 62, priv 0, endblk -1, imm_notzero -1, used -1     set 0, size 1, stype 17, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    348:   uint32 srcdata = ipc->src;
                    349:   uint8 cc = ZFLAG || (NFLAG != VFLAG);
                    350: 
                    351:   if (cc)
                    352:     PC = srcdata;
                    353:   else
                    354:     PC+= 2;
                    355: }
                    356: 
                    357: void cpu_op_1062a(t_ipc *ipc) /* BSR */ {
                    358:   /* mask ff00, bits 6100, mnemonic 63, priv 0, endblk -1, imm_notzero -1, used -1     set 0, size 1, stype 17, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    359:   uint32 srcdata = ipc->src;
                    360: 
                    361:   ADDRREG(7)-= 4;
                    362:   storelong(ADDRREG(7), PC+2);
                    363:   PC = srcdata;
                    364: }
                    365: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.