6 #define MSL_COMMANDS_INCLUDED_BY_MSL_STATES
8 #undef MSL_COMMANDS_INCLUDED_BY_MSL_STATES
10 #ifndef MSL_STATES_INCLUDED_BY_MSL_TIMINGS
11 # error This file should be include by msl-timings.c and not compiled directly
52 SIG(FUL2) {
return 1; }
53 SIG(FUL3) {
return 1; }
64 { TO30,
CI19, 0, DI28A0 },
69 { TO50,
CI32, 0, DI28A0 },
71 { TO70,
CI67, 0, DI28B0 },
72 { TI05,
CI05, 0, DI28B0 },
82 { END_OF_STATUS, 0, 0 }
105 { TO10,
CO41, 0, DI12A0 },
106 { TO25,
CO30, 0, DI12A0 },
107 { TO40,
CO02, 0, DI18B0 },
108 { TO70,
CI67, 0, DI12A0 },
109 { TO70,
CI62, 0, DI12A0 },
117 { TI06,
CU11, 0, DI18A0 },
118 { END_OF_STATUS, 0, 0 }
129 { TO10,
CO12, 0, DI17A0 },
130 { TO10,
CO41, 0, DI12A0 },
131 { TO25,
CO30, 0, DI12A0 },
132 { TO40,
CO00, 0, DI17A0 },
133 { TO70,
CI67, 0, DI12A0 },
134 { TO70,
CI62, 0, DI12A0 },
136 { TI05,
CI05, 0, DI17A0 },
139 { END_OF_STATUS, 0, 0 }
147 { TO10,
CO10, 0, DI60A0 },
148 { TO10,
CO41, 0, DI60A0 },
149 { TO25,
CO30, 0, DI12A0 },
150 { TO40,
CO00, 0, DI60A0 },
151 { TO70,
CI67, 0, DI12A0 },
152 { TO70,
CI62, 0, DI12A0 },
153 { TO70,
CI65, 0, DI19A0 },
157 { TI06,
CU01, 0, DI60A0 },
158 { END_OF_STATUS, 0, 0 }
174 { TO10,
CO10, 0, DI60A0 },
175 { TO10,
CO41, 0, DI60A0 },
176 { TO25,
CO30, 0, DI12A0 },
178 { TO40,
CO00, 0, DI60A0 },
179 { TO70,
CI67, 0, DI12A0 },
180 { TO70,
CI62, 0, DI12A0 },
184 { TI06,
CU00, 0, DI20A0 },
192 { END_OF_STATUS, 0, 0 }
198 { TO10,
CO10, 0, DI60A0 },
199 { TO10,
CO41, 0, DI60A0 },
200 { TO25,
CO30, 0, DI12A0 },
201 { TO40,
CO00, 0, DI60A0 },
202 { TO70,
CI67, 0, DI12A0 },
203 { TO70,
CI62, 0, DI12A0 },
204 { TO70,
CI65, 0, DI19A0 },
208 { TI06,
CU01, 0, DI60A0 },
209 { END_OF_STATUS, 0, 0 }
223 { TO10,
CO10, 0, DI60A0 },
224 { TO10,
CO41, 0, DI60A0 },
225 { TO25,
CO30, 0, DI12A0 },
227 { TO40,
CO00, 0, DI60A0 },
228 { TO70,
CI67, 0, DI12A0 },
232 { TI06,
CU00, 0, DI20A0 },
233 { TI06,
CU03, 0, EC56A0 },
236 { END_OF_STATUS, 0, 0 }
314 { TI06,
CU07, DE00A0 },
318 { END_OF_STATUS, 0, 0 },
332 { TO10,
CO12, AF50 },
333 { TO10,
CO13, AF30 },
334 { TO10,
CO14, AF10 },
336 { TO30,
CI17, AF20 },
337 { TO30,
CI21, AF40 },
338 { TO30,
CI16, AF40 },
341 { END_OF_STATUS, 0, 0 }
357 { TO10,
CO11, AF41, EC69A0 },
358 { TO10,
CO11, AF51 },
360 { TO25,
CO30, AF51 },
361 { TO25,
CO31, AF41 },
363 { TO40,
CO01, AF41, EC69A0 },
364 { TO40,
CO01, AF51 },
365 { TO50,
CO48, AF52 },
367 { TO50,
CI33, AF41 },
368 { TO50,
CI33, AF43 },
370 { TO70,
CI62, AF51, EC70A0 },
371 { TO70,
CI67, AF51 },
372 { TI05,
CI04, AF10 },
373 { TI05,
CI02, AF50 },
374 { TI05,
CI05, AF21 },
375 { TI05,
CI05, AF51 },
376 { TI05,
CI01, AF31 },
377 { TI05,
CI00, AF42 },
378 { TI05,
CI08, AF53 },
379 { TI06,
CI07, AF20 },
380 { TI06,
CI03, AF30 },
381 { TI06,
CI06, AF40 },
382 { TI06,
CI09, AF40 },
383 { TI06,
CI70, AF52 },
384 { TI06,
CI71, AF52 },
385 { TI06,
CI72, AF52 },
386 { TI06,
CI73, AF52 },
387 { TI06,
CI74, AF52 },
388 { TI06,
CI75, AF52 },
389 { TI06,
CI76, AF52 },
398 { TI06,
CU01, 0, DI57B0 },
400 { TI06,
CU03, 0, DI57B0 },
401 { TI06,
CU04, 0, DI57B0 },
404 { TI06,
CU07, 0, DI57A0 },
413 { END_OF_STATUS, 0, 0 }
421 return !(PUB01(
ge) || DU92(
ge));
425 { TO10,
CO12, 0, DI97A0 },
426 { TO10,
CO41, 0, DI97A0},
428 { TO40,
CO02, 0, DI97A0 },
429 { TO70,
CI62, 0, DI25A0 },
430 { TO70,
CI67, 0, DI25A0 },
432 { TI06,
CI75, 0, DI25A0 },
433 { TI06,
CI84, 0, DI25A0 },
436 { END_OF_STATUS, 0, 0 },
449 { TO10,
CO40, 0, DI21A0 },
450 { TO10,
CO41, 0, DI21A0 },
452 { TO30,
CI15, 0, DI21A0 },
454 { TO50,
CI33, 0, DI21A0 },
456 { TI06,
CU00, 0, DI93A0},
457 { END_OF_STATUS, 0, 0 },
466 { TO10,
CO40, 0, DI21A0 },
467 { TO10,
CO41, 0, DI21A0},
468 { TO30,
CI15, 0, DI21A0 },
470 { TO50,
CI33, 0, DI21A0},
471 { TI06,
CU00, 0, DI93A0},
472 { TI06,
CU01, 0, DI94A0},
474 { END_OF_STATUS, 0, 0 },
479 { TO10,
CO40, 0, DI21A0 },
480 { TO10,
CO41, 0, DI21A0 },
481 { TO30,
CI15, 0, DI21A0 },
483 { TO50,
CI33, 0, DI21A0 },
484 { TI06,
CU00, 0, DI93A0 },
485 { END_OF_STATUS, 0, 0 },
490 { TO10,
CO40, 0, DI21A0 },
491 { TO10,
CO41, 0, DI21A0 },
492 { TO30,
CI15, 0, DI21A0 },
494 { TO50,
CI33, 0, DI21A0 },
495 { TI06,
CI74, 0, DI91A0 },
496 { TI06,
CU00, 0, DI93A0 },
498 { TI06,
CU01, 0, DI94A0 },
499 { TI06,
CU11, 0, DI95A0 },
502 { END_OF_STATUS, 0, 0 },
521 { TO50,
CI32, 0, DI22A0 },
523 { TI06,
CU14, 0, DI22A0 },
525 { END_OF_STATUS, 0, 0 },
554 { TO10,
CO12, 0, DI97A0 },
555 { TO10,
CO41, 0, DI97A0 },
557 { TO30,
CI19, 0, DI24A0 },
559 { TO40,
CO02, DI97A0 },
570 { END_OF_STATUS, 0, 0 },
584 { TO19,
CE08, L207 },
587 { TI06,
CU16, not_L207 },
589 { TI06,
CU13, L207 },
590 { TI06,
CU11, not_L207 },
591 { TI10,
CE10, L207 },
592 { END_OF_STATUS, 0, 0 },
596 { TO10,
CO12, 0, DI97A0 },
597 { TO10,
CO41, 0, DI97A0 },
599 { TO30,
CI19, 0, DI29A0 },
600 { TO40,
CO02, 0, DI97A0 },
601 { TO70,
CI60, 0, DI86A0 },
602 { TO70,
CI65, 0, DI86A0 },
603 { TI05,
CI05, 0, DI87A0 },
604 { TI06,
CU00, 0, DI93A0 },
605 { END_OF_STATUS, 0, 0 },
609 { TO10,
CO12, 0, DI97A0 },
610 { TO10,
CO41, 0, DI97A0 },
612 { TO30,
CI19, 0, DI29A0 },
613 { TO30,
CI15, 0, DI84A0 },
615 { TO40,
CO02, 0, DI97A0 },
617 { TO70,
CI62, 0, ED79A0 },
618 { TO70,
CI67, 0, ED79A0 },
619 { TI05,
CI05, 0, DI87A0 },
620 { TI06,
CI07, PC031 },
621 { TI06,
CU00, 0, DI93A0},
623 { TI06,
CU01, DI94A0 },
624 { END_OF_STATUS, 0, 0 },
628 { TO10,
CO12, 0, DI97A0 },
629 { TO10,
CO41, 0, DI97A0 },
631 { TO30,
CI19, 0, DI29A0 },
632 { TO40,
CO02, 0, DI97A0 },
633 { TO70,
CI60, 0, DI86A0 },
634 { TO70,
CI65, 0, DI86A0 },
636 { TI06,
CU00, 0, DI93A0},
637 { END_OF_STATUS, 0, 0 },
646 return !(PC121(
ge) || PC111(
ge) || PC211(
ge));
653 { TO10,
CO12, 0, DI97A0 },
654 { TO10,
CO41, 0, DI97A0 },
658 { TO30,
CI19, 0, DI29A0 },
660 { TO40,
CO02, 0, DI97A0 },
667 { TI06,
CU00, 0, DI93A0},
669 { TI06,
CU01, 0, DI94A0},
670 { TI06,
CU11, 0, DI95A0},
671 { TI06,
CU04, 0, DI85A0},
673 { END_OF_STATUS, 0, 0 },
685 { TI06,
CU13, DU97 },
689 { END_OF_STATUS, 0, 0 },
703 { TO10,
CO40, L205 },
704 { TO25,
CO31, FA01 },
705 { TO30,
CI15, not_FA01 },
706 { TO30,
CI12, FA01 },
708 { TO40,
CO01, FA01 },
709 { TO50,
CI33, FA01 },
711 { TI05,
CI05, not_FA01 },
713 { TI06,
CI81, FA01 },
727 SIG(RIVE1) {
return !(RIG1A(
ge) && RENIA(
ge) && RILIA(
ge)); }
749 { TO10,
CO40, L205 },
751 { TO30,
CI15, L204 },
752 { TO30,
CI41, L204 },
753 { TO30,
CI40, L204 },
756 { TO50,
CI34, not_L206 },
759 { TO80,
CE18, L204 },
761 { TO65,
CE11, not_L206 },
762 { TI05,
CI05, L204 },
763 { TI05,
CI02, not_L206 },
773 { TO10,
CO97, 0, DI11A0 },
774 { TO10,
CO96, 0, DI11A0 },
775 { TO10,
CO95, 0, DI11A0 },
777 { TO10,
CO93, 0, DI11A0 },
778 { TO10,
CO92, 0, DI11A0 },
780 { TO10,
CO90, 0, DI11A0 },
781 { TO10,
CO40, 0, DI11A0 },
782 { TO10,
CO41, 0, DI11A0 },
785 { TO40,
CO02, 0, DI11A0 },
786 { TO50,
CI33, 0, DI83A0 },
788 { END_OF_STATUS, 0, 0 },
800 { TO10,
CO12, 0, DA25A0 },
801 { TO10,
CO97, 0, DI11A0 },
802 { TO10,
CO96, 0, DI11A0 },
803 { TO10,
CO95, 0, DI11A0 },
805 { TO10,
CO93, 0, DI11A0 },
806 { TO10,
CO92, 0, DI11A0 },
808 { TO10,
CO90, 0, DI11A0 },
809 { TO10,
CO04, 0, DI11A0 },
810 { TO10,
CO41, 0, DI11A0 },
813 { TO40,
CO02, 0, DI11A0 },
814 { TO50,
CI32, 0, DI82A0 },
815 { TO50,
CE06, L207 },
819 { TI06,
CU13, 0, DI82A0 },
820 { END_OF_STATUS, 0, 0 },
Bit manipulation helpers.
static void CI73(struct ge *ge)
static void CE08(struct ge *ge)
static void CI02(struct ge *ge)
static void CI08(struct ge *ge)
static void CE01(struct ge *ge)
static void CU05(struct ge *ge)
static void CI39(struct ge *ge)
static void CO49(struct ge *ge)
static void CO04(struct ge *ge)
static void CE11(struct ge *ge)
static void CO14(struct ge *ge)
static void CE18(struct ge *ge)
static void CI21(struct ge *ge)
static void CI20(struct ge *ge)
static void CO00(struct ge *ge)
static void CU12(struct ge *ge)
static void CI66(struct ge *ge)
static void CI19(struct ge *ge)
static void CE10(struct ge *ge)
static void CI74(struct ge *ge)
static void CI17(struct ge *ge)
static void CU00(struct ge *ge)
static void CO35(struct ge *ge)
static void CI15(struct ge *ge)
static void CU06(struct ge *ge)
static void CE03(struct ge *ge)
static void CI70(struct ge *ge)
static void CU07(struct ge *ge)
static void CE00(struct ge *ge)
static void CO01(struct ge *ge)
static void CI11(struct ge *ge)
static void CU02(struct ge *ge)
static void CI06(struct ge *ge)
static void CI32(struct ge *ge)
static void CI65(struct ge *ge)
static void CI75(struct ge *ge)
static void CU13(struct ge *ge)
static void CE07(struct ge *ge)
static void CI80(struct ge *ge)
static void CI07(struct ge *ge)
static void CI81(struct ge *ge)
static void CU17(struct ge *ge)
static void CO96(struct ge *ge)
static void CI60(struct ge *ge)
static void CI86(struct ge *ge)
static void CE06(struct ge *ge)
static void CO94(struct ge *ge)
static void CU20(struct ge *ge)
static void CO48(struct ge *ge)
static void CO91(struct ge *ge)
static void CI05(struct ge *ge)
static void CI82(struct ge *ge)
static void CE09(struct ge *ge)
static void CI84(struct ge *ge)
static void CI72(struct ge *ge)
static void CU01(struct ge *ge)
static void CO90(struct ge *ge)
static void CE02(struct ge *ge)
static void CI04(struct ge *ge)
static void CI88(struct ge *ge)
static void CI83(struct ge *ge)
static void CI41(struct ge *ge)
static void CO18(struct ge *ge)
static void CO40(struct ge *ge)
static void CI09(struct ge *ge)
static void CI89(struct ge *ge)
static void CU10(struct ge *ge)
static void CI62(struct ge *ge)
static void CI38(struct ge *ge)
static void CI03(struct ge *ge)
static void CI77(struct ge *ge)
static void CU14(struct ge *ge)
static void CO11(struct ge *ge)
static void CU16(struct ge *ge)
static void CO12(struct ge *ge)
static void CI87(struct ge *ge)
static void CI85(struct ge *ge)
static void CO97(struct ge *ge)
static void CO30(struct ge *ge)
static void CI67(struct ge *ge)
static void CI40(struct ge *ge)
static void CI00(struct ge *ge)
static void CI33(struct ge *ge)
static void CO41(struct ge *ge)
static void CO92(struct ge *ge)
static void CO13(struct ge *ge)
static void CO10(struct ge *ge)
static void CO31(struct ge *ge)
static void CE05(struct ge *ge)
static void CU11(struct ge *ge)
static void CU03(struct ge *ge)
static void CE19(struct ge *ge)
static void CO93(struct ge *ge)
static void CI76(struct ge *ge)
static void CO95(struct ge *ge)
static void CI34(struct ge *ge)
static void CI16(struct ge *ge)
static void CI12(struct ge *ge)
static void CI78(struct ge *ge)
static void CI71(struct ge *ge)
static void CO02(struct ge *ge)
static void CU15(struct ge *ge)
static void CU04(struct ge *ge)
static void CI01(struct ge *ge)
static uint8_t state_E2_E3_TI06_CI82(struct ge *ge)
static uint8_t jc_js1_js2_jie_lon_loll_loff_ins_ens_nop(struct ge *ge)
static uint8_t AF52_not_RO07(struct ge *ge)
static uint8_t state_E7_TI06_CU17(struct ge *ge)
static uint8_t not_RO06(struct ge *ge)
static uint8_t state_ab_TI05_CI04(struct ge *ge)
static uint8_t state_00_TO50_CI33(struct ge *ge)
static uint8_t state_cc_TI06_CU04(struct ge *ge)
static uint8_t state_b9_TO40_CO01(struct ge *ge)
static uint8_t state_dc_TI06_CI70(struct ge *ge)
static const struct msl_timing_chart state_E7[]
static const struct msl_timing_chart state_cc[]
static const struct msl_timing_chart state_db[]
static uint8_t state_80_TO30_CO97(struct ge *ge)
static const struct msl_timing_chart state_80[]
static uint8_t state_00_TO30_CI15(struct ge *ge)
static uint8_t ins(struct ge *ge)
static const struct msl_timing_chart state_d8[]
static uint8_t L206_or_PC01(struct ge *ge)
static uint8_t state_ca_TO80_CE18(struct ge *ge)
static uint8_t state_c8_TI06_CI85(struct ge *ge)
static const struct msl_timing_chart state_E2_E3[]
static uint8_t state_b8_TI06_CI72(struct ge *ge)
static uint8_t lon_loll(struct ge *ge)
static uint8_t state_b9_TO70_CI66(struct ge *ge)
static uint8_t state_E4_TO70_CI60(struct ge *ge)
static uint8_t not_RO03(struct ge *ge)
static uint8_t state_eb_TI06_CE19(struct ge *ge)
static uint8_t AF52_not_RO00(struct ge *ge)
static const struct msl_timing_chart state_ea[]
static uint8_t not_RO00(struct ge *ge)
static const struct msl_timing_chart state_E6[]
static uint8_t state_b9_TO30_CI12(struct ge *ge)
static uint8_t state_b9_TO80_CE05(struct ge *ge)
static uint8_t state_eb_TI06_CI75(struct ge *ge)
static uint8_t state_cc_TI06_CI75(struct ge *ge)
static uint8_t AF52_not_RO05(struct ge *ge)
static const struct msl_timing_chart state_c8[]
static const struct msl_timing_chart state_ca[]
static uint8_t state_E0_TI06_CU17(struct ge *ge)
static uint8_t state_dc_TI06_CU20(struct ge *ge)
static uint8_t state_b8_TI10_CE09(struct ge *ge)
static const struct msl_timing_chart state_08[]
static uint8_t state_E6_TO80_CI38(struct ge *ge)
static const struct msl_timing_chart state_da[]
static uint8_t state_cc_TI06_CU05(struct ge *ge)
static const struct msl_timing_chart state_aa[]
static uint8_t loff(struct ge *ge)
static const struct msl_timing_chart state_E5[]
static uint8_t not_RO01(struct ge *ge)
static const struct msl_timing_chart state_E0[]
static uint8_t not_RO07(struct ge *ge)
static const struct msl_timing_chart state_d9[]
static const struct msl_timing_chart state_ab[]
static uint8_t state_d9_TO40_CO00(struct ge *ge)
static uint8_t not_RO05(struct ge *ge)
static uint8_t state_E6_TI06_CU17(struct ge *ge)
static uint8_t state_b9_TI06_CU13(struct ge *ge)
static const struct msl_timing_chart state_a9[]
static uint8_t jc_js1_js2_jie_condition_verified(struct ge *ge)
static uint8_t state_ab_TO80_CE18(struct ge *ge)
static uint8_t DU97_or_DU98(struct ge *ge)
static uint8_t AINI(struct ge *ge)
static uint8_t state_cc_TI06_CU01(struct ge *ge)
static uint8_t per_peri(struct ge *ge)
static uint8_t state_d8_TO40_CO00(struct ge *ge)
static uint8_t state_ab_TI05_CI03(struct ge *ge)
static uint8_t jie(struct ge *ge)
static uint8_t state_b9_TI10_CE09(struct ge *ge)
static uint8_t state_b9_TO25_CO31(struct ge *ge)
static uint8_t state_00_TO10_CO11(struct ge *ge)
static uint8_t state_80_TO30_CO96(struct ge *ge)
static uint8_t state_E7_TI06_CU03(struct ge *ge)
static uint8_t state_E2_E3_TI06_CU04(struct ge *ge)
static uint8_t state_ab_TO70_CI62(struct ge *ge)
static uint8_t AF52_not_RO06(struct ge *ge)
static uint8_t state_00_TO10_CO10(struct ge *ge)
static uint8_t jc_js1_js2_jie(struct ge *ge)
static uint8_t per_peri_TO25_CO30(struct ge *ge)
static uint8_t state_E2_E3_TO80_CI89(struct ge *ge)
static uint8_t AF52_not_RO01(struct ge *ge)
static uint8_t state_cc_TI06_CU13(struct ge *ge)
static uint8_t AF52_not_RO02(struct ge *ge)
static uint8_t not_RO04(struct ge *ge)
static uint8_t state_d8_TO19_CE02(struct ge *ge)
static const struct msl_timing_chart state_E4[]
static uint8_t AF52_not_RO04(struct ge *ge)
static uint8_t state_E7_TO80_CI38(struct ge *ge)
static uint8_t state_E6_TI06_CU03(struct ge *ge)
static const struct msl_timing_chart state_64_65[]
static const struct msl_timing_chart state_00[]
static const struct msl_timing_chart state_b8[]
static uint8_t nop(struct ge *ge)
static const struct msl_timing_chart state_a8[]
static uint8_t ens(struct ge *ge)
static uint8_t not_RO02(struct ge *ge)
static uint8_t not_AINI(struct ge *ge)
static const struct msl_timing_chart state_b9[]
static uint8_t state_b9_TO70_CI67(struct ge *ge)
static const struct msl_timing_chart state_dc[]
static const struct msl_timing_chart state_b1[]
static const struct msl_timing_chart state_eb[]
static uint8_t AF52_not_RO03(struct ge *ge)
static uint8_t state_cc_TO50_CE00(struct ge *ge)
The entire state of the emulated system, including registers, memory, peripherals and timings.
uint8_t ALOI
Load connector selection.
uint8_t AINI
Program Loading.
uint8_t ffFA
Special conditions register 2.
uint16_t rRO
Multipurpose 8+1 bit register.
uint8_t PUC3
Channel 3 in transfer.
uint8_t rL2
Auxiliary register.
uint8_t AVER
Jump Condition Verified.
uint8_t RACI
Rejected Command.
uint16_t rL1
Length of the operand.
uint8_t RIG1
End from controller 1.
uint8_t rFO
Current function code.