home *** CD-ROM | disk | FTP | other *** search
- /*
- cOMMODORE 64 eMULATOR V0.4 eARLE f. pHILHOWER iii
- cOPYRIGHT (c) 1993-4 (ST916W9R@DUNX1.OCS.DREXEL.EDU)
-
- tHIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
- IT UNDER THE TERMS OF THE gnu gENERAL pUBLIC lICENSE AS PUBLISHED BY
- THE fREE sOFTWARE fOUNDATION; EITHER VERSION 2 OF THE lICENSE, OR
- (AT YOUR OPTION) ANY LATER VERSION.
-
- tHIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,
- BUT without any warranty; WITHOUT EVEN THE IMPLIED WARRANTY OF
- merchantability OR fitness for a particular purpose. sEE THE
- gnu gENERAL pUBLIC lICENSE FOR MORE DETAILS.
-
- yOU SHOULD HAVE RECEIVED A COPY OF THE gnu gENERAL pUBLIC lICENSE
- ALONG WITH THIS PROGRAM; IF NOT, WRITE TO THE fREE sOFTWARE
- fOUNDATION, iNC., 675 mASS aVE, cAMBRIDGE, ma 02139, usa.
- */
-
- #INCLUDE "pROCESSOR.H"
- #INCLUDE "iNSTRUCTIONS.H"
- #INCLUDE "sTACK.H"
- #INCLUDE "mODES.H"
- #INCLUDE "eRROR.H"
-
- /*rATHER THAN USING MULTIPLICATION AND DIVISION TO DO THE bcd MATH, IT'S IMPLEMENTED
- *WITH LOOKUP TABLES--FASTER AND EASIER TO CODE IN 68k ASSEMBLY.
- */
- UNSIGNED CHARBCD2DEC[256]=
- {$7b}
- /* 0X00*/0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
- /* 0X10 */10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,
- /* 0X20 */20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,
- /* 0X30 */30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,
- /* 0X40 */40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,
- /* 0X50 */50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,
- /* 0X60 */60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,
- /* 0X70 */70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,
- /* 0X80 */80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,
- /* 0X90 */90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,
- /* 0Xa0 */100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,
- /* 0Xb0 */110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,
- /* 0Xc0 */120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,
- /* 0Xd0 */130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,
- /* 0Xe0 */140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,
- /* 0Xf0 */150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165
- {$7d};
-
- UNSIGNED CHARDEC2BCD[100]=
- {$7b}
- 0X00,0X01,0X02,0X03,0X04,0X05,0X06,0X07,0X08,0X09,
- 0X10,0X11,0X12,0X13,0X14,0X15,0X16,0X17,0X18,0X19,
- 0X20,0X21,0X22,0X23,0X24,0X25,0X26,0X27,0X28,0X29,
- 0X30,0X31,0X32,0X33,0X34,0X35,0X36,0X37,0X38,0X39,
- 0X40,0X41,0X42,0X43,0X44,0X45,0X46,0X47,0X48,0X49,
- 0X50,0X51,0X52,0X53,0X54,0X55,0X56,0X57,0X58,0X59,
- 0X60,0X61,0X62,0X63,0X64,0X65,0X66,0X67,0X68,0X69,
- 0X70,0X71,0X72,0X73,0X74,0X75,0X76,0X77,0X78,0X79,
- 0X80,0X81,0X82,0X83,0X84,0X85,0X86,0X87,0X88,0X89,
- 0X90,0X91,0X92,0X93,0X94,0X95,0X96,0X97,0X98,0X99
- {$7d};
-
- VOID I00() {$7b}
- pUSHwORD(PC);
- FLAGS {$7c}= bkc;
- pUSH(FLAGS);
- FLAGS &= {$7e}bkc;
- PC=wORDaT(iRQtO); {$7d}
- VOID I01() {$7b} ora(iNDIRECTxaDDR); PC++; {$7d}
- VOID I05() {$7b} ora(zEROpAGEaDDR); PC++; {$7d}
- VOID I06() {$7b} asl(zEROpAGEaDDR); PC++; {$7d}
- VOID I08() {$7b} pUSH(FLAGS); {$7d}
- VOID I09() {$7b} A {$7c}= iMMEDIATEbYTE(); fLAGSnz(A); PC++; {$7d}
- VOID I0A() {$7b}
- IF (A&128) FLAGS {$7c}= car;
- ELSE FLAGS &= {$7e}car;
- A=A<<1;
- fLAGSnz(A); {$7d}
- VOID I0D() {$7b} ora(aBSOLUTEaDDR); PC+=2; {$7d}
- VOID I0E() {$7b} asl(aBSOLUTEaDDR); PC+=2; {$7d}
- VOID I10() {$7b} bcl(neg); {$7d}
- VOID I11() {$7b} ora(iNDIRECTyaDDR); PC++; {$7d}
- VOID I15() {$7b} ora(zEROpAGExaDDR); PC++; {$7d}
- VOID I16() {$7b} asl(zEROpAGExaDDR); PC++; {$7d}
- VOID I18() {$7b} clr(car); {$7d}
- VOID I19() {$7b} ora(aBSOLUTEyaDDR); PC+=2; {$7d}
- VOID I1D() {$7b} ora(aBSOLUTExaDDR); PC+=2; {$7d}
- VOID I1E() {$7b} asl(aBSOLUTExaDDR); PC+=2; {$7d}
- VOID I20() {$7b} pUSHwORD(PC+1); PC=wORDaT(PC); {$7d}
- VOID I21() {$7b} and(iNDIRECTxaDDR); PC++; {$7d}
- VOID I24() {$7b} bit(zEROpAGEaDDR); PC++; {$7d}
- VOID I25() {$7b} and(zEROpAGEaDDR); PC++; {$7d}
- VOID I26() {$7b} rol(zEROpAGEaDDR); PC++; {$7d}
- VOID I28() {$7b} FLAGS = pOP(); {$7d}
- VOID I29() {$7b} A &= iMMEDIATEbYTE(); fLAGSnz(A); PC++; {$7d}
- VOID I2A() {$7b}
- IF (FLAGS&car) {$7b}
- IF ((A&128)==0) FLAGS &={$7e}car;
- A=(A<<1){$7c}1; {$7d}
- ELSE {$7b}
- IF(A&128)FLAGS{$7c}=car;
- A=A<<1; {$7d}
- fLAGSnz(A);
- {$7d}
- VOID I2C() {$7b} bit(aBSOLUTEaDDR); PC+=2; {$7d}
- VOID I2D() {$7b} and(aBSOLUTEaDDR); PC+=2; {$7d}
- VOID I2E() {$7b} rol(aBSOLUTEaDDR); PC+=2; {$7d}
- VOID I30() {$7b} bst(neg); {$7d}
- VOID I31() {$7b} and(iNDIRECTyaDDR); PC++; {$7d}
- VOID I35() {$7b} and(zEROpAGExaDDR); PC++; {$7d}
- VOID I36() {$7b} rol(zEROpAGExaDDR); PC++; {$7d}
- VOID I38() {$7b} set(car); {$7d}
- VOID I39() {$7b} and(aBSOLUTEyaDDR); PC+=2; {$7d}
- VOID I3D() {$7b} and(aBSOLUTExaDDR); PC+=2; {$7d}
- VOID I3E() {$7b} rol(aBSOLUTExaDDR); PC+=2; {$7d}
- VOID I40() {$7b} FLAGS=pOP(); pOPwORD(PC); {$7d}
- VOID I41() {$7b} eor(iNDIRECTxaDDR); PC++; {$7d}
- VOID I45() {$7b} eor(zEROpAGEaDDR); PC++; {$7d}
- VOID I46() {$7b} lsr(zEROpAGEaDDR); PC++; {$7d}
- VOID I48() {$7b} pUSH(A); {$7d}
- VOID I49() {$7b} A ^= iMMEDIATEbYTE(); fLAGSnz(A); PC++; {$7d}
- VOID I4A() {$7b}
- FLAGS &={$7e}(car+neg+zer);
- IF (A&1) FLAGS {$7c}=car;
- IF (A=A>>1); ELSE FLAGS {$7c}=zer;
- {$7d}
- VOID I4C() {$7b} PC=wORDaT(PC); {$7d}
- VOID I4D() {$7b} eor(aBSOLUTEaDDR); PC+=2; {$7d}
- VOID I4E() {$7b} lsr(aBSOLUTEaDDR); PC+=2; {$7d}
- VOID I50() {$7b} bcl(ovf); {$7d}
- VOID I51() {$7b} eor(iNDIRECTyaDDR); PC++; {$7d}
- VOID I55() {$7b} eor(zEROpAGExaDDR); PC++; {$7d}
- VOID I56() {$7b} lsr(zEROpAGExaDDR); PC++; {$7d}
- VOID I58() {$7b} clr(int); {$7d}
- VOID I59() {$7b} eor(aBSOLUTEyaDDR); PC+=2; {$7d}
- VOID I5D() {$7b} eor(aBSOLUTExaDDR); PC+=2; {$7d}
- VOID I5E() {$7b} lsr(aBSOLUTExaDDR); PC+=2; {$7d}
- VOID I60() {$7b} pOPwORD(PC); PC++; {$7d}
- VOID I61() {$7b} adc(iNDIRECTxaDDR); PC++; {$7d}
- VOID I65() {$7b} adc(zEROpAGEaDDR); PC++; {$7d}
- VOID I66() {$7b} ror(zEROpAGEaDDR); PC++; {$7d}
- VOID I68() {$7b} A=pOP(); fLAGSnz(A); {$7d}
- VOID I69() {$7b}
- REGISTER WORD DATA;
- DATA=iMMEDIATEbYTE();
- IF (FLAGS&dec) {$7b}
- DATA = BCD2DEC[DATA]+BCD2DEC[A]+((FLAGS&car)?1:0);
- FLAGS &= {$7e}(car+ovf+neg+zer);
- IF (DATA>99) {$7b}
- FLAGS{$7c}=car+ovf;
- DATA -=100; {$7d}
- IF (DATA==0) FLAGS {$7c}= zer;
- ELSE FLAGS {$7c}= DATA&128;
- A=DEC2BCD[DATA];{$7d}
- ELSE {$7b}
- DATA += A+((FLAGS&car)?1:0);
- FLAGS &= {$7e}(car+ovf+neg+zer);
- IF (DATA>255) {$7b}
- FLAGS{$7c}=ovf+car;
- DATA &=255; {$7d}
- IF (DATA==0) FLAGS {$7c}= zer;
- ELSE FLAGS {$7c}= DATA&128;
- A=DATA; {$7d}
- PC++;
- {$7d}
- VOID I6A() {$7b}
- IF (FLAGS&car) {$7b}
- IF ((A&1)==0) FLAGS &={$7e}car;
- A=(A>>1){$7c}128; {$7d}
- ELSE {$7b}
- IF(A&1) FLAGS{$7c}=car;
- A=A>>1; {$7d}
- fLAGSnz(A);
- {$7d}
- VOID I6C() {$7b} REGISTER WORD TA; TA=wORDaT(PC); PC=wORDaT(TA); {$7d}
- VOID I6D() {$7b} adc(aBSOLUTEaDDR); PC+=2; {$7d}
- VOID I6E() {$7b} ror(aBSOLUTEaDDR); PC+=2; {$7d}
- VOID I70() {$7b} bst(ovf); {$7d}
- VOID I71() {$7b} adc(iNDIRECTyaDDR); PC++; {$7d}
- VOID I75() {$7b} adc(zEROpAGExaDDR); PC++; {$7d}
- VOID I76() {$7b} ror(zEROpAGExaDDR); PC++; {$7d}
- VOID I78() {$7b} set(int); {$7d}
- VOID I79() {$7b} adc(aBSOLUTEyaDDR); PC+=2; {$7d}
- VOID I7D() {$7b} adc(aBSOLUTExaDDR); PC+=2; {$7d}
- VOID I7E() {$7b} ror(aBSOLUTExaDDR); PC+=2; {$7d}
- VOID I81() {$7b} sta(iNDIRECTxaDDR); PC++; {$7d}
- VOID I84() {$7b} sty(zEROpAGEaDDR); PC++; {$7d}
- VOID I85() {$7b} sta(zEROpAGEaDDR); PC++; {$7d}
- VOID I86() {$7b} stx(zEROpAGEaDDR); PC++; {$7d}
- VOID I88() {$7b} Y--; fLAGSnz(Y); {$7d}
- VOID I8A() {$7b} A=X; fLAGSnz(A); {$7d}
- VOID I8C() {$7b} sty(aBSOLUTEaDDR); PC+=2; {$7d}
- VOID I8D() {$7b} sta(aBSOLUTEaDDR); PC+=2; {$7d}
- VOID I8E() {$7b} stx(aBSOLUTEaDDR); PC+=2; {$7d}
- VOID I90() {$7b} bcl(car); {$7d}
- VOID I91() {$7b} sta(iNDIRECTyaDDR); PC++; {$7d}
- VOID I94() {$7b} sty(zEROpAGExaDDR); PC++; {$7d}
- VOID I95() {$7b} sta(zEROpAGExaDDR); PC++; {$7d}
- VOID I96() {$7b} stx(zEROpAGEyaDDR); PC++; {$7d}
- VOID I98() {$7b} A=Y; fLAGSnz(A); {$7d}
- VOID I99() {$7b} sta(aBSOLUTEyaDDR); PC+=2; {$7d}
- VOID I9A() {$7b} SP=X; {$7d}
- VOID I9D() {$7b} sta(aBSOLUTExaDDR); PC+=2; {$7d}
- VOID IA0() {$7b} Y=iMMEDIATEbYTE(); fLAGSnz(Y); PC++; {$7d}
- VOID IA1() {$7b} lda(iNDIRECTxaDDR); PC++; {$7d}
- VOID IA2() {$7b} X=iMMEDIATEbYTE(); fLAGSnz(X); PC++; {$7d}
- VOID IA4() {$7b} ldy(zEROpAGEaDDR); PC++; {$7d}
- VOID IA5() {$7b} lda(zEROpAGEaDDR); PC++; {$7d}
- VOID IA6() {$7b} ldx(zEROpAGEaDDR); PC++; {$7d}
- VOID IA8() {$7b} Y=A; fLAGSnz(Y); {$7d}
- VOID IA9() {$7b} A=iMMEDIATEbYTE(); fLAGSnz(A); PC++; {$7d}
- VOID IAA() {$7b} X=A; fLAGSnz(X); {$7d}
- VOID IAC() {$7b} ldy(aBSOLUTEaDDR); PC+=2; {$7d}
- VOID IAD() {$7b} lda(aBSOLUTEaDDR); PC+=2; {$7d}
- VOID IAE() {$7b} ldx(aBSOLUTEaDDR); PC+=2; {$7d}
- VOID IB0() {$7b} bst(car); {$7d}
- VOID IB1() {$7b} lda(iNDIRECTyaDDR); PC++; {$7d}
- VOID IB4() {$7b} ldy(zEROpAGExaDDR); PC++; {$7d}
- VOID IB5() {$7b} lda(zEROpAGExaDDR); PC++; {$7d}
- VOID IB6() {$7b} ldx(zEROpAGEyaDDR); PC++; {$7d}
- VOID IB8() {$7b} clr(ovf); {$7d}
- VOID IB9() {$7b} lda(aBSOLUTEyaDDR); PC+=2; {$7d}
- VOID IBA() {$7b} X=SP; {$7d}
- VOID IBC() {$7b} ldy(aBSOLUTExaDDR); PC+=2; {$7d}
- VOID IBD() {$7b} lda(aBSOLUTExaDDR); PC+=2; {$7d}
- VOID IBE() {$7b} ldx(aBSOLUTEyaDDR); PC+=2; {$7d}
- VOID IC0() {$7b}
- REGISTER BYTE TBYTE;
- TBYTE=iMMEDIATEbYTE();
- FLAGS &={$7e}(car+zer+neg);
- IF (Y==TBYTE) FLAGS {$7c}=car+zer;
- ELSE IF (Y>TBYTE) FLAGS {$7c}=car;
- ELSE FLAGS {$7c}=neg;
- PC++;
- {$7d}
- VOID IC1() {$7b} cmp(iNDIRECTxaDDR); PC++; {$7d}
- VOID IC4() {$7b} cpy(zEROpAGEaDDR); PC++; {$7d}
- VOID IC5() {$7b} cmp(zEROpAGEaDDR); PC++; {$7d}
- VOID IC6() {$7b} decr(zEROpAGEaDDR); PC++; {$7d}
- VOID IC8() {$7b} Y++; fLAGSnz(Y); {$7d}
- VOID IC9() {$7b}
- REGISTER BYTE TBYTE;
- TBYTE=iMMEDIATEbYTE();
- FLAGS &={$7e}(car+zer+neg);
- IF (A==TBYTE) FLAGS {$7c}=car+zer;
- ELSE IF (A>TBYTE) FLAGS {$7c}=car;
- ELSE FLAGS {$7c}=neg;
- PC++;
- {$7d}
- VOID ICA() {$7b} X--; fLAGSnz(X); {$7d}
- VOID ICC() {$7b} cpy(aBSOLUTEaDDR); PC+=2; {$7d}
- VOID ICD() {$7b} cmp(aBSOLUTEaDDR); PC+=2; {$7d}
- VOID ICE() {$7b} decr(aBSOLUTEaDDR); PC+=2; {$7d}
- VOID ID0() {$7b} bcl(zer); {$7d}
- VOID ID1() {$7b} cmp(iNDIRECTyaDDR); PC++; {$7d}
- VOID ID5() {$7b} cmp(zEROpAGExaDDR); PC++; {$7d}
- VOID ID6() {$7b} decr(zEROpAGExaDDR); PC++; {$7d}
- VOID ID8() {$7b} clr(dec); {$7d}
- VOID ID9() {$7b} cmp(aBSOLUTEyaDDR); PC+=2; {$7d}
- VOID IDD() {$7b} cmp(aBSOLUTExaDDR); PC+=2; {$7d}
- VOID IDE() {$7b} decr(aBSOLUTExaDDR); PC+=2; {$7d}
- VOID IE0() {$7b}
- REGISTER BYTE TBYTE;
- TBYTE=iMMEDIATEbYTE();
- FLAGS &={$7e}(car+zer+neg);
- IF (X==TBYTE) FLAGS {$7c}=car+zer;
- ELSE IF (X>TBYTE) FLAGS {$7c}=car;
- ELSE FLAGS {$7c}=neg;
- PC++;
- {$7d}
- VOID IE1() {$7b} sbc(iNDIRECTxaDDR); PC++; {$7d}
- VOID IE4() {$7b} cpx(zEROpAGEaDDR); PC++; {$7d}
- VOID IE5() {$7b} sbc(zEROpAGEaDDR); PC++; {$7d}
- VOID IE6() {$7b} incr(zEROpAGEaDDR); PC++; {$7d}
- VOID IE8() {$7b} X++; fLAGSnz(X); {$7d}
- VOID IE9() {$7b}
- REGISTER INT DATA;
- DATA=iMMEDIATEbYTE();
- IF (FLAGS&dec) {$7b}
- DATA = BCD2DEC[A]-BCD2DEC[DATA]-((FLAGS&car)?0:1);
- FLAGS &= {$7e}(car+zer+neg+ovf);
- IF (DATA==0) FLAGS {$7c}=zer+car;
- ELSE IF (DATA>0) FLAGS {$7c}=car;
- ELSE {$7b}
- FLAGS{$7c}=neg;
- DATA +=100; {$7d}
- A=DEC2BCD[DATA]; {$7d}
- ELSE {$7b}
- DATA = A-DATA-((FLAGS&car)?0:1);
- FLAGS &={$7e}(car+zer+ovf+neg);
- IF (DATA==0) FLAGS {$7c}= zer+car;
- ELSE IF (DATA>0) FLAGS {$7c}= car;
- ELSE FLAGS{$7c}=ovf;
- DATA &= 255;
- FLAGS {$7c}= DATA&128;
- A=DATA; {$7d}
- PC++;
- {$7d}
- VOID IEA() {$7b}{$7d}
- VOID IEC() {$7b} cpx(aBSOLUTEaDDR); PC+=2; {$7d}
- VOID IED() {$7b} sbc(aBSOLUTEaDDR); PC+=2; {$7d}
- VOID IEE() {$7b} incr(aBSOLUTEaDDR); PC+=2; {$7d}
- VOID IF0() {$7b} bst(zer); {$7d}
- VOID IF1() {$7b} sbc(iNDIRECTyaDDR); PC++; {$7d}
- VOID IF5() {$7b} sbc(zEROpAGExaDDR); PC++; {$7d}
- VOID IF6() {$7b} incr(zEROpAGExaDDR); PC++; {$7d}
- VOID IF8() {$7b} set(dec); {$7d}
- VOID IF9() {$7b} sbc(aBSOLUTEyaDDR); PC+=2; {$7d}
- VOID IFD() {$7b} sbc(aBSOLUTExaDDR); PC+=2; {$7d}
- VOID IFE() {$7b} incr(aBSOLUTExaDDR); PC+=2; {$7d}
- VOID IFF() {$7b} tRAPeXECUTE(); {$7d}
-
- VOID INI()
- {$7b}
- #IFDEF macsbug
- dEBUGsTR("\PnONiMPLEMENTED!");
- #ENDIF
- PC++;
- {$7d}
-
- INT iNSTRUCTIONiNITIALIZE()
- {$7b}
- RETURN KnOeRROR;
- {$7d}
-
- VOID (* INSTRUCT[256]) () = {$7b}
- I00, I01, INI, INI, INI, I05, I06, INI,
- I08, I09, I0A, INI, INI, I0D, I0E, INI,
- I10, I11, INI, INI, INI, I15, I16, INI,
- I18, I19, INI, INI, INI, I1D, I1E, INI,
- I20, I21, INI, INI, I24, I25, I26, INI,
- I28, I29, I2A, INI, I2C, I2D, I2E, INI,
- I30, I31, INI, INI, INI, I35, I36, INI,
- I38, I39, INI, INI, INI, I3D, I3E, INI,
- I40, I41, INI, INI, INI, I45, I46, INI,
- I48, I49, I4A, INI, I4C, I4D, I4E, INI,
- I50, I51, INI, INI, INI, I55, I56, INI,
- I58, I59, INI, INI, INI, I5D, I5E, INI,
- I60, I61, INI, INI, INI, I65, I66, INI,
- I68, I69, I6A, INI, I6C, I6D, I6E, INI,
- I70, I71, INI, INI, INI, I75, I76, INI,
- I78, I79, INI, INI, INI, I7D, I7E, INI,
- INI, I81, INI, INI, I84, I85, I86, INI,
- I88, INI, I8A, INI, I8C, I8D, I8E, INI,
- I90, I91, INI, INI, I94, I95, I96, INI,
- I98, I99, I9A, INI, INI, I9D, INI, INI,
- IA0, IA1, IA2, INI, IA4, IA5, IA6, INI,
- IA8, IA9, IAA, INI, IAC, IAD, IAE, INI,
- IB0, IB1, INI, INI, IB4, IB5, IB6, INI,
- IB8, IB9, IBA, INI, IBC, IBD, IBE, INI,
- IC0, IC1, INI, INI, IC4, IC5, IC6, INI,
- IC8, IC9, ICA, INI, ICC, ICD, ICE, INI,
- ID0, ID1, INI, INI, INI, ID5, ID6, INI,
- ID8, ID9, INI, INI, INI, IDD, IDE, INI,
- IE0, IE1, INI, INI, IE4, IE5, IE6, INI,
- IE8, IE9, IEA, INI, IEC, IED, IEE, INI,
- IF0, IF1, INI, INI, INI, IF5, IF6, INI,
- IF8, IF9, INI, INI, INI, IFD, IFE, IFF{$7d};
-
- BYTE CYCLETIME[256]={$7b}
- /*00*/7, 6, 0, 0, 0, 3, 5, 0, 3, 2, 2, 0, 0, 4, 6, 0,
- /*10*/3, 5, 0, 0, 0, 4, 6, 0, 2, 5, 0, 0, 0, 5, 7, 0,
- /*20*/6, 6, 0, 0, 3, 3, 5, 0, 4, 2, 2, 0, 4, 4, 6, 0,
- /*30*/3, 5, 0, 0, 0, 4, 6, 0, 2, 4, 0, 0, 0, 4, 7, 0,
- /*40*/6, 6, 0, 0, 0, 3, 5, 0, 3, 2, 2, 0, 3, 4, 6, 0,
- /*50*/3, 6, 0, 0, 0, 3, 6, 0, 2, 5, 0, 0, 0, 5, 7, 0,
- /*60*/6, 6, 0, 0, 0, 3, 5, 0, 4, 2, 2, 0, 5, 4, 6, 0,
- /*70*/3, 6, 0, 0, 0, 4, 6, 0, 2, 5, 0, 0, 0, 5, 7, 0,
- /*80*/0, 6, 0, 0, 6, 3, 3, 0, 2, 0, 2, 0, 4, 4, 4, 0,
- /*90*/2, 6, 0, 0, 4, 4, 4, 0, 2, 5, 2, 0, 0, 5, 0, 0,
- /*a0*/2, 6, 2, 0, 3, 3, 3, 0, 2, 2, 2, 0, 4, 4, 4, 0,
- /*b0*/3, 6, 0, 0, 4, 4, 4, 0, 2, 5, 2, 0, 5, 5, 5, 0,
- /*c0*/2, 6, 0, 0, 3, 3, 5, 0, 2, 2, 2, 0, 4, 4, 6, 0,
- /*d0*/3, 6, 0, 0, 0, 4, 6, 0, 2, 5, 0, 0, 0, 5, 7, 0,
- /*e0*/2, 6, 0, 0, 3, 3, 5, 0, 2, 2, 2, 0, 4, 4, 6, 0,
- /*f0*/3, 6, 0, 0, 0, 4, 6, 0, 2, 5, 0, 0, 0, 5, 7, 1 {$7d};
-
-